<<if _n.personality =="Calm">>
"Yes. I'm ready — and I want you to be fully present with me"
<<elseif _n.personality == "Jolly">>
"Yes! That sounds exciting — I'm totally in the mood for you."
<<elseif _n.personality == "Timid">>
"I… yes. Only if you stay close to me the whole time."
<<elseif _n.personality == "Tough">>
"Heh. You're bold. Fine — I'll bite. Just try to keep up."
<<elseif _n.personality == "Brave">>
"Yeah! Let's do this!"
<<elseif _n.personality == "Kind">>
"Yes… I want to be that close with you."
<<elseif _n.personality == "Active">>
"Alright! I like this energy, let's work up a sweat!"
<<elseif _n.personality == "Logical">>
"Logically — I want you as well. I approve of this."
<<elseif _n.personality == "Sassy">>
"Yes — obviously. Took you long enough to say it."
<<elseif _n.personality == "Mean">>
"Fine then, you're lucky I find you attractive."
<<elseif _n.personality == "Energetic">>
"Alright! Let's do this!"
<<elseif _n.personality == "Playful">>
"Oh yeah..."
<<else>>
"Ok"
<</if>>/*
Watch
Necklace
Earrings
Gloves
Head band
Bandana
Hat
Glasses
*/<<set $gamelocation to "Hotel Room">>
The first sensation you feel is soft fabric against your back. The next is a warm radiance against your front.
<span class="Jinx">"So, you're finally awake
I was waiting quite awhile for you to awaken."
Now get up $mc.name ."
</span>
<span class="mc">
"W-who are you?"
</span>
<span class="Jinx">
"Haha! You don't know who I am? I am Jinx, the god of sex and joy. I have chosen you to be my emissary."
"If you have questions, best ask them now."
</span>
<p>Ask Jinx:</p>
<<button "God?">><<PopupJinxQ "god" "god?">><</button>>
<<button "Emissary?">><<PopupJinxQ "emissary" "Emissary?">><</button>>
<<button "Where am I?">><<PopupJinxQ "where?" "Where am I?">><</button>>
<<button [[I'm done|DoneQuestions]]>><</button>>Welcome to the brothel.
Remember to follow the golden rule:
Consent is required.<<MC-Create-body>>
<h1>Is this Correct?</h1>
Please review the character page below and confirm the traits chosen are correct.
<h2>Basic Info</h2>
<table>
<tr id="name">
<th><u><strong>First Name:</strong></u></th>
<td id="mc-name">$mc.name</td>
</tr>
<<if $mc.nickname>>
<tr id="nickname">
<th><u><strong>Nickname:</strong></u></th>
<td id="mc-nick">$mc.nickname</td>
</tr>
<</if>>
<tr id="surname">
<th><u><strong>Surname:</strong></u></th>
<td id="mc-surb">$mc.surname</td>
</tr>
<tr id="mc-gender">
<th><u><strong>Gender Identity:</strong></u></th>
<td id="mc-identity">
Gender: $mc.gender<br>
Sexuality: $mc.sexu
</td>
</tr>
<tr id="pronouns">
<th><u><strong>Pronouns:</strong></u></th>
<td id="mc-pro">$mc.pronouns</td>
</tr>
<tr id="age">
<th><u><strong>Age:</strong></u></th>
<td id="mc-age">$mc.age</td>
</tr>
<tr id="age">
<th><u><strong>Age Group:</strong></u></th>
<td id="mc-agegroup">$mc.ageGroup</td>
</tr>
<tr id="species">
<th><u><strong>Species:</strong></u></th>
<td id="mc-species">$mc.species</td>
</tr>
<<if $mc.species is "Anthro">>
<tr id="species">
<th><u><strong>Type:</strong></u></th>
<td id="mc-species">$mc.anthro.group</td>
</tr>
<tr id="species">
<th><u><strong>Subspecies:</strong></u></th>
<td id="mc-species">$mc.anthro.subtype</td>
</tr>
<</if>>
</table>
<h2>Physical Traits:</h2>
<h3>Face and Hair:</h3>
<table>
<tr id="eyes">
<th><u><strong>Eyes:</strong></u></th>
<td id="mc-eyes">$mc.eyes</td>
</tr>
<tr id="hair">
<th><u><strong>Hair:</strong></u></th>
<td>
<span id="mc-hairnat">
<<if $hair is "bald">> You are $hair.
<<else>>
You have $hair.colour hair. Your hair is styled in a $hair.style .
<</if>>
</span>
</td>
</tr>
<<if $facefeatures>>
<tr id="facial-features">
<th><u><strong>Facial Features:</strong></u></th>
<td id="mc-ffeat">$facefeatures</td>
</tr>
<</if>>
</table>
<h3>Body</h3>
<table>
<tr id="skin-colour">
<th>
<<if $skin.color>>
<u><strong>Skin:</strong></u>
<<elseif $mc.anthro.group is "Furry">>
<u><strong>Fur:</strong></u>
<<elseif $mc.anthro.group is "Scalie">>
<u><strong>Scales:</strong></u>
<<elseif $mc.anthro.group is "Avian">>
<u><strong>Feathers:</strong></u>
<</if>>
</th>
<td id="mc-skin">
<<if $skin.color>>
$skin.color
<<elseif $mc.anthro.color>>
$mc.anthro.color
<br>
Patterns: $mc.anthro.pattern
<<else>>
ERROR NO SKIN OR BODY COLOR FOUND!
<</if>>
<<if $skin.features>>
$skin.features
<</if>></td>
</tr>
<tr id="body-build">
<th><u><strong>Build:</strong></u></th>
<td id="mc-build">
Height: $mc.bodyheight
<br>
Type: $mc.bodyweight
<br>
Musculature: $mc.bodymusc
<br>
<<if $mc.breastsize>>Breast Size: $mc.breastsize<</if>>
</td>
</tr>
</table>
<h2>Personality</h2>
<table>
<tr id="perso">
<th><u><strong>Personality:</strong></u></th>
<td id="mc-perso">$mc.personality</td>
</tr>
</table>
<h2>NSFW Options</h2>
<table class="nsfw">
<tr>
<th><u><strong>Genitals:</strong></u></th>
<td id="mc-genitals">$mc.genitals</td>
<td></td>
</tr>
<tr>
<th><u><strong>Genital type:</strong></u></th>
<td id="mc-genitaltype">$mc.genitaltype</td>
</tr>
<<if $mc.penislength>>
<tr>
<th><u><strong>Penis Length:</strong></u></th>
<td id="mc-penislength">$mc.penislength</td>
</tr>
<</if>>
<tr>
<th><u><strong>Ass Size:</strong></u></th>
<td id="mc-asssize">$mc.assSize</td>
</tr>
<tr id="sexpref">
<th><u><strong>Sex Preference:</strong></u></th>
<td id="mc-sexpref">$mc.sexpref</td>
</tr>
</table>
/*
<<if $mc.virgin is true>>
Virgin?: Yes
<<elseif $mc.virgin is false>>
Virgin: No
<</if>> */
<div>
<<if $mc.body.ears>>
You have a $mc.body.ears
<</if>>
<br>
<<if $mc.body.ears>>
You have a $mc.body.feet
<</if>>
<br>
<<if $mc.body.tail>>
You have a $mc.body.tail
<</if>>
<br>
</div>
<div>
<<button "YES!">><<goto "CC-Confirm">><</button>>
<<button "Go back">><<goto "Index-CC">><</button>>
<<button [[Randomize|CC-Check]]>><<Randomiser>><</button>>
</div><h1>Hi $mc.name!</h1>
<h2>Your adventure is about to start...</h2>
[[Beginning]]<h1>Indicate your Age</h1>\
//What is your age?//
* Age: <<numberbox "_agenumber" 18 autofocus>>
<<button [[Confirm|Index-CC]]>>
<<set $mc.age to _agenumber>>
<<AgeGroupSet>>
<</button>>
* [[I'd rather not share my age|Index-CC][$mc.age to "{/}"]]<<BodyBuild>>
<h1>Set up the frame of the body</h1>
Tall, short, wide, thin... there are many ways to define how a body is framed. Below are examples of setting the PC's height, type, and musculature.
//How tall are you?// <<listbox "$mc.bodyheight">><<optionsfrom _height>><</listbox>>
//What is your body type?// <<listbox "$mc.bodyweight">><<optionsfrom _type>><</listbox>>
//How muscular are you?// <<listbox "$mc.bodymusc">><<optionsfrom _muscle>><</listbox>>
<<if $mc.gender is "female">>
//What is your breast size?
<<listbox "$mc.breastsize">><<optionsfrom _breast>>
<</listbox>>
<</if>>
<<button [[Confirm|Index-CC]]>><</button>><<set _eyecolours = ["white", "grey", "golden", "green", "blue", "maroon", "brown", "black", "red", "pink", "purple", "lime", "seafoam", "cream"]>>
<h1>Choose your Eye Colour(s)</h1>\
Do your eyes have <<link "the same colour">><<set $heterochromia to false>><<redo>><</link>> or <<link "different colours">><<set $heterochromia to true>><<redo>><</link>>?
<<do>>\
<<if $heterochromia is false>>\
Eye Colours: <<cycle "$mc.eyes">>
<<optionsfrom _eyecolours>>
<</cycle>>
//Cycle through the options until you find the colour you want.//
<<button [[Confirm|Index-CC]]>><</button>>
<<elseif $heterochromia is true>>\
Left: <<cycle "_eyesleft">>
<<optionsfrom _eyecolours>>
<</cycle>>
Right: <<cycle "_eyesright">>
<<optionsfrom _eyecolours>>
<</cycle>>
//Cycle through the options until you find the colours you want.//
<<button [[Confirm|Index-CC]]>>
<<set $mc.eyes to _eyesleft + " and " + _eyesright>>
/*
If eye colours matters in the story (creates variation, not just to be in the PC's page), you will ether want to use:
- the [.includes("colour")] function
- a variable for each eye
to help to so..
*/
<</button>>
<</if>>\
<</do>><h1>Options for Facial Features</h1>\
//What facial feature(s) is(are) applicable to you?//
* <label><<checkbox "_moustache" false true>> a full moustache</label>
* <label><<checkbox "_goatee" false true>> a goatee</label>
* <label><<checkbox "_fullbeard" false true>> a full beard</label>
* <label><<checkbox "_sideburns" false true>> some sideburns</label>
* <label><<checkbox "_shadow" false true>> shadow</label>
* <label><<checkbox "_patch" false true>> soul patch</label>
* <label><<checkbox "_handlebar" false true>> a handle bar</label>
* <label><<checkbox "_wrinkes" false true>> wrinkles</label>
* <label><<checkbox "_mole" false true>> a mole</label>
* <label><<checkbox "_brow" false true>> a unibrow</label>
* <label><<checkbox "_thickbrow" false true>> thick brows</label>
* <label><<checkbox "_thinbrow" false true>> thin brows</label>
* <label><<checkbox "_noeyelash" false true>> no eye lashes</label>
* <label><<checkbox "_pointedear" false true>> pointed ears</label>
* <label><<checkbox "_smallears" false true>> small ears</label>
* <label><<checkbox "_largeears" false true>> large ears</label>
* <label><<checkbox "_buttonnose" false true>> a Button nose</label>
* <label><<checkbox "_romannose" false true>> a Roman nose</label>
* <label><<checkbox "_crooked" false true>> a Crooked nose</label>
* <label><<checkbox "_widenose" false true>> a Wide nose</label>
* <label><<checkbox "_hawknose" false true>> a Hawk nose</label>
* <label><<checkbox "_pointchin" false true>> a pointy chin</label>
* <label><<checkbox "_roundchin" false true>> a rounded chin</label>
* <label><<checkbox "_squarejaw" false true>> a square jaw</label>
* <label><<checkbox "_pronouncedcheeks" false true>> pronounced cheeks</label>
* <label><<checkbox "_bm" false true>> a beauty mark</label>
* <label><<checkbox "_freckles" false true>> freckles</label>
* <label><<checkbox "_fangs" false true>> fangs</label>
* <label><<checkbox "_toothgap" false true>> tooth gap</label>
* <label><<checkbox "_acne" false true>> acne</label>
<<button [[Confirm|Index-CC]]>><<AllThisInAnArray>><<set $pages.facefeat to true>><</button>><h1>Set your Gender Identity</h1>\
//What term do you use to describe your gender?//
* <label><<radiobutton "$mc.gender" "Male" checked>> Male</label>
* <label><<radiobutton "$mc.gender" "Female">> Female</label>
//What do you identify as?//
* <label><<radiobutton "$mc.sexu" "Heterosexual" checked>> Heterosexual</label>
* <label><<radiobutton "$mc.sexu" "Homosexual">> Homosexual</label>
* <label><<radiobutton "$mc.sexu" "Bisexual">> Bisexual</label>
* <label><<radiobutton "$mc.sexu" "Pansexual">> Pansexual</label>
* <label><<radiobutton "$mc.sexu" "Asexual">> Asexual</label>
<<button "Confirm">>
<<set $pages.gender to true>>
<<goto "Index-CC">>
<</button>>Decide your genitals
<<if $mc.gender is "Male">>
Because you chose male you have a penis.
<<set $mc.genitals to "Penis">>
<<if $mc.species != "Anthro">>
Choose a human penis type
*<label><<radiobutton "$mc.genitaltype" "Cut" checked>> cut</label>
*<label><<radiobutton "$mc.genitaltype" "Uncut">> uncut</label>
*<label><<radiobutton "$mc.genitaltype" "Phimosis">> phimosis</label>
<<else>>
What type of penis do you want?
*<label><<radiobutton "$mc.genitaltype" "Knotted" checked>> Knotted</label>
*<label><<radiobutton "$mc.genitaltype" "Barbed">> Barbed</label>
*<label><<radiobutton "$mc.genitaltype" "Tapered">> Tapered</label>
*<label><<radiobutton "$mc.genitaltype" "Flared">> Flared</label>
*<label><<radiobutton "$mc.genitaltype" "Sheathed">> Sheathed</label>
<</if>>
Also, what's it's length?
*<label><<radiobutton "$mc.penislength" "Tiny" checked>> tiny</label>
*<label><<radiobutton "$mc.penislength" "Small" checked>> small</label>
*<label><<radiobutton "$mc.penislength" "Average" checked>> average</label>
*<label><<radiobutton "$mc.penislength" "Large" checked>> large</label>
*<label><<radiobutton "$mc.penislength" "Huge" checked>> huge</label>
<<elseif $mc.gender is "Female">>
Because you chose female you have a vagina.
Choose the tightness
<<set $mc.genitals to "Vagina">>
*<label><<radiobutton "$mc.genitaltype" "Very Tight">> very tight</label>
*<label><<radiobutton "$mc.genitaltype" "Tight">>tight</label>
*<label><<radiobutton "$mc.genitaltype" "Loose">> loose</label>
*<label><<radiobutton "$mc.genitaltype" "Gaping">> gaping</label>
<</if>>
Decide your ass size
*<label><<radiobutton "$mc.assSize" "Flat">> flat</label>
*<label><<radiobutton "$mc.assSize" "Small">> small</label>
*<label><<radiobutton "$mc.assSize" "Average">> average</label>
*<label><<radiobutton "$mc.assSize" "Large">> large</label>
<<button "Confirm">>
<<goto "Index-CC">>
<</button>><<HairOptions>>
<h1>Let's Talk Hair!</h1>
//How long is your hair? (if no hair, choose misc)// <<nobr>>
<<button "Short Hair">>
<<removeclass ".hairmed,.hairlong,.hairmisc" "visible">>
<<addclass ".hairshort" "visible">>
<<set $hair = ($hair is "bald") ? {} : $hair>>
<<set $hair.length = "Short">>
<</button>>
<<button "Medium Hair">>
<<removeclass ".hairshort,.hairlong,.hairmisc" "visible">>
<<addclass ".hairmed" "visible">>
<<set $hair = ($hair is "bald") ? {} : $hair>>
<<set $hair.length = "Medium">>
<</button>>
<<button "Long Hair">>
<<removeclass ".hairshort,.hairmed,.hairmisc" "visible">>
<<addclass ".hairlong" "visible">>
<<set $hair = ($hair is "bald") ? {} : $hair>>
<<set $hair.length = "Long">>
<</button>>
<<button "Misc Hair">>
<<removeclass ".hairshort,.hairmed,.hairlong" "visible">>
<<addclass ".hairmisc" "visible">>
<<set $hair = ($hair is "bald") ? {} : $hair>>
<<set $hair.length = "Misc">>
<</button>>
<<button "No, I am bald.">>
<<removeclass ".hairshort,.hairmed,.hairlong,.hairmisc" "visible">>
<<set $hair to "bald">>
<</button>>
<</nobr>>
<span class="hairshort">
//What is your natural hair style?//
<<listbox "$hair.style">> <<optionsfrom _hairshort>> <</listbox>>
//What is your natural hair colour?//
<<listbox "$hair.colour">> <<optionsfrom _haircolour>> <</listbox>>
</span>
<span class="hairmed">
//What is your natural hair style?//
<<listbox "$hair.style">> <<optionsfrom _hairmed>> <</listbox>>
//What is your natural hair colour?//
<<listbox "$hair.colour">> <<optionsfrom _haircolour>> <</listbox>>
</span>
<span class="hairlong">
//What is your natural hair style?//
<<listbox "$hair.style">> <<optionsfrom _hairlong>> <</listbox>>
//What is your natural hair colour?//
<<listbox "$hair.colour">>
<<optionsfrom _haircolour>> <</listbox>>
</span>
<span class="hairmisc">
//What is your natural hair style?//
<<listbox "$hair.style">> <<optionsfrom _hairmisc>> <</listbox>>
//What is your natural hair colour?//
<<listbox "$hair.colour">>
<<optionsfrom _haircolour>> <</listbox>> </span>
<span id="cover"></span>
<<button [[Confirm|Index-CC]]>><<set $pages.hair to true>><</button>>Empty for now
<<button "Confirm">>
<<set $pages.kinks to true>>
<<goto "Index-CC">>
<</button>><h1>Choose your Name</h1>\
//What is your name?//
<<textbox "$mc.name" "">>
<<button "Confirm">>
<<if $mc.name.toLowerCase().trim() == "manon">>
<<replace "#error">>Yeah, can't use that one, buddy!<</replace>>
<<else>>
<<if !$mc.name.trim()>>
<<set $mc.name = "No-Name">>
<</if>>
<<goto "Index-CC">>
<</if>>
<</button>>
Once you are set on a name (by typing in the texbox and pressing the confirm button), you will be sent back to the menu of traits.<h1>Choose your Nickname</h1>\
//Do you go by a nickname?//
* <<linkappend "Yes, I do!">>:
> Nickname: <<textbox "$mc.nickname" "" autofocus>> <<button [[Confirm|Index-CC]]>><</button>>
<</linkappend>>
* [[No|Index-CC][$mc.nickname to "{/}"]]
Once you are set on a name (by following one of the listed options and), you will be sent back to the menu of traits.
/*
I'm only setting the nickname to a "fake thing" for the >No< option for the sake of the trait menu and the checking page.
You may want to ensure the variable is unset before the game starts if the player chose no nickname or left the textbox empty.
*/<h1>Choose your Personality</h1>\
//What term do you use to describe your personality?//
* <label><<radiobutton "$mc.personality" "Adventerous" checked>> Adventurous</label>
* <label><<radiobutton "$mc.personality" "Kind">>Kind</label>
* <label><<radiobutton "$mc.personality" "Shy">>Shy</label>
* <label><<radiobutton "$mc.personality" "Playful">>Playful</label>
* <label><<radiobutton "$mc.personality" "Lazy">>Lazy</label>
* <label><<radiobutton "$mc.personality" "Good">>Good</label>
* <label><<radiobutton "$mc.personality" "Evil">>Evil</label>
<<button [[Confirm|Index-CC]]>>
<<set $pages.perso to true>>
<</button>><h1>Choose your Pronouns Set</h1>\
//What pronoun set are you most comfortable with?//
* <label><<radiobutton "$mc.pronouns" "He/Him">>He/Him</label>
* <label><<radiobutton "$mc.pronouns" "She/Her" checked>>She/Her</label>
* <label><<radiobutton "$mc.pronouns" "They/Them (singular)">>They/Them (singular)</label>
* <label><<radiobutton "$mc.pronouns" "They/Them (plural)">>They/Them (plural)</label>
* <label><<radiobutton "$mc.pronouns" "Ae/Aer">>Ae/Aer</label>
* <label><<radiobutton "$mc.pronouns" "E/Em">>E/Em</label>
<<button "Confirm">>
<<set $pages.pronouns to true>>
<<PronounsSet>>
<<goto "Index-CC">>
<</button>><h1>Choose your Skin Characteristics</h1>\
<<if $mc.species is "Human">>
Your skin colour is:
* <label><<radiobutton "$skin.color" "Pale" checked >>Pale</label>
* <label><<radiobutton "$skin.color" "Fair" >>Fair</label>
* <label><<radiobutton "$skin.color" "Tan" >>Tan</label>
* <label><<radiobutton "$skin.color" "Olive" >>Olive</label>
* <label><<radiobutton "$skin.color" "Brown" >>Brown</label>
* <label><<radiobutton "$skin.color" "Ebony">>Ebony</label>
//Does your skin have any notable features?//
* <label><<checkbox "_vitiligo" false true>> Viligo</label>
* <label><<checkbox "_freckles" false true>> Freckles</label>
* <label><<checkbox "_eczema" false true>> Eczema</label>
* <label><<checkbox "_beatymarks" false true>> Beauty Marks</label>
* <label><<checkbox "_albinism" false true>> Albinism</label>
<<elseif $mc.species is "Anthro">>
Decide the color of your body and if it has any patterns or not.
<<nobr>>
<<if $mc.anthro.group is "Furry">>
<label>Fur Color</label>
<<elseif $mc.anthro.group is "Scalie">>
<label>Scale Color</label>
<<elseif $mc.anthro.group is "Avian">>
<label>Feather Color</label>
<</if>> <</nobr>>
<<listbox "$mc.anthro.color">>
<<optionsfrom $anthroColors>>
<</listbox>>
Pattern
<<listbox "$mc.anthro.pattern">>
<<optionsfrom $anthroPatterns>>
<</listbox>>
<</if>>
<<button [[Confirm|Index-CC]]>>
<<set $flags.skinChosen = true>>
<<set $skin.features to []>>
<<if _vitiligo>><<run $skin.features.push("Viligo")>><</if>>
<<if _freckles>><<run $skin.features.push("Freckles")>><</if>>
<<if _eczema>><<run $skin.features.push("Eczema")>><</if>>
<<if _beatymarks>><<run $skin.features.push("Beauty Marks")>><</if>>
<<if _albinism>><<run $skin.features.push("Albinism")>><</if>>
<</button>><<EnsureSpeciesData>>
<<SpeciesList>> /* sets _speciesList, or replace with your own array */
<h1>Let's Talk Species!</h1>
Your species defines you in many ways — choose wisely.
<span class="player-species">
<<set $mc.species = $mc.species or _speciesList[0]>>
<<listbox "$mc.species">>
<<optionsfrom _speciesList>>
<</listbox>>
</span>
<<button "Show options for selected species">>
<<replace "#anthro-ui">><<RenderAnthroUI>><</replace>>
<</button>>
<!-- the replace target must exist -->
<div id="anthro-ui"><<RenderAnthroUI>></div>
<span id="cover"></span>
<<button "Confirm">>
<<set $pages.species = true>>
/* only update the summary cell if it exists on the current DOM */
<<if jQuery('#mc-species').length>>
<<replace "#mc-species">><<print $mc.species or "—">><</replace>>
<</if>>
<<goto "Index-CC">>
<</button>><h1>Choose your Surname</h1>\
//What is your surname?//
Surname: <<textbox "$mc.surname" "" autofocus>> <<button [[Confirm|Index-CC]]>><</button>>
Once you are set on a name (by clicking one of the listed options), you will be sent back to the menu of traits.What role do you normally play as during sex?
* <label><<radiobutton "$mc.sexpref" "Dominant">>Dominant</label>
* <label><<radiobutton "$mc.sexpref" "Switch">>Switch</label>
* <label><<radiobutton "$mc.sexpref" "Submissive">>Submissive</label>
<<button "Confirm">>
<<set $pages.sexpref to true>>
<<goto "Index-CC">>
<</button>>The following are assets I do not claim to own yet use them in the creation and development of the game.
The ''Character Creator Template'' section was created by manonamora on Twine 2/Tweego with SugarCube (2.37.3). Heavily modified but was very important for development.
Applebridge is a original work created by online artist Nearphotison.
Camp Buddy is a Yaoi Visual Novel game created by BLit's Games.
Kevin Snowpaw is an OC created by KevinSnowpaw.
Carla and Carlos Lovelie are twin OC's created by LewdmasterLora
Joshua is a OC created by DragonSoul.Warning, this game will contain many simulated sexual interactions that is meant to appeal to many different kinks and fetishes including underage and zoophilia. I don't intend on restricting the content but I can give you the option to not engage when scenarios you do not like occurs.
While I cannot list all the content that is or will be included I can list what I will not include in the game (might grow over time):
*Noncon
*Watersports
*Scat
*ABDL
*gore (sexualized)
*Snuff
Also this game will include characters from existing media. I do not claim to own these characters and they will be noted in the Credits as well as where they are from.
While in this game you can potentially interact in consensual sexual activity with a minor or feral creatures I do not reflect this thought in real life and do not tolerate anyone using my game as an excuse to perform illegal activities that harm others.
Use your own discretion.<span class= "Jinx">
Alright, well then if you don't got any more questions then we can begin. Go and have fun!
If you are looking for some ass then I would suggest checking out the lounge on the ground floor.
</span>
[[Your Room]]<<set _loc to $gamelocation>>
<<set _getuppassage to _loc>>
<<set _nosleep to false>>
<<if _loc is "Your Room">>
You go to sleep on your bed.
<<link "Continue">>
<<goto "Wakeup">>
<</link>>
<</if>><<set _loc to $gamelocation>>
<<set _getuppassage to _loc>>
You wake up
<br>
<<link "Get up" _getuppassage>><</link>>
<br>Note: It is suggested to do the customization in order, as skipping some parts can lead to bugs. Will attempt to fix later.
<h1>Create your character</h1>
<h2>Basic Info</h2>
<div class="index-flex">
<div id="name">
FIRST NAME
<<button [[Choose|CC-Name]]>><</button>>
</div>
<div id="nickname">
NICKNAME
<<button [[Choose|CC-Nickname]]>><</button>>
</div>
<div id="surname">
SURNAME
<<button [[Choose|CC-Surname]]>><</button>>
</div>
<div id="gender">
GENDER AND SEX
<<button [[Choose|CC-Gender]]>><</button>>
</div>
<div id="pronouns">
PRONOUNS
<<button [[Choose|CC-Pronouns]]>><</button>>
</div>
<div id="age">
AGE
<<button [[Choose|CC-Age]]>><</button>>
</div>
<div id="species">
SPECIES
<<button [[Choose|CC-Species]]>><</button>>
</div>
</div>
<h2>Physical Traits</h2>
<h3>Face and Hair</h3>
<div class="index-flex">
<div id="eyes">
EYES
<<button [[Choose|CC-Eyes]]>><</button>>
</div>
<div id="hair">
HAIR
<<button [[Choose|CC-Hair]]>><</button>>
</div>
<div id="ffeat">
FACIAL FEATURES
<<button [[Choose|CC-FacialFeatures]]>><</button>>
</div>
</div>
<h3>Body</h3>
<div class="index-flex">
<div id="skin">
SKIN
<<button [[Choose|CC-Skin]]>><</button>>
</div>
<div id="build">
BUILD
<<button [[Choose|CC-Build]]>><</button>>
</div>
</div>
<h2>Personality</h2>
<div class="index-flex">
<div id="perso">
PERSONALITY
<<button [[Choose|CC-Personality]]>><</button>>
</div>
</div>
<h2> Sex info </h2>
<div class ="index-flex">
<div id = "genitals">
GENITALS
<<button [[Choose|CC-Genitals]]>><</button>>
</div>
<div id = "sexpref">
SEX PREFERENCE
<<button[[Choose|CC-sexPreference]]>><</button>>
</div>
/*
<div id = "kinks">
KINKS
<<button[[Choose|CC-Kinks]]>><</button>>
</div>
</div>
*/
<<button [[Review Choices|CC-Check]]>><</button>>
<<CheckIfDone>><<switch _topic>>
<<case "god">>
<span class="Jinx">Yes. I am a god. Specifically the god of joy and sex.</span>
<span class="mc"> "Yeah you just said that..."</span>
<span class="Jinx"> Please don't tell me you don't know what sex is. <<if $mc.virgin is true>> Because even though you haven't gotten laid I hope you've seen some porn before. <<elseif $mc.virgin is false>> Because otherwise I'm really curious what the fuck you thought you were doing to lose that virginity of yours. <</if>></span>
<span class="mc"> "Nono! I know about sex, I just have not heard of you before." </span>
Jinx arched an eyebrow and guffawed.
<span class="Jinx"> Yeah, that's fair. Most gods have temples and disciples but I am not a very vain god, rather I use my authority to spread joy and sex (mainly sex) across the realms, however what some people fail to understand is the limits of my power. I only tolerate consensual sex, anything otherwise I cast aside. But it don't matter the species, age, or background, so long as the other participant is willing or hasn't said no then I will allow it. And that's where you come in.</span>
<<case "emissary">>
<span class="Jinx">Yes, you $mc.name are my emissary. With it comes some benefits. You have the power to seduce anyone you come across for sex, skipping the whole socializing thing. The only requirment is that they have to feel sexual attraction for you and they have to be consenting. </span>
The thought made you feel excited inside.
<span class="Jinx"> Now while it does sound like my task for you is as simple as going around having sex with random people, it's a little more nuanced than that. You are spreading the joy of having sex to everyone. Too many people are nervous to express their sexual desires and I want you to encourage them to let it out!"</span>
<span class= "mc">"What if they don't want to have sex with me?" </span>
Jinx shrugged
<span class= "Jinx"> Then you don't have sex with them. People have their own desires and sexualities. It would go against my domain to force them to engage in somthing they are not interested in. </span>
<<case "where?">>
<span class = "Jinx">This is my domain, the Jinx Hentai Hotel! Don't bother looking it up on a map, it exists in it's own pocket dimension. It also acts as a gateway to any known universe, even some you might find familiar. </span>
<<case "Sex">>
<span class= "mc"> "So, is there any limit to the type of people I can have sex with?" </span>
<span class= "Jinx"> "Nope, so long as it's consensual then you can make love to anyone regardless of age, gender, or species."</span>
<span class= "mc"> "When you say regardless of age, does that include.....?" </span>
<span class= "Jinx"> "Look, so long as you obey the one simple rule, I don't judge who you bed with at all. You'd be surprised who would be down for some love making. But the choice is both yours and theirs." </span>
<<case "Door">>
<span class= "mc"> "When I left my room I noticed a door that had a strange aura around it. It felt almost like something was broken." </span>
Jinx had a faraway look on his face. As if he was reminiscing on something.
<span class= "Jinx"> "That is a reminder..."</span>
<span class= "mc">"A reminder of what?"</span>
<span class="Jinx">"What happens when you break my rule."</span>
You decide not to press any further.
<<default>>
<span class="Jinx">Ask a question.</span>
<</switch>>
<br>
<<button "Close">><<run Dialog.close()>><</button>>A log of relevant information to review in case you don't know.
Species:
*Human- Plain humanoid
*Furry- A humanoid creature with features that resemble a mammal.
*Avian- A humanoid creature with features that resemble a bird like animal.
*Scalie- A humanoid creature with features that resemble a reptilian animal.
Sex- It can be broken up into several phases:
*Foreplay- The beggining which helps you and your partner get in the mood, involves touching, kissing, and fondling areas to arouse.
*Intercourse- The part that everyone thinks of when it comes to sex. Mainly involves penetration of some kind until you reach orgasm.
*Aftercare- After orgasm you both begin to wind down from the intense session. You might be in the mood for closeness or intimacy.
Sexual Role- roles taken during sexual activity. Broken up into several roles:
*Top: The one desiring to penatrate the partner.
*Bottom: The one desiring to be penetrated during sex.
*Versatile: A special middle ground where the person desires being both a top and a bottom.
Sex Dynamic- The dynamic of power and authority during sex, can either be the Dom or the Sub
Note: Dom does not always mean Top and Sub does not always mean Bottom.<<set $gamelocation to "Arcade">>
You enter a large arcade. Lined from wall to wall are all sorts of video games, some retro, some modern, and some next generation.
WORK IN PROGESS
[[Elevator]]<<set $gamelocation to "Your Bathroom">>
<p> You step through the doorway into a clean, polished bathroom. Soft overhead lighting reflects off the marble tiles, giving the room a muted glow. The air is cool and lightly scented. A wide mirror stretches across the wall, framed by smooth metal edging. The sink basin sits beneath it, carved from a single piece of stone, with neatly arranged toiletries placed with precision. The glass shower enclosure stands to the side, its chrome fixtures catching the light. Everything is orderly, quiet, and waiting for you to use it.
</p>
<br>
<<if $lastNpc>>
<<set $ui.npc = $lastNpc>>
<<set _n = $ui.npc>>
<p> _n.name joins you in the bathroom.
</p>
<br>
<<linkreplace "Take a shower with _n.name">>
<p>_n.name joins you in the shower and you two wash yourselves. You both could hardly keep your hands off each other but eventually you are both squeaky clean.</p>
<</linkreplace>>
<<else>>
<<linkreplace "Take a shower">>
<p>You take a nice hot shower.</p>
<</linkreplace>>
<</if>>
<br>
<<link "Go back">>
<<goto "Your Room">>
<</link>><<set $gamelocation to "Brothel">>
You enter a lavish brothel.
You see a sign explaining the place.
<<button "Read Sign">><<PopupBrothelSign "Brothel">><</button>>
[[Elevator]]<<set $gamelocation to "Cafe">>
You enter a large cafe for eating.
[[Elevator]]<<set $gamelocation to "Elevator">>
You enter the elevator. Some buttons are lit up, indicating you can go there, other's are currently not available yet.
<br>
<div class="room-hotel">
[[Ground Floor|Lobby]] <br>
[[Jinx's Room]] <br>
[[Arcade]] <br>
[[Cafe]] <br>
[[Gym]] <br>
[[Pool]] <br>
[[Garden]] <br>
[[Brothel]] <br>
[[Spa]] <br>
/*[[Zoo]] <br> */
[[Jinx's Room]] <br>
[[Resident Hallway|Hotel Hallway]] <br>
</div><<set $gamelocation to "Garden">>
You enter a beautiful garden.
WORK IN PROGESS
[[Elevator]]<<set $gamelocation to "Gym">>
You enter a gym. People are working out.
WORK IN PROGESS
[[Elevator]]<<set $gamelocation to "Hotel Hallway">>
You are in the hotel hallway, doors to other rooms are on each side but you cannot enter them.
<span class="glitch" data-text="There is also a door that seems to be locked tight, it's best you do not enter.">There is also a door that seems to be locked tight, it's best you do not enter.</span>
At the end of the hall is an elevator.
[[Your Room]]
[[Elevator]]<<set $gamelocation to "Hotel Portal">>
You see the portal to travel the multiverse, it is currently out of order.
[[Lobby]]
End of game so far.
More to be added later.<<set $gamelocation to "Jinx's Room">>
You enter the room.
The room seems to be in the process of maintenence, and at the end of the room, Jinx sits on the throne.
<span class="Jinx">
Welcome my acolyte, do you have question's for me?
</span>
<<button "Sex">><<PopupJinxQ "Sex" "Sex">><</button>>
<<button "Emissary?">><<PopupJinxQ "emissary" "Emissary?">><</button>>
<<button "Door?">><<PopupJinxQ "Door" "Door">><</button>>
[[Elevator]]<<set $gamelocation to "Lobby">>
You are in the lobby of the hotel, classical music plays as you watch people from various worlds go about their business.
[[Lounge]]
[[Hotel Portal]]
[[Elevator]]<<set $gamelocation to "Lounge">>
A nice place to rest, relax, and socialize. There are some people mingling around the place.
[[Lobby]]
<div class="room-hotel">
<<SpawnPoolOnce "OC" $OCPool>>
<<SpawnPoolOnce "CB" $CBPool>>
<<SpawnPoolOnce "AB" $ABPool>>
<<SpawnRandomNPCs 3>>
<<include "SNPC-List">>
</div><<set $gamelocation to "Pool">>
The smell of chlorine entered your nose before you saw the pool area. On the side was a hottub. There was also the entrance to the showers.
WORK IN PROGESS
[[Elevator]]<<set $gamelocation to "Spa">>
WORK IN PROGESS
[[Elevator]]<<set $gamelocation to "Your Room">>
You are in your hotel room. It looks like the love suite of a luxury hotel, complete with a heart shaped bed. Next to the bed is a phone for calling up people you know for a 'good time'.
To the side was a mini bar with assorted drinks, both alcoholic and non alcoholic.
On the other side there was a door to your bathroom.
<br>
<<if $lastNpc>>
<<set $ui.npc = $lastNpc>>
<<set _n = $ui.npc>>
<p>_n.name is here in your room. $proset.they will leave after you leave your room.</p>
<br>
<<link "Go to the bathroom with _n.name">>
<<goto "Bathroom">>
<</link>>
<<else>>
<<link "Go to the bathroom">>
<<goto "Bathroom">>
<</link>>
<</if>>
<br>
<<set _sleeplink to {text: "Sleep", link: "Sleep"}>>
<<link _sleeplink>><</link>>
<br><br>
<<link "Leave your room">>
<<set $lastNpc = null>>
<<goto "Hotel Hallway">>
<</link>>/% Applebridge %/
<<set $CoryP = {
name: "Cory",
nickname: "",
surname: "Park",
species: "Human",
gender: "Male",
trans: "Cisgender",
sexu: "Heterosexual", /* sexual orientation */
genitals: "Penis",
genitaltype: "Cut", /*cut or uncut */
penislength: "Large",
assSize: "Round",
pronouns: "He/Him",
age: 14,
eyes: "Brown",
hair: "Curly volume",
haircolor: "Brown",
facefeatures: "",
skincolor: "Brown",
skinfeatures: "",
bodyheight: "Average",
bodyweight: "Slender",
bodymusc: "Toned", /* Musculature*/
personality: "Sassy",
sexpref: "Dominant",
origin: "Applebridge"
}>>
<<set $JaidenB = {
name: "Jaiden",
surname: "Bate",
species: "Human",
gender: "Female",
trans: "Cisgender",
sexu: "Bisexual", /* sexual orientation */
genitals: "Vagina",
genitaltype: "Tight",
pronouns: "She/Her",
age: 9,
eyes: "Blue",
hair: "Long",
haircolor: "Blonde",
facefeatures: "Freckles",
skincolor: "Fair",
bodyheight: "Short",
bodyweight: "Skinny",
bodymusc: "Light Muscles",
breastsize:"Flat",
personality: "Kind",
assSize: "Small",
sexpref: "Switch",
origin: "Applebridge"
}>>
<<set $LorraineD = {
name: "Lorraine",
nickname: "Dumptruck Dumpsey",
surname: "Dumpsey",
species: "Human",
gender: "Female",
trans: "Cisgender",
sexu: "Heterosexual", /* sexual orientation */
genitals: "Vagina",
genitaltype: "Loose",
pronouns: "She/Her",
age: 60,
eyes: "Black",
hair: "Pixie Cut",
haircolor: "Grey",
facefeatures: "",
skincolor: "Dark",
skinfeatures: "",
bodyheight: "Tall",
bodyweight: "Large",
bodymusc: "Soft",
breastsize:"Large",
personality: "Mean",
assSize: "Huge",
sexpref: "Dominant",
origin: "Applebridge"
}>>
<<set $OliverT = {
name: "Oliver",
nickname: "Olly",
surname: "Townsend",
species: "Human",
gender: "Male",
trans: "Cisgender",
sexu: "Bisexual", /* sexual orientation */
genitals: "Penis",
genitaltype: "Phimosis", /*cut or uncut */
penislength: "Small",
assSize: "Round",
pronouns: "He/Him",
age: 12,
eyes: "Blue",
hair: "Bobcut",
haircolor: "Brown",
skincolor: "Fair",
skinfeatures: "",
bodyheight: "Short",
bodyweight: "Slender",
bodymusc: "Light Muscles", /* Musculature*/
personality: "Shy",
sexpref: "Submissive",
origin: "Applebridge"
}>>/%Camp Buddy %/
<<set $Yoichi_CB = {
name: "Yoichi",
nickname: "",
surname: "Yukimura",
trans: "Cisgender",
species: "Human",
gender: "Male",
sexu: "Homosexual",
genitals: "Penis",
genitaltype: "Uncut",
penislength:"Large",
assSize: "Small",
pronouns: "He/Him",
age: 20,
eyes: "Scarlet",
hair: "Spiky",
haircolor: "Purple",
facefeatures:"Scar",
skincolor: "Fair",
skinfeatures: "Scars",
bodyheight: "Tall",
bodyweight: "Average",
bodymusc: "Ripped" ,
personality: "Tough",
virgin: false,
sexpref: "Dominant",
origin: "Camp Buddy"
}>>
<<set $Natsumi_CB = {
name: "Natsumi",
nickname: "",
surname: "Hamasaki",
trans: "Cisgender",
species: "Human",
gender: "Male",
sexu: "Homosexual",
genitals: "Penis",
genitaltype: "Uncut",
penislength:"Huge",
assSize: "Round",
pronouns: "He/Him",
age: 20,
eyes: "Cyan",
hair: "Spiky",
haircolor: "Blue",
skincolor: "Tan",
bodyheight: "Tall",
bodyweight: "Slender",
bodymusc: "Muscular" ,
personality: "Naive",
virgin: false,
sexpref: "Dominant",
origin: "Camp Buddy"
}>>
<<set $Hunter_CB = {
name: "Hunter",
nickname: "",
surname: "Springfield",
trans: "Cisgender",
species: "Human",
gender: "Male",
sexu: "Homosexual",
genitals: "Penis",
genitaltype: "Phimosis",
penislength:"Small",
assSize: "Large",
pronouns: "He/Him",
age: 18,
eyes: "Green",
hair: "Spiky",
haircolor: "Blonde",
skincolor: "Pale",
bodyheight: "Short",
bodyweight: "Slender",
bodymusc: "Light Muscles" ,
personality: "Timid",
virgin: false,
sexpref: "Submissive",
origin: "Camp Buddy"
}>>
<<set $Keitaro_CB = {
name: "Keitaro",
nickname: "",
surname: "Nagame",
trans: "Cisgender",
species: "Human",
gender: "Male",
sexu: "Homosexual",
genitals: "Penis",
genitaltype: "Uncut",
penislength:"Average",
assSize: "Round",
pronouns: "He/Him",
age: 19,
eyes: "Green",
hair: "Spiky",
haircolor: "Brown",
skincolor: "Tan",
bodyheight: "Average",
bodyweight: "Average",
bodymusc: "Toned" ,
personality: "Kind",
virgin: false,
sexpref: "Switch",
origin: "Camp Buddy"
}>>
<<set $Hiro_CB = {
name: "Hiro",
nickname: "",
surname: "Akiba",
trans: "Cisgender",
species: "Human",
gender: "Male",
sexu: "Homosexual",
genitals: "Penis",
genitaltype: "Uncut",
penislength:"Average",
assSize: "Small",
pronouns: "He/Him",
age: 19,
eyes: "Orange",
hair: "Spiky",
haircolor: "Orange",
skincolor: "Fair",
bodyheight: "Average",
bodyweight: "Average",
bodymusc: "Toned",
personality: "Energetic",
virgin: false,
sexpref: "Submissive",
origin: "Camp Buddy"
}>>
<<set $Taiga_CB = {
name: "Taiga",
nickname: "",
surname: "Akatora",
trans: "Cisgender",
species: "Human",
gender: "Male",
sexu: "Homosexual",
genitals: "Penis",
genitaltype: "Uncut",
penislength:"Average",
assSize: "Round",
pronouns: "He/Him",
age: 19,
eyes: "Red",
hair: "Spiky",
haircolor: "Flame",
skincolor: "Fair",
bodyheight: "Average",
bodyweight: "Average",
bodymusc: "Ripped",
personality: "Brave",
virgin: false,
sexpref: "Switch",
origin: "Camp Buddy"
}>><span id="list">
<<for _i = 0; _i < $npcs.length; _i++>>
<<set _n to $npcs[_i]>><<PronounsSet>><div class="npc-card">
<b>[ _n.id ]</b> _n.name <<if _n.surname>>_n.surname<</if>> — _n.species<<if _n.species is "Anthro">> / _n.anthro.group / _n.anthro.subtype<</if>> · _n.gender
<br>
<i>Age:</i> _n.age
<br>
<i>Origin:</i> _n.origin
<br>
<i>Personality:</i> _n.personality · <i>Sex Preference:</i> _n.sexpref
<br>
<div class="npc-actions"><<capture _n>>
<<button "Inspect">>
<<WithNPC _n.id>>
<<run Dialog.create("NPC: " + $ui.npc.name).wikiPassage("UI-NPC-Inspect").open()>>
<</button>>
<br>
<<button "Talk">>
<<WithNPC _n.id>>
<<run Dialog.create("Talk to " + $ui.npc.name).wikiPassage("UI-NPC-Talk").open()>>
<</button>>
<</capture>></div></div>
<hr>
<</for>>
</span><<if $npcs.length is 0>>
Nobody is here.
<</if>>
<<include "NPC-List-Body">>/* already designated NPC's will have their information stored here. */
/*Kevin Snowpaw */
<<set $KevinNpc = {
name: "Kevin",
nickname: "Kevy",
surname: "Snowpaw",
species: "Anthro",
anthro: {
group: "Furry",
subtype: "Bunny",
color: "White"
}, /* start as object */
gender: "Male",
trans: "cisgender",
sexu: "Bisexual",
pronouns: "He/Him",
age: 8,
heterochromia: false,
eyes: "Blue",
hair: "Bald",
haircolour: {},
facefeatures: {}, /* use {} not the string "{}" */
skinfeatures: "",
bodyheight: "Very Short",
bodyweight: "Thin",
bodymusc: "Soft",
personality: "Kind",
genitals: "Penis",
genitaltype: "Uncut",
penislength:"Small",
assSize: "Small",
virgin: false,
sexpref: "Switch",
origin: "Unknown"
}>>
/*Joshua */
<<set $JoshuaNpc = {
name: "Joshua",
species: "Human",
gender: "Male",
trans: "cisgender",
sexu: "Bisexual",
pronouns: "He/Him",
age: 11,
heterochromia: false,
eyes: "Green",
hair: "Bald",
skincolor: "Tan",
haircolour: "Light Brown",
bodyheight: "Short",
bodyweight: "Thin",
bodymusc: "Soft",
personality: "Kind",
genitals: "Penis",
genitaltype: "Cut",
penislength:"Small",
assSize: "Round",
virgin: false,
sexpref: "Submissive",
origin: "Unknown"
}>>
/*Carlos Lovelie */
<<set $CarlosNpc = {
name: "Carlos",
surname: "Lovelie",
species: "Human",
gender: "Male",
trans: "cisgender",
sexu: "Bisexual",
pronouns: "He/Him",
age: 9,
heterochromia: false,
eyes: "Green",
hair: "Pageboy",
haircolour: "Light Brown",
skincolor: "Fair",
bodyheight: "Very Short",
bodyweight: "Thin",
bodymusc: "Soft",
personality: "Playful",
genitals: "Penis",
genitaltype: "Uncut",
penislength:"Small",
assSize: "Small",
virgin: false,
sexpref: "Switch",
origin: "Unknown"
}>>
/*Carla Lovelie */
<<set $CarlaNpc = {
name: "Carla",
surname: "Lovelie",
species: "Human",
gender: "Female",
trans: "cisgender",
sexu: "Bisexual",
pronouns: "She/Her",
age: 9,
heterochromia: false,
eyes: "Green",
hair: "Pigtails",
haircolour: "Light Brown",
skincolor: "Fair",
bodyheight: "Very Short",
bodyweight: "Thin",
bodymusc: "Soft",
personality: "Playful",
genitals: "Vagina",
genitaltype: "Tight",
breastsize:"Flat",
assSize: "Small",
virgin: false,
sexpref: "Switch",
origin: "Unknown"
}>><<include "NPC-List-Body">>*/
<<set $characterTemplate = {
name: "",
nickname: "",
surname: "",
species: "",
gender: "",
trans: "",
sexu: "", /* sexual orientation */
genitals: "",
genitaltype: "", /*cut or uncut */
pronouns: "",
age: 0,
eyes: "",
hair: "",
haircolor: "",
facefeatures: "",
skincolor: "",
skinfeatures: "",
bodyheight: "",
bodyweight: "",
bodymusc: "", /* Musculature*/
personality: "",
anthro: {
group: "", /* furry, scalie, or avian */
subtype: "", /* Specific animal */
color: "", /* fur/scales/feathers */
wings: , /* yes or no */
},
Virgin: true or false,
sexpref: ""
}>>
/*/*
Species:
Human
Furry- Any mammals
Avian- Any Species of bird
Locations:
Hotel,
Camp Buddy,
Applebridge,
Medival Fantasy world,
Ancient Greece,
Furry world,
Hell,
Personality:
Brave,
Shy,
Relaxed,
Playful,
Good,
Evil,
Kind,
Logical,
Studious,
Active,
Lonely,
Timid,
Stubborn,
Serious,
Tough,
Jolly,
Naive,
Modest,
Quiet,
Bashful,
Calm,
Sassy,
Flamboyant
Arousal 1 to 100
Story:
Jinx is the god of lust and joy. They have chosen you to be their emissary across the multiverse. Their realm is the Jinx Hentai Hotel, a crossroad between all realms that resembles a luxury hotel with seemingly infinite rooms and floors. People between realms come and go as long as they have a sexual urge inside them. With the hotel you can also enter many different worlds and dimensions, from medival fantasy, to modern suburbia, to sci fi stations.
Jinx encourages nearly all kinds of sexual debaturay and has bestowed upon you the gift of lust, it comes with conditions. For one, you cannot impregnate or get pregnant. Another drawback is that your soul is bound to the hotel, you cannot choose to escape your duty ever. Another one is that you are forbidden for committing nonconsensual sex under penalty of Jinx's wrath. The other party must consent or be willing first, if they change their mind halfway through then it doesn't count.
*/<<if _n.personality =="Calm">>
"Not interested. But I'm content simply sharing this moment with you."
<<elseif _n.personality == "Jolly">>
Not right now — but don't worry, I'm still enjoying you being here.
<<elseif _n.personality == "Timid">>
"I-I'm sorry. I don't want to… but I'm grateful you asked gently."
<<elseif _n.personality == "Tough">>
"Not happening. So drop it."
<<elseif _n.personality == "Brave">>
"Gonna have to decline. It's just not going to work out."
<<elseif _n.personality == "Kind">>
"I appreciate it but I must decline."
<<elseif _n.personality == "Active">>
"Love the enthusiasm but I'm gonna pass."
<<elseif _n.personality == "Logical">>
"I decline. The conditions are not ideal for full engagement."
<<elseif _n.personality == "Sassy">>
"No — don't look so shocked. I got other things to do anyway"
<<elseif _n.personality == "Mean">>
"With you? Absolutely not!"
<<elseif _n.personality == "Energetic">>
"Mmmm, no thanks. Sorry."
<<elseif _n.personality == "Playful">>
"Nah, I don't feel like playing with you."
<<else>>
"No"
<</if>>/* You respond to certain actions. */
<br>
<b><<=$mc.name>>: </b>
<<if $sex.action == "Kiss">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Caress">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Frot">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Grope Breast">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Anal">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc..sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"My ass loves your <<= _n.genitals.toLowerCase() >> !",
"Good _n.petname! Keep sliding that delicious cock of yours in and out of my ass!",
"What a good _n.petname! Enjoy my ass as your reward now!",
"You like feeling my slutty little asshole gripping down on your cock?!",
"Good _n.petname! Push your <<= _n.genitals.toLowerCase() >> deep into my ass!",
"Keep going! Get that <<= _n.genitals.toLowerCase() >> deep in my ass like a good _n.petname!",
"Yes! Fuck my ass! Fuck me harder! Don't stop!",
"Don't stop! Harder! Fuck my ass! Yes, yes, yes!",
"Oh yes! Fuck my ass! I love your <<= _n.genitals.toLowerCase() >> !"
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Vaginal">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Cunnilingus">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Blowjob">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Handjob">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Footjob">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Suck Foot">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Rimjob">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Cuddle">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Grope Butt">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Finger Ass">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Orgasm">>
<<if $sex.roles.dom.name == $mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<<elseif $sex.roles.sub.name == _$mc.name>>
<<if $mc.sexpref == "Dominant">>
<<= either(
"DOM-LINE-1 about BODY-PART.",
"DOM-LINE-2 about BODY-PART.",
"DOM-LINE-3 about BODY-PART."
)>>
<<elseif $mc.sexpref == "Submissive">>
<<= either(
"SUB-LINE-1 about BODY-PART.",
"SUB-LINE-2 about BODY-PART.",
"SUB-LINE-3 about BODY-PART."
)>>
<<else>>
<<= either(
"NEUTRAL-DOM-LINE-1 about BODY-PART.",
"NEUTRAL-DOM-LINE-2 about BODY-PART."
)>>
<</if>>
<</if>>
<</if>><<replace "#actions">>
<<button "Cuddle">>
<<set $sex.stage = "Aftercare">>
<<set $sex.action = "Cuddle">>
<<run setup.bumpAffection ? setup.bumpAffection(4) : (setup.addAffection(4), setup.updateBindings())>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<</button>>
<<button "End Session">>
<<set $lastNpc = $ui.npc>> <!-- remember who you were with -->
<<set $sex = { stage: "foreplay", log: [] }>> <!-- optional reset -->
<<set $seenActions = {}>>
<<goto "Your Room">>
<</button>>
<</replace>><<set $seenActions = $seenActions or {}>>
<hr>
<b>Foreplay:</b>
<<if $position == "Standing" or $position == "Missionary" or $position == "Sitting" or $position == "Cowgirl" >>
<<button "Kiss">>
<<set $sex.action = "Kiss">>
<<run setup.bumpAffection ? setup.bumpAffection(3) : (setup.addAffection(3), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 3)>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</button>> |
<</if>>
<<button "Caress">>
<<set $sex.action = "Caress">>
<<run setup.bumpAffection ? setup.bumpAffection(3) : (setup.addAffection(3), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 3)>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</button>> |
<<if $position == "Standing" or $position == "Missionary" or $position == "Sitting" or $position == "Doggystyle" or $position == "Sit on Lap">>
<<button "Embrace">>
<<set $sex.action = "Embrace">>
<<run setup.bumpAffection ? setup.bumpAffection(3) : (setup.addAffection(3), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 3)>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</button>> |
<</if>>
<<if $position == "Standing" or $position == "Missionary" or $position == "Sitting" or $position == "Cowgirl" >>
<<button "Feel Abdomen">>
<<set $sex.action = "Touch Stomach">>
<<run setup.bumpAffection ? setup.bumpAffection(3) : (setup.addAffection(3), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 3)>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</button>> |
<</if>>
<<if ( _n.body && _n.body.ears && $sex.roles.sub.name == _n.name) || ($mc.body && $mc.body.ears && $sex.roles.dom.name == _n.name)>>
<<button "Pet Ears">>
<<set $sex.action = "Pet Ears">>
<<run setup.bumpAffection ? setup.bumpAffection(3) : (setup.addAffection(3), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 3)>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</button>> |
<</if>>
<<if $position == "Standing" or $position == "Missionary" or $position == "Cowgirl" or $position == "Sit on Lap">>
<<if $mc.genitals == "Penis" and _n.genitals == "Penis">>
<<button "Frottage">>
<<set $sex.action = "Frot">>
<<run setup.bumpAffection ? setup.bumpAffection(3) : (setup.addAffection(3), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 3)>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</button>> |
<</if>>
<</if>>
<<if $position == "Standing" or $position == "Sitting" or $position == "Missionary" or $position == "Cowgirl">>
<<if (_n.breastsize and $sex.roles.sub.name == _n.name) or ($mc.breastsize and $sex.roles.dom.name == _n.name)>>
<<button "Grope breast">>
<<set $sex.action = "Grope Breast">>
<<run setup.bumpAffection ? setup.bumpAffection(3) : (setup.addAffection(3), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 3)>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</button>>
<</if>>
<</if>>
<<if $position == "SixtyNine" or $position == "Oral Back" or $position == "Sit on Face">>
<<button "Rimjob">>
<<set $sex.action = "Rimjob">>
<<run setup.bumpAffection ? setup.bumpAffection(3) : (setup.addAffection(3), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 3)>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</button>> |
<</if>>
<<if $position == "Lean against wall" or $position == "Sitting" or $position == "Standing" or $position=="SixtyNine" or $position=="Oral Back" or $position=="Doggystyle" or $position == "Sit on Face">>
<<button "Grope Butt">>
<<set $sex.action = "Grope Butt">>
<<run setup.bumpAffection ? setup.bumpAffection(3) : (setup.addAffection(3), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 3)>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</button>> |
<</if>>
<<if $position == "SixtyNine" or $position == "Missionary" or $position == "Cowgirl" or $position == "Oral Back" or $position == "Sit on Face" or $position == "Doggystyle">>
<<button "Finger Ass">>
<<set $sex.action = "Finger Ass">>
<<run setup.bumpAffection ? setup.bumpAffection(3) : (setup.addAffection(3), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 3)>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</button>> |
<</if>>
<<if $position == "SixtyNine" or $position == "Oral Front" or $position == "Sit on Face" or $position == "Doggystyle">>
<<if _n.genitals=="Vagina" and $sex.roles.sub.name == _n.name or $mc.genitals =="Vagina" and $sex.roles.dom.name == _n.name>>
<<button "Finger Pussy">>
<<set $sex.action = "Finger Pussy">>
<<run setup.bumpAffection ? setup.bumpAffection(3) : (setup.addAffection(3), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 3)>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</button>> |
<</if>>
<</if>>
<<if $position == "SixtyNine">>
<<button "Suck Foot">>
<<set $sex.action = "Suck Foot">>
<<run setup.bumpAffection ? setup.bumpAffection(3) : (setup.addAffection(3), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 3)>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</button>> |
<</if>>
<br><b>Intercourse:</b>
<<if $mc.genitals == "Penis" and $sex.roles.sub.name == _n.name or _n.genitals == "Penis" and $sex.roles.dom.name == _n.name>>
<<if $position == "Cowgirl" or $position == "Pronebone" or $position == "Sit on Lap" or $position == "Doggystyle" or $position == "Missionary" or $position == "Lean against wall">>
<<button "Anal">>
<<if _n.arousal < 10>>
<<replace "#log">>They are not ready to proceed. Build more comfort first.<</replace>>
<<else>>
<<set $sex.action = "Anal">>
<<run setup.bumpAffection ? setup.bumpAffection(5) : (setup.addAffection(5), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 5)>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</if>>
<</button>> |
<</if>>
<</if>>
<<if $position == "Cowgirl" or $position == "Sit on Lap" or $position == "Doggystyle" or $position == "Missionary">>
<<if ((_n.genitals == "Vagina" and $mc.genitals == "Penis" and $sex.roles.sub.name == _n.name)
or ($mc.genitals == "Vagina" and _n.genitals == "Penis" and $sex.roles.dom.name == _n.name))>>
<<button "Vaginal">>
<<if _n.arousal < 10>>
<<replace "#log">>They are not ready to proceed. Build more comfort first.<</replace>>
<<else>>
<<set $sex.action = "Vaginal">>
<<replace "#intro">><</replace>>
<<run setup.bumpAffection ? setup.bumpAffection(5) : (setup.addAffection(5), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 5)>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</if>>
<</button>> |
<</if>>
<</if>>
<<if $position == "Oral Front" or $position == "Sitting" or $position == "SixtyNine" or $position =="Sit on Face">>
<<if _n.genitals == "Penis" and $sex.roles.dom.name == _n.name or $mc.genitals == "Penis" and $sex.roles.sub.name == _n.name>>
<<button "Blowjob">>
<<if _n.arousal < 10>>
<<replace "#log">>They are not ready to proceed. Build more comfort first.<</replace>>
<<else>>
<<set $sex.action = "Blowjob">>
<<run setup.bumpAffection ? setup.bumpAffection(5) : (setup.addAffection(5), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 5)>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</if>>
<</button>> |
<</if>>
<</if>>
<<if $position == "SixtyNine" or $position == "Oral Front" or $position == "Facesitting">>
<<if $mc.genitals == "Vagina" and $sex.roles.sub.name == _n.name or _n.genitals == "Vagina" and $sex.roles.dom.name == _n.name>>
<<button "Cunnilingus">>
<<if _n.arousal < 10>>
<<replace "#log">>They are not ready to proceed. Build more comfort first.<</replace>>
<<else>>
<<set $sex.action = "Cunnilingus">>
<<run setup.bumpAffection ? setup.bumpAffection(5) : (setup.addAffection(5), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 5)>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</if>>
<</button>> |
<</if>>
<</if>>
<<if $position == "Standing" or $position == "Sitting" or $position == "Sit on Lap" or $position == "Oral Front" or $position == "DoggyStyle" or $position == "Lean against wall" or $position == "Cowgirl">>
<<if _n.genitals == "Penis" and $sex.roles.dom.name == _n.name or $mc.genitals == "Penis" and $sex.roles.sub.name == _n.name>>
<<button "Handjob">>
<<if _n.arousal < 10>>
<<replace "#log">>They are not ready to proceed. Build more arousal first.<</replace>>
<<else>>
<<set $sex.action = "Handjob">>
<<run setup.bumpAffection ? setup.bumpAffection(5) : (setup.addAffection(5), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 5)>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</if>>
<</button>> |
<</if>>
<</if>>
<<if $position == "Sitting">>
<<if _n.genitals == "Penis" or $mc.genitals == "Penis">>
<<button "Footjob">>
<<if _n.arousal < 10>>
<<replace "#log">>They are not ready to proceed. Build more comfort first.<</replace>>
<<else>>
<<set $sex.action = "Footjob">>
<<run setup.bumpAffection ? setup.bumpAffection(5) : (setup.addAffection(5), setup.updateBindings())>>
<<set _n.arousal = Math.min(100, _n.arousal + 5)>>
<<replace "#sex-stage">><<include "Sex-Stage">><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "NPCSexDialogue">><<include "Sex-Quote">><</replace>>
<<replace "#sexaction">><b>Current Action: </b><<= $sex.action >><</replace>>
<<run $("#arousal-bar").prop("value", _n.arousal); $("#arousal-pct").text(_n.arousal + "%");>>
<<replace "#aftercare">><<include "OrgasmCloseBlock">><</replace>>
<</if>>
<</button>>
<</if>>
<</if>><<if $sex.roles.sub.name == _n.name>>
<<if $sex.action == "Anal Orgasm">>
<<if $position == "Cowgirl">>
You slam down one final time before _n.name lets out a moan and unloads into your ass. You feel the warmth fill you up.
<<elseif $position == "Missionary">>
_n.name unleashes inside of you, $proset.their hot cum spraying against the walls of your ass.
<<else>>
_n.name slams downs one last time before you groan and cum inside their ass.
<</if>>
<br>
/* If you have a knotted penis */
<<if $mc.genitaltype is "knotted">>
<<= either(
"Even after your balls have pumped their entire load into _n.name, your knot remains swollen, locking the two of you together."
)>>
<</if>>
As $proset.their load fills you up, you hit your limit as well, shooting your cum.
_n.name pulls $proset.their cock out of you with a wet splurch. You can feel $proset.their jizz leaking from your ass, but you're too tired to care.
<<elseif $sex.action == "Vaginal Orgasm">>
You moan and groan as you shoot your load into _n.name's _n.genitaltype _n.genitals.
<<elseif $sex.action == "Blowjob Orgasm">>
<<= either(
"$proset.their tongue swirls around your head some more, and soon you hit your limit. You shoot your load down $proset.their throat, though some still spills out the corners of $proset.their mouth.",
"With a cry of pleasure, you empty your balls into _n.name's hungry mouth."
)>>
<<elseif $sex.action == "Handjob Orgasm">>
You let out a moan and buck your $mc.body.hips forward as you shoot your load.
<<if $mc.genitaltype is "Knotted">>
The thick knot at the base of your $mc.genitals swells up, and you feel your balls tightening as you start to cum.
<</if>>
<<elseif $sex.action == "Footjob Orgasm">>
Bucking your $mc.body.hips, you let out a moan as _n.name continues stimulating your $mc.genitals with $proset.their _n.feet.
<<elseif $sex.action == "Cunnilingus Orgasm">>
_n.name writhes as $proset.they squirt in your mouth.
<<elseif $sex.action == "Frot Orgasm">>
_n.name's cock twitches and pulses as it cums between you both.
<<elseif $sex.action == "Boobjob Orgasm">>
You keep on fucking _n.name's breasts as you orgasm, spurting your cum all over $proset.their tits and _n.body.face.
<<elseif $sex.action == "Vaginal b Orgasm">>
You shoot your cum into _n.name's pussy.
<<else>>
You cum and _n.name cums with you. You've both made a mess.
<</if>>
<<elseif $sex.roles.dom.name == _n.name>>
<<if $sex.action == "Anal Orgasm">>
<<if $position == "Cowgirl">>
_n.name slam down one final time before you let out a moan and unloads into their ass. They shudder at the warmth filling them.
<<elseif $position == "Missionary">>
_n.name thrusts into you one last time before holding inside you and letting out a moan. You feel $proset.their cum shoot into your ass.
<<else>>
_n.name unleashes inside you, $proset.their hot cum spraying against the walls of your ass.
<</if>>
<<elseif $sex.action == "Vaginal Orgasm">>
<<= either(
"_n.name thrusts into you one last time before holding inside you and letting out a moan. You feel $proset.their cum shoot into your <<= $mc.genitals.toLowerCase() >>.",
"_n.name convulses and grinds against your <<= $mc.genitals.toLowerCase() >> before shooting $proset.their load."
)>>
<<elseif $sex.action == "Blowjob Orgasm">>
Before you know it, $proset.their cock swells in your mouth, and a hot stream of jizz shoots down your throat! You swallow as much as you can.
<<elseif $sex.action == "Footjob Orgasm">>
_n.name cums. Your feet are wet from $proset.their semen.
<<elseif $sex.action == "Cunnilingus Orgasm">>
<<= either(
"You writhe in place as you squirt in _n.name's mouth.",
"_n.name carries on licking and kissing at your clit while you orgasm."
)>>
<<elseif $sex.action == "Frot Orgasm">>
One last time you both thrust against each other before your dicks erupt into orgasm. Your chest were sprayed with your heavy loads. Before long you both squirted the last of your jizz as the two of you catch your breaths.
<<elseif $sex.action == "Boobjob Orgasm">>
_n.name moans as $proset.they jizz onto your face.
<<elseif $sex.action == "Handjob Orgasm">>
_n.name moans as they cum in your hands.
<<elseif $sex.action == "Vaginal Orgasm">>
_n.name cums into your <<= $mc.genitals.toLowerCase() >>.
<<else>>
You cum and _n.name cums with you. You've both made a mess.
<</if>>
<</if>>
<br>
_n.name:<<include "Orgasm-Quote">>
<br>
Wanna have aftercare or end the session?
<<replace "#aftercare">>
<<button "Aftercare">>
<<set $sex.stage = "aftercare">>
<<replace "#aftercare">><<include "AftercareBlock">><</replace>>
<</button>>
<<button "End Session">>
<<set $lastNpc = $ui.npc>> <!-- remember who you were with -->
<<set $sex = { stage: "foreplay", log: [] }>> <!-- optional reset -->
<<set $seenActions = {}>>
<<goto "Your Room">> <!-- or "Your Room" or whatever -->
<</button>>
<</replace>><<if _n.arousal >= 100>>
<<replace "#actions">><</replace>>
<<replace "#positionList">><</replace>>
<<replace "#log">>You are close to orgasm
<br>
_n.name:<<include "Orgasm-Close-Quote">><</replace>>
<<button "Cum">>
<<set $orgasmPlace = "Inside">>
<<set $sex.stage = "Orgasm">>
<<if $sex.action == "Anal">>
<<set $sex.action = "Anal Orgasm">>
<<elseif $sex.action == "Vaginal">>
<<set $sex.action = "Vaginal Orgasm">>
<<elseif $sex.action == "Handjob">>
<<set $sex.action = "Handjob Orgasm">>
<<elseif $sex.action == "Footjob">>
<<set $sex.action = "Footjob Orgasm">>
<<elseif $sex.action == "Frot">>
<<set $sex.action = "Frot Orgasm">>
<<elseif $sex.action == "Rimjob">>
<<set $sex.action = "Rimjob Orgasm">>
<<elseif $sex.action == "Blowjob">>
<<set $sex.action = "Blowjob Orgasm">>
<<elseif $sex.action == "Boobjob">>
<<set $sex.action = "Boobjob Orgasm">>
<<elseif $sex.action == "Cunnilingus">>
<<set $sex.action = "Cunnilingus Orgasm">>
<<else>>
<<set $sex.action = "Orgasm">>
<</if>>
<<replace "#log">><<include "OrgasmBlock">><</replace>>
<</button>>
<</if>><hr>
<div id="positionList" class="position-block">
Change location:
<<if $position != "Standing">>
<<button "Stand up">>
<<set $position = "Standing">>
<<set $sexSpot = "On Floor">>
<<replace "#position">><b>Position: </b><<= $position >><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "PositionDialogue">><</replace>>
<<replace "#positionList">><<include "PositionBlock">><</replace>>
<<replace "#actions">><<include "ForeplayBlock">><<include "IntercourseBlock">><</replace>>
<</button>> |
<</if>>
<<if $position != "Sitting">>
<<button "Sit on bed">>
<<set $position = "Sitting">>
<<set $sexSpot = "On Bed">>
<<replace "#position">><b>Position: </b><<= $position >><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "PositionDialogue">><</replace>>
<<replace "#positionList">><<include "PositionBlock">><</replace>>
<<replace "#actions">><<include "ForeplayBlock">><<include "IntercourseBlock">><</replace>>
<</button>> |
<</if>>
<br>
Change Position:
<<if $sexSpot == "On Bed">>
<<if $position != "Cowgirl">>
<<button "Cowgirl">>
<<set $position = "Cowgirl">>
<<set $sexSpot = "On Bed">>
<<replace "#position">><b>Position: </b><<= $position >><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "PositionDialogue">><</replace>>
<<replace "#positionList">><<include "PositionBlock">><</replace>>
<<replace "#actions">><<include "ForeplayBlock">><<include "IntercourseBlock">><</replace>>
<</button>> |
<</if>>
<<if $position != "Missionary">>
<<button "Missionary">>
<<set $position = "Missionary">>
<<set $sexSpot = "On Bed">>
<<replace "#position">><b>Position: </b><<= $position >><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "PositionDialogue">><</replace>>
<<replace "#positionList">><<include "PositionBlock">><</replace>>
<<replace "#actions">><<include "ForeplayBlock">><<include "IntercourseBlock">><</replace>>
<</button>> |
<</if>>
<<if $position != "Doggystyle">>
<<button "Doggystyle">>
<<set $position = "Doggystyle">>
<<set $sexSpot = "On Bed">>
<<replace "#position">><b>Position: </b><<= $position >><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "PositionDialogue">><</replace>>
<<replace "#positionList">><<include "PositionBlock">><</replace>>
<<replace "#actions">><<include "ForeplayBlock">><<include "IntercourseBlock">><</replace>>
<</button>> |
<</if>>
<<if $position != "SixtyNine">>
<<button "Sixty Nine">>
<<set $position = "SixtyNine">>
<<set $sexSpot = "On Bed">>
<<replace "#position">><b>Position: </b><<= $position >><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "PositionDialogue">><</replace>>
<<replace "#positionList">><<include "PositionBlock">><</replace>>
<<replace "#actions">><<include "ForeplayBlock">><<include "IntercourseBlock">><</replace>>
<</button>> |
<</if>>
<<if $position != "Sit on Face">>
<<button "Sit on face">>
<<set $position = "Sit on Face">>
<<set $sexSpot = "On Bed">>
<<replace "#position">><b>Position: </b><<= $position >><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "PositionDialogue">><</replace>>
<<replace "#positionList">><<include "PositionBlock">><</replace>>
<<replace "#actions">><<include "ForeplayBlock">><<include "IntercourseBlock">><</replace>>
<</button>> |
<</if>>
<<if $position != "Sit on Lap">>
<<button "Sit on Lap">>
<<set $position = "Sit on Lap">>
<<set $sexSpot = "On Bed">>
<<replace "#position">><b>Position: </b><<= $position >><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "PositionDialogue">><</replace>>
<<replace "#positionList">><<include "PositionBlock">><</replace>>
<<replace "#actions">><<include "ForeplayBlock">><<include "IntercourseBlock">><</replace>>
<</button>> |
<</if>>
<</if>>
<<if $sexSpot == "On Floor">>
<<if $position != "Lean against wall">>
<<button "Lean against wall">>
<<set $position = "Lean against wall">>
<<set $sexSpot = "On Floor">>
<<replace "#position">><b>Position: </b><<= $position >><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "PositionDialogue">><</replace>>
<<replace "#positionList">><<include "PositionBlock">><</replace>>
<<replace "#actions">><<include "ForeplayBlock">><<include "IntercourseBlock">><</replace>>
<</button>> |
<</if>>
<<if $position != "Oral Front">>
<<button "Oral Front">>
<<set $position = "Oral Front">>
<<set $sexSpot = "On Floor">>
<<replace "#position">><b>Position: </b><<= $position >><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "PositionDialogue">><</replace>>
<<replace "#positionList">><<include "PositionBlock">><</replace>>
<<replace "#actions">><<include "ForeplayBlock">><<include "IntercourseBlock">><</replace>>
<</button>> |
<</if>>
<<if $position != "Oral Back">>
<<button "Oral Back">>
<<set $position = "Oral Back">>
<<set $sexSpot = "On Floor">>
<<replace "#position">><b>Position: </b><<= $position >><</replace>>
<<replace "#intro">><</replace>>
<<replace "#log">><<include "PositionDialogue">><</replace>>
<<replace "#positionList">><<include "PositionBlock">><</replace>>
<<replace "#actions">><<include "ForeplayBlock">><<include "IntercourseBlock">><</replace>>
<</button>> |
<</if>>
<</if>>
</div><<silently>>
<<set _n = $ui.npc>>
<<if !_n>>[Error] No active NPC.<<return>><</if>>
<<set $sex = $sex or {}>>
<<if _n.arousal < 10>>
<<set $sex.stage = "Foreplay">>
<<elseif _n.arousal < 100>>
<<set $sex.stage = "Intercourse">>
/* <<else>> */
/* <<set $sex.stage = "Aftercare">> */
<</if>>
<</silently>>
<span class="stage-pill"><<= $sex.stage >></span><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"You quickly move up against a nearby wall. Placing your hands up against the solid surface that's now in front of you, you push your <<= $mc.assSize.toLowerCase() >> ass out, shaking it at _n.name as you try to encourage $proset.them to fuck you like this."
)>>
<<elseif $sex.roles.sub.name== _n.name>>
<<=either(
"Taking hold of $proset.their shoulders, you push $proset.them up against a nearby wall.",
"Grinding your body up against $proset.their back, _n.name feels your breath on $proset.their "+ ((_n.body.ears && _n.body.ears.toLowerCase) ? _n.body.ears.toLowerCase() : "ears")+"."
)>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if !$seenActions.Anal>>
<<set $seenActions.Anal = true>>
<<if $position == "Cowgirl">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"You sink down onto _n.name's <<= _n.genitals.toLowerCase() >> , letting out a moan as you lean down and grab _n.name's head in both hands, before pulling _n.name up into a passionate kiss.",
"With a moan, you slide down onto _n.name's <<= _n.genitals.toLowerCase() >> , leaning down into _n.name's _n.breasts and breathing in _n.name's scent before pressing your lips against _n.name's.",
"You let _n.name's <<= _n.genitals.toLowerCase() >> slide even deeper into your $mc.assSize ass as you lean down and pull _n.name into a desperate kiss.",
"Leaning down, you let out a moan as you bury yourself on _n.name's <<= _n.genitals.toLowerCase() >> , before leaning forward and pressing your lips against _n.name's.",
"You reach down to take hold of _n.name's <<= _n.genitals.toLowerCase() >> , before shuffling around to get into a good position. After teasing the cockhead over your $mc.assSize ass, you let out a little moan as you slowly drop down and penetrate your $mc.assSize ass on _n.name's <<= _n.genitals.toLowerCase() >> .",
"Shuffling around into a better position, you line the head of _n.name's <<= _n.genitals.toLowerCase() >> up between your ass cheeks, and with a slow, steady movement, you gently drop down, penetrating your $mc.assSize ass on _n.name's <<= _n.genitals.toLowerCase() >> .",
"You take a firm hold of _n.name's <<= _n.genitals.toLowerCase() >> , then tease the cockhead over your $mc.assSize ass before eagerly dropping down and penetrating your $mc.assSize ass on _n.name's <<= _n.genitals.toLowerCase() >> .",
"Shuffling into a better position, you line the head of _n.name's <<= _n.genitals.toLowerCase() >> up between your ass cheeks, and with a single movement, you eagerly drop down, penetrating your $mc.assSize ass on _n.name's <<= _n.genitals.toLowerCase() >> .",
"You reach down and roughly grab _n.name's <<= _n.genitals.toLowerCase() >> , tease the head over your $mc.assSize ass, then forcefully drop down and penetrate your $mc.assSize ass on _n.name's <<= _n.genitals.toLowerCase() >> .",
"Shuffling into a better position, you line the head of _n.name's <<= _n.genitals.toLowerCase() >> up between your ass cheeks, and with a single movement, you roughly drop down, penetrating your $mc.assSize ass on _n.name's <<= _n.genitals.toLowerCase() >> ."
)>>
<<= either(
"_n.name lets out a moan as $proset.they enter you, eagerly bucking _n.name's _n.body.hips up as _n.name start fucking your $mc.assSize ass.",
"With a moan, _n.name eagerly thrust _n.name's _n.body.hips up into your $mc.assSize ass, sinking _n.name's <<= _n.genitals.toLowerCase() >> into your $mc.assSize ass as _n.name start energetically fucking you.",
"_n.name lets out a moan as $proset.they enter you, bucking $proset.their _n.body.hips up as _n.name start fucking your $mc.assSize ass.",
"With a moan, _n.name thrust $proset.their _n.body.hips up into your $mc.assSize ass, sinking _n.name's <<= _n.genitals.toLowerCase() >> into your $mc.assSize ass as _n.name starts fucking you."
)>>
<<= either(
"Using your legs, you slowly lift yourself up and down, sliding _n.name's <<= _n.genitals.toLowerCase() >> in and out of your $mc.assSize ass as you moan out loud.",
"Leaning forwards, you use your $mc.body.hands to support some of your weight as you slowly slide up and down on _n.name's <<= _n.genitals.toLowerCase() >> . As you lower your face towards _n.name, you get a waft of _n.name's scent, and you bite your lip as you breathe in the intoxicating aroma.",
"Lowering your $mc.body.hands to your knees, you use your $mc.body.legs to slowly slide yourself up and down, letting out a soft moan as you impale yourself on _n.name's <<= _n.genitals.toLowerCase() >> .",
"You slowly lift yourself up before sliding back down, letting out a soft moan as you spear your $mc.assSize ass on _n.name's <<= _n.genitals.toLowerCase() >> .",
"Using your legs, you lift yourself up and down, sliding _n.name's <<= _n.genitals.toLowerCase() >> in and out of your $mc.assSize ass as you moan out loud.",
"Leaning forwards, you use your $mc.body.hands to support some of your weight as you eagerly slide up and down on _n.name's <<= _n.genitals.toLowerCase() >> . As you lower your face towards _n.name, you get a waft of _n.name's scent, and you bite your lip as you breathe in the intoxicating aroma.",
"Lowering your $mc.body.hands to your knees, you use your $mc.body.legs to enthusiastically slide yourself up and down, letting out a moan as you impale yourself on _n.name's <<= _n.genitals.toLowerCase() >> .",
"You lift yourself up before greedily sliding back down, letting out a moan as you spear your $mc.assSize ass on _n.name's <<= _n.genitals.toLowerCase() >> .",
"Using your legs, you rapidly bounce yourself up and down, slamming _n.name's <<= _n.genitals.toLowerCase() >> in and out of your $mc.assSize ass as you moan out loud.",
"Leaning forward, you use your $mc.body.hands to support some of your weight as you start rapidly bucking up and down on _n.name's <<= _n.genitals.toLowerCase() >> . As you lower your face towards _n.name, you get a waft of _n.name's scent, and you bite your lip as you breathe in the intoxicating aroma.",
"Placing your $mc.body.hands down on the floor behind you for support, you start rapidly bouncing yourself up and down, letting out a shuddering moan as you impale yourself on _n.name's <<= _n.genitals.toLowerCase() >> .",
"Grinning down at _n.name, you start enthusiastically bouncing up and down, letting out a moan as you spear your $mc.assSize ass on _n.name's <<= _n.genitals.toLowerCase() >> ."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You both cry out as _n.name slides $proset.their ass onto my <<= $mc.genitals.toLowerCase() >>. Soon their butt fully rested on my thighs."
)>>
<</if>>
<<elseif $position == "Missionary">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name fucks you in the missionary position."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You fuck _n.name in the missionary position."
)>>
<</if>>
<<elseif $position == "Doggystyle">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"You are being fucked doggystyle."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You are fucking _n.name doggystyle"
)>>
<</if>>
<<elseif $position == "Lean against wall">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name gets into position and pushes $proset.their dick into you. _n.name sighs as $proset.their cock buries itself deeper into you."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You line up your dick and push into _n.name."
)>>
<</if>>
<</if>>
<<else>>
<<if $position == "Cowgirl">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"You continue to ride _n.name"
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"_n.name bounced up and down on your <<= $mc.genitals.toLowerCase() >> in a controlled motion.",
"_n.name's paced increased, pushing my <<= $mc.genitals.toLowerCase() >> deeper into $proset.their hole.",
"The sight of _n.name bouncing on my <<= $mc.genitals.toLowerCase() >>, their blissful expression, it turned me on.",
"_n.name leans forward, putting $proset.their small hands on your bare chest. Balanced like this, $proset.they begins bouncing $proset.their ass up and down the length of your cock.",
"You lay back, enjoying the feeling of $proset.their ass gripping your dick."
)>>
<</if>>
<<elseif $position == "Doggystyle">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name fucks your ass like a dog.",
"$proset.they begin to pick up a rhythm, thrusting into you over and over. Each time $proset.they do, your body is jostled forwards by the impact."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You hump _n.name's ass like a dog."
)>>
<</if>>
<<elseif $position == "Missionary">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"Your body rocks back and forth on the bed as $proset.they thrusts into you with force."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"$proset.their feet flop in the air with your thrusts, $proset.their toes curling and uncurling in pleasure."
)>>
<</if>>
<<else>>
You both keep on fucking.
<</if>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if !$seenActions.Blowjob>>
<<set $seenActions.Blowjob = true>>
<<if $position == "SixtyNine">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"Your hot breath falls down onto $proset.their groin as you slowly lower your head down between $proset.their <<= _n.body.legs.toLowerCase()>>, passionately kissing the head of $proset.their<<= _n.genitals.toLowerCase()>> before taking $proset.them into your mouth.",
"Gently lowering your head down between $proset.their <<= _n.body.legs.toLowerCase()>>, you deliver a long, slow lick up the length of $proset.their<<= _n.genitals.toLowerCase()>> before taking the head into your mouth."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"Using your knees to lift yourself up, you allow your <<= $mc.genitals.toLowerCase()>> to slide up and out of $proset.their mouth. A slimy strand of saliva links $proset.their <<= _n.body.lips.toLowerCase()>> to the head of your <<= $mc.genitals.toLowerCase()>> for a brief moment before breaking to fall down over $proset.their face."
)>>
<</if>>
<<else>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name grabs you by the head, pressing the tip of $proset.their <<= _n.genitals.toLowerCase()>> against your <<= $mc.body.lips.toLowerCase()>> before slowly sliding it into your mouth.",
"With a firm grip, _n.name guides your head toward $proset.their <<= _n.genitals.toLowerCase()>> , pushing forward until the tip parts your <<= $mc.body.lips.toLowerCase()>> and slips inside.",
"_n.name takes hold of your head, pressing the head of $proset.their <<= _n.genitals.toLowerCase()>> to your mouth before gently thrusting forward, sliding in deeper.",
"Firmly gripping your head, _n.name pushes the head of $proset.their <<= _n.genitals.toLowerCase()>> between your lips, letting out a low grunt as $proset.they start to move $proset.their hips.",
"_n.name let out a sharp gasp as my lips fully engulfed $proset.their <<= _n.genitals.toLowerCase()>>. It twitched from the sensation."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"Looking up at $proset.them eagerly, you lean forward and take $proset.their <<= _n.genitals.toLowerCase()>> into your mouth, moving slowly as you start to pleasure them.",
"Obediently, you lean closer, opening your mouth to take $proset.their <<= _n.genitals.toLowerCase()>> in with a soft, muffled moan.",
"You lower your head toward $proset.their <<= _n.genitals.toLowerCase()>> , lips parting as you gently begin to suck and lick with growing enthusiasm.",
"Without hesitation, you press your lips to $proset.their <<= _n.genitals.toLowerCase()>> . They moan softly as you take $proset.them into your mouth.",
"Reaching down to grab _n.name's head, you line the head of your <<= $mc.genitals.toLowerCase()>> up to $proset.their <<= _n.body.lips.toLowerCase()>> before gently pushing your <<= $mc.body.hips.toLowerCase()>> forwards and sliding your <<= $mc.genitals.toLowerCase()>> into $proset.their mouth.",
"Reaching down to take hold of _n.name's head, you push the head of your <<= $mc.genitals.toLowerCase() >> against _n.name's <<= _n.body.lips.toLowerCase()>> before slowly bucking your <<= $mc.body.hips.toLowerCase()>> into $proset.their <<= _n.body.face.toLowerCase()>> and gently sliding your <<= $mc.genitals.toLowerCase() >> into $proset.their mouth.",
"Reaching down to grab $proset.their head, you line the head of your <<= $mc.genitals.toLowerCase() >> up to $proset.their _n.body.lips before pushing your $mc.body.hips forwards and sliding your <<= $mc.genitals.toLowerCase() >> into $proset.their mouth.",
"_n.name eagerly wraps $proset.their _n.body.lips around your <<= $mc.genitals.toLowerCase() >>, letting out a muffled moan as $proset.they enthusiastically bob $proset.their head up and down.",
"A muffled moan drifts out from _n.name's mouth and, eagerly wrapping $proset.their _n.body.lips around your <<= $mc.genitals.toLowerCase() >>, $proset.they enthusiastically continue to give you head.",
"Moaning in delight, _n.name eagerly wraps $proset.their <<= _n.body.lips.toLowerCase()>> around your <<= $mc.genitals.toLowerCase() >>, eagerly licking and sucking your <<= $mc.genitals.toLowerCase() >> as $proset.they continue making muffled moaning noises.",
"_n.name wraps $proset.their <<= _n.body.lips.toLowerCase()>> around your <<= $mc.genitals.toLowerCase() >>, letting out a muffled moan as $proset.they bob $proset.their head up and down.",
"A muffled moan drifts out from $proset.their mouth and, wrapping $proset.their _n.body.lips around your <<= $mc.genitals.toLowerCase() >>, $proset.they continue to give you head.",
"Moaning in delight, _n.name wraps $proset.their _n.body.lips around your <<= $mc.genitals.toLowerCase() >>, licking and sucking your <<= $mc.genitals.toLowerCase()>> as $proset.they continue making muffled moaning noises."
)>>
<</if>>
<</if>>
<<else>>
/* If you already gave someone a blowjob */
<<if $sex.roles.sub.name == _n.name>>
<<= either(
"You eagerly thrust your <<= $mc.genitals.toLowerCase() >> past $proset.their <<= _n.body.lips.toLowerCase()>>, letting out a moan as you greedily pump your <<= $mc.body.hips.toLowerCase()>> into $proset.their <<= _n.body.face.toLowerCase()>>.",
"You desperately buck your $mc.body.hips into $proset.their <<= _n.body.face.toLowerCase()>>, letting out a moan as you eagerly fuck $proset.their throat.",
"Enthusiastically bucking your hips into $proset.their <<= _n.body.face.toLowerCase()>>, you let out a moan as you continue happily receiving your blowjob.",
"You thrust your <<= $mc.genitals.toLowerCase() >> past $proset.their _n.body.lips, letting out a moan as you pump your $mc.body.hips into $proset.their _n.body.face.",
"You buck your <<= $mc.body.hips.toLowerCase()>> into $proset.their <<= _n.body.face.toLowerCase()>>, letting out a moan as you fuck $proset.their throat.",
"Bucking your hips into $proset.their <<= _n.body.face.toLowerCase()>>, you let out a moan as you continue happily receiving a blowjob.",
"Inside $proset.their mouth, you can feel that practiced tongue of $proset.them swirling around your tip."
)>>
<<elseif $sex.roles.dom.name== _n.name>>
<<= either(
"You suckle on _n.name's <<= _n.genitals.toLowerCase()>>.",
"You begin to slowly use your tongue to slowly work around _n.name's tip, making sure you can feel and taste every part of it.",
"_n.name moaned with pleasure as you continued to blow $proset.them.",
"Your head bobbed up and down as you fully focues on _n.name's <<= _n.genitals.toLowerCase()>>."
)>>
<</if>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name thrusts their _n.genitals between your $mc.breastsize breasts."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You thrust your $mc.genitals between _n.name's _n.breastsize breasts."
)>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name gently caresses your arm, testing your reaction."
)>>
<<=either(
"A happy moan escapes from _n.name's mouth in response to this contact, causing you to smile in delight.",
"The happy sigh which escapes your mouth is more than enough to let _n.name know that your gentle caress has had the desired effect.",
"In response to this, you let out a happy moan, letting _n.name know that your gesture is much appreciated."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"Wanting to make _n.name feel loved, you lift your $mc.body.hand, before gently stroking your $mc.body.fingers over $proset.their face.",
"Lifting your $mc.body.hand, you softly trace your $mc.body.fingers over _n.name cheek in order to make $proset.them feel loved.",
"Seeking to put _n.name at ease, you raise your $mc.body.hand, before using your $mc.body.fingers to lovingly caress $proset.their face.",
"Your $mc.body.fingers glides across _n.name's body."
)>>
/* Describe body texture */
<<if _n.body.bodymaterial == "Skin">>
<<= either(
"You feel their silky smooth <<= _n.skincolor.toLowerCase()>> skin against your hand."
)>>
<<elseif _n.body.bodymaterial == "Fur">>
<<= either(
"You feel the softness of $proset.their <<= _n.anthro.color.toLowerCase()>> fur against your hand."
)>>
<</if>>
/* Describe body type */
<<if _n.bodytype == "Gaunt">>
Their ribs stick out from their body due to how skinny they are.
<</if>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"Taking hold of " + _n.name + "'s shoulders, you push " + $proset.them + " down onto " + $proset.their + " back. You then lower yourself down on top of " + $proset.them + ", bringing your crotch down to bump against " + $proset.theirs + " as you straddle " + $proset.them + " in the cowgirl position. Once you've made yourself comfortable, you grin down at " + _n.name + ".",
"Lifting your " + $mc.body.arms + ", you take hold of " + _n.name + "'s shoulders, and with a little pressure, try to get " + $proset.them + " to drop down onto " + $proset.their + " back as you smirk, ",
"Taking hold of " + _n.name + "'s shoulders, you pull " + $proset.them + " down with you as you lie down on your back. With a firm grip on " + _n.name + "'s " + _n.body.hips + ", you push " + $proset.them + " back so that they are straddling you in the cowgirl position. Once you've made yourself comfortable, you look up at " + _n.name + " and smile, "
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"Dropping down and quickly lying on your back, you put on the most enticing look you can muster as you plead, ",
"Jumping down over the top of you, " + _n.name + " lowers " + $proset.themself + " down over your groin, bringing " + $proset.their + " crotch to yours as " + $proset.they + " straddle you in the cowgirl position. Leaning forward a little, " + $proset.they + " grin down at you, ",
"Allowing you to push " + $proset.them + " down, " + _n.name + " reaches up and takes a firm grip on your " + $mc.body.hips + ", before pulling you down so that you're straddling " + $proset.them + " in the cowgirl position. Looking up into your " + $mc.eyes + " eyes, " + $proset.they + " says, ",
"_n.name climbed on top of you."
)>>
<br>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name wrap their arms around you. You lay your head on their chest."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You wrap your arms around _n.name. They slink their face into your chest.",
"You both hug, _n.name snuggling up to you."
)>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if !$seenActions.Cunnilingus>>
<<set $seenActions.Cunnilingus = true>>
<<if $sex.roles.sub.name == _n.name>>
<<= either(
"Shifting your $mc.body.hips, you reposition yourself to eagerly grind your <<= $mc.genitals.toLowerCase()>> against _n.name's <<= _n.body.lips.toLowerCase()>>.",
"With a quick shift of your <<= $mc.body.hips.toLowerCase()>>, you let out a moan as you greedily press your <<= $mc.genitals.toLowerCase()>> down against _n.name's <<= _n.body.tongue.toLowerCase()>>.",
"Eagerly pressing your <<= $mc.genitals.toLowerCase()>> down against _n.name's mouth, you reposition so that you are grinding your <<= $mc.genitals.toLowerCase()>> against _n.name's <<= _n.body.lips.toLowerCase()>>.",
"Shifting your <<= $mc.body.hips.toLowerCase()>>, you reposition yourself to grind your <<= $mc.genitals.toLowerCase()>> against _n.name's <<= _n.body.lips.toLowerCase()>>.",
"With a quick shift of your <<= $mc.body.hips.toLowerCase()>>, you let out a moan as you press your <<= $mc.genitals.toLowerCase()>> down against _n.name's <<= _n.body.tongue.toLowerCase()>>.",
"Pressing your $mc.genitals down against _n.name's mouth, you reposition so that you are grinding your <<= $mc.genitals.toLowerCase()>> against _n.name's <<= _n.body.lips.toLowerCase()>>."
)>>
<<elseif $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name repositions themself to eagerly grind $proset.their <<= _n.genitals.toLowerCase() >> against your <<= $mc.body.lips.toLowerCase()>>.",
"With a quick shift of $proset.their <<= _n.body.hips.toLowerCase()>>, _n.name lets out a moan as $proset.they greedily press $proset.their <<= _n.genitals.toLowerCase()>> down against your <<= $mc.body.tongue.toLowerCase()>>.",
"Eagerly pressing $proset.their <<= _n.genitals.toLowerCase() >> down against your mouth, $proset.they reposition $proset.themselves so that $proset.they are grinding $proset.their <<= _n.genitals.toLowerCase() >> against your <<= $mc.body.lips.toLowerCase()>>.",
"Shifting $proset.their <<= _n.body.hips.toLowerCase()>>, $proset.they reposition $proset.themselves to grind $proset.their <<= _n.genitals.toLowerCase()>> against your <<= $mc.body.lips.toLowerCase()>>.",
"With a quick shift of $proset.their _n.body.hips, $proset.they let out a moan as $proset.they press $proset.their <<= _n.genitals.toLowerCase() >> down against your $mc.body.tongue.",
"Pressing $proset.their <<= _n.genitals.toLowerCase()>> down against your mouth, $proset.they reposition $proset.themself so that $proset.they are grinding $proset.their <<= _n.genitals.toLowerCase() >> against your <<= $mc.body.lips.toLowerCase()>>."
)>>
<</if>>
<<else>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"You continue to eat out their <<= _n.genitals.toLowerCase() >>."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"_n.name continues to eat you out."
)>>
<</if>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"You drop down on all fours, facing away from _n.name.",
"You nod, crawling up onto your bed. You get on all fours, presenting your ass out towards _n.name."
)>>
You can't see what _n.name's doing, and you shiver in anticipation for what's to come.
<br>
<<elseif $sex.roles.sub.name== _n.name>>
<<=either(
"_n.name get on all fours like a dog, and present their _n.assSize ass to you."
)>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $position == "Standing">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name wraps their arms around you, giving you a nice hug."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You wrap your arms around _n.name, giving them a nice hug."
)>>
<</if>>
<<elseif $position == "Sitting">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name wraps their arms around you."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You wrap your arms around _n.name."
)>>
<</if>>
<<elseif $position == "Doggystyle">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name looms over your back and wraps their arms around you."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You loom over _n.name's back and wrap your arms around them."
)>>
<</if>>
<<elseif $position == "Missionary">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name lies on top of you and pull you into a nice embrace."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You lie on _n.name and wrap your arms around them. They in turn wrap their arms and legs around you."
)>>
<</if>>
<<elseif $position == "Sit on Lap">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name presses against your back and wraps their arm around you."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You wrap your arms around _n.name and pulls them closer to you."
)>>
<</if>>
<<else>>
You should not be able to read this, that means there's an error.
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name presses their face against your chest."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You press your face against _n.name's chest."
)>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name pushes you onto your back and they lower themself over your face"
)>>
<<elseif $sex.roles.sub.name== _n.name>>
<<=either(
"You push _n.name onto their back and then lower yourself over their face."
)>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name presses their hand against your belly"
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You press your hand against _n.name's belly"
)>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if !$seenActions.FingerAss>>
<<set $seenActions.FingerAss = true>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name fingers your ass."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You finger _n.name's ass.",
"_n.name shivers as I placed my $mc.body.fingers against $proset.their asshole. I then wiggled my way in. It was hot and tight but so smooth. $proset.theyUp let out a moan. I caress their thigh to calm them."
)>>
<</if>>
<<else>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"They continue fingering me."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"I continue fingering them.",
"I slide my $mc.body.fingers back and forth, caressing the walls of _n.name's inside. $proset.theyUp continues to tense. $proset.theyUp appears to enjoy it very much.",
)>>
<</if>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name finger's your <<= $mc.genitals.toLowerCase()>>."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You finger _n.name's <<= _n.genitals.toLowerCase()>>"
)>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if !$seenActions.Footjob>>
<<set $seenActions.Footjob = true>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"Gently sliding your <<= $mc.body.feet.toLowerCase()>> up and down around _n.name's <<= _n.genitals.toLowerCase()>>, you let out a soft moan as you give $proset.them a footjob.",
"With a smile, you start gently sliding your <<= $mc.body.feet.toLowerCase()>> up and down around $proset.their <<= _n.genitals.toLowerCase() >>.",
"Slowly pressing your <<= $mc.body.feet.toLowerCase()>> together around _n.name's <<= _n.genitals.toLowerCase() >>, you let out a moan as you give $proset.them a footjob.",
"A moan bursts out from $proset.their mouth before $proset.they start thrusting $proset.their <<= _n.genitals.toLowerCase()>> between your <<= $mc.body.feet.toLowerCase()>>.",
"Moaning in delight, _n.name drives $proset.their <<= _n.genitals.toLowerCase()>> between your <<= $mc.body.feet.toLowerCase()>>.",
"A soft moan drifts out from $proset.their mouth as $proset.they gently thrust $proset.their <<= _n.genitals.toLowerCase()>> between your <<= $mc.body.feet.toLowerCase()>>.",
"Moaning in delight, _n.name gently thrusts $proset.their <<= _n.genitals.toLowerCase()>> between your <<= $mc.body.feet.toLowerCase()>>.",
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"Sitting up between your legs, $proset.they runs $proset.their toes delicately over the skin of your scrotum.",
"_n.name lets out a moan as you start using $proset.their <<= _n.body.feet.toLowerCase()>>, before they are eagerly sliding them up and down around your <<= $mc.genitals.toLowerCase()>>.",
"With a moan, _n.name starts eagerly sliding $proset.their <<= _n.body.feet.toLowerCase()>> up and down against your <<= $mc.genitals.toLowerCase()>>.",
"Eagerly pushing $proset.their <<= _n.body.feet.toLowerCase()>> together, you press the head of your <<= $mc.genitals.toLowerCase()>> up against $proset.their soles before eagerly thrusting your $mc.body.hips forward and starting to fuck the crevice that's formed.",
"You rub the head of your $mc.genitals up against $proset.their <<= _n.body.feet.toLowerCase()>> before eagerly pressing $proset.their soles together and starting to fuck the crevice that's formed."
)>>
<<= either(
"_n.name starts eagerly sliding $proset.their <<= _n.body.feet.toLowerCase()>> up and down around your <<= $mc.genitals.toLowerCase()>> in response. You let out a moan as $proset.they give you an enthusiastic footjob.",
"A moan bursts out from between $proset.their _n.body.lips as $proset.they eagerly slide $proset.their <<= _n.body.feet.toLowerCase()>> up and down around your <<= $mc.genitals.toLowerCase()>>.",
"Smiling in delight, _n.name eagerly slides $proset.their <<= _n.body.feet.toLowerCase()>> up and down around your <<= $mc.genitals.toLowerCase()>> as $proset.they deliver an enthusiastic footjob.",
"_n.name starts sliding $proset.their <<= _n.body.feet.toLowerCase()>> up and down around your <<= $mc.genitals.toLowerCase()>> in response, letting out a moan as $proset.they give you a footjob.",
"Gently sliding your <<= $mc.genitals.toLowerCase()>> between _n.name's <<= _n.body.feet.toLowerCase()>>, you start steadily bucking your <<= $mc.body.hips.toLowerCase()>> back and forth, letting out a little moan with every thrust as you slowly receive a footjob.",
"Gently slipping your <<= $mc.genitals.toLowerCase()>> between _n.name's <<= _n.body.feet.toLowerCase()>>, you start softly thrusting your <<= $mc.body.hips.toLowerCase()>> forward, letting out a little moan as you gently receive a footjob.",
"Pushing your $mc.genitals between _n.name's <<= _n.body.feet.toLowerCase()>>, you start bucking your <<= $mc.body.hips.toLowerCase()>> back and forth, letting out a moan with every thrust as you greedily receive a footjob.",
"Pushing your <<= $mc.genitals.toLowerCase()>> between _n.name's <<= _n.body.feet.toLowerCase()>>, you start thrusting your <<= $mc.body.hips.toLowerCase()>> forward, letting out a moan as you happily receive a footjob.",
"Pushing _n.name's <<= _n.body.feet.toLowerCase()>> together, you let out a moan as you start to pump your <<= $mc.body.hips.toLowerCase()>> back and forth, sighing as you receive a footjob.",
"_n.name picks up the pace, sliding their <<= _n.body.feet.toLowerCase()>> up agaisnt your <<= $mc.genitals.toLowerCase()>>."
)>>
<</if>>
<<else>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name lets out a moan, eagerly bucking $proset.their _n.body.hips forward as $proset.they start eagerly fucking your <<= $mc.body.feet.toLowerCase()>>.",
"With a moan, _n.name eagerly thrusts $proset.their _n.body.hips forward and slides $proset.their <<= _n.genitals.toLowerCase()>> between your <<= $mc.body.feet.toLowerCase()>>.",
"_n.name thrusts $proset.their <<= _n.genitals.toLowerCase()>> deep between your <<= $mc.body.feet.toLowerCase()>>, letting out a moan as $proset.they receive a footjob.",
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You fuck _n.name's feet.",
"$proset.they giggle softly to $proset.themself as $proset.their feet glide up and down the length of your <<= $mc.genitals.toLowerCase()>>."
)>>
<</if>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if !$seenActions.Frot>>
<<set $seenActions.Frot = true>>
<<if $position is "Sit on Lap">>
<<if $sex.roles.sub.name == _n.name>>
<<= either(
"You turn yourself to face _n.name and line up your <<= $mc.genitals.toLowerCase() with _n.name's <<= _n.genitals.toLowerCase() >>."
)>>
<<elseif $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name turns to face you and line up their <<= _n.genitals.toLowerCase() >> with your <<= $mc.genitals.toLowerCase() >>."
)>>
<</if>>
<<elseif $position is "Missionary">>
<<if $sex.roles.sub.name == _n.name>>
<<= either(
"_n.name lays on their back as you crawl on top of them. You line up your <<= $mc.genitals.toLowerCase() >> with their <<= _n.genitals.toLowerCase() >> and rubbed them together."
)>>
<<elseif $sex.roles.dom.name == _n.name>>
<<= either(
"With you on your back, _n.name climbed on top of you, gazes locked. You felt _n.name's <<= _n.genitals.toLowerCase() >> pressed against yours. _n.name began thrusting $proset.their hips against you, your cocks grinding and rubbing aginst each other."
)>>
<</if>>
<<else>>
<<if $sex.roles.sub.name == _n.name>>
<<= either(
"Reaching down, you adjust your <<= $mc.genitals.toLowerCase() >> to line it up with _n.name's, before starting to slowly thrust, rubbing your shaft against $proset.theirs.",
"You draw _n.name in close, opening your legs to align your <<= $mc.genitals.toLowerCase() >> with $proset.theirs.",
"You draw _n.name in close, positioning yourself so that your groin is pressing against $proset.theirs. You then pull _n.name in eagerly, coaxing $proset.them to thrust and grind $proset.their <<= _n.genitals.toLowerCase() >> against you.",
"With a moan, you eagerly press your groin against $proset.theirs before starting to tease your <<= $mc.genitals.toLowerCase() >> up against them."
)>>
<<elseif $sex.roles.dom.name == _n.name>>
<<= either(
"Reaching down, _n.name adjusts $proset.their <<= _n.genitals.toLowerCase() >> to line it up with yours, before starting to slowly thrust, rubbing $proset.their shaft against yours.",
"_n.name draws you in close, opening $proset.their legs to align $proset.their groin with yours."
)>>
<</if>>
<</if>>
<<else>>
<<if $sex.roles.sub.name == _n.name>>
<<= either(
"Gently bucking $proset.their own _n.body.hips in response, _n.name lets out a moan as $proset.they mirror your movements and softly rub $proset.their <<= _n.genitals.toLowerCase() >> against yours.",
"Responding with a gentle buck of $proset.their own _n.body.hips, _n.name starts mirroring your movements, helping to softly rub $proset.their <<= _n.genitals.toLowerCase() >> up and down over yours.",
"Happily bucking $proset.their own _n.body.hips in response, _n.name lets out a moan as $proset.they mirror your movements and readily rub $proset.their <<= _n.genitals.toLowerCase() >> against yours.",
"Responding with a happy buck of $proset.their own _n.body.hips, _n.name starts mirroring your movements, helping to frantically rub $proset.their <<= _n.genitals.toLowerCase() >> up and down over yours.",
"_n.name enthusiastically responds in kind and lets out a moan as $proset.they rub $proset.their own <<= _n.genitals.toLowerCase() >> up and down over yours.",
"A moan bursts out from between _n.name's lips, and, eagerly thrusting $proset.their _n.body.hips, $proset.they grind $proset.their <<= _n.genitals.toLowerCase() >> against yours.",
"Moaning in delight, _n.name eagerly thrusts $proset.their _n.body.hips out, using your movements to help grind $proset.their own <<= _n.genitals.toLowerCase() >> against yours.",
"_n.name happily responds in kind and lets out a moan as $proset.they softly rub $proset.their own <<= _n.genitals.toLowerCase() >> up and down over your groin.",
"A moan drifts out from between _n.name's lips, and, gently thrusting $proset.their _n.body.hips, $proset.they grind $proset.their <<= _n.genitals.toLowerCase() >> against yours.",
"Moaning in pleasure, _n.name gently pushes $proset.their _n.body.hips out, using your movements to help grind $proset.their own <<= _n.genitals.toLowerCase() >> against yours.",
"_n.name responds in kind and lets out a moan as $proset.they rub $proset.their own <<= _n.genitals.toLowerCase()>> up and down over yours.",
"A moan bursts out from between _n.name's lips, and, thrusting $proset.their _n.body.hips, $proset.they grind $proset.their <<= _n.genitals.toLowerCase()>> against yours.",
"Moaning in pleasure, _n.name thrusts $proset.their _n.body.hips out, using your movements to help grind $proset.their own <<= _n.genitals.toLowerCase() >> against yours."
)>>
<<elseif $sex.roles.dom.name == _n.name>>
<<= either(
"Letting out a little moan with every thrust of your $mc.body.hips, you gently rub your $mc.genitals up and down over _n.name's <<= _n.genitals.toLowerCase() >> .",
"You let out a series of soft sighs as you gently rub your <<= $mc.genitals.toLowerCase() >> up and down over _n.name's <<= _n.genitals.toLowerCase() >> .",
"Sliding your <<= $mc.genitals.toLowerCase() >> over _n.name's <<= _n.genitals.toLowerCase() >> , you let out a little moan with each pump of your $mc.body.hips.",
"Letting out a moan with each thrust of your $mc.body.hips, you continue to rub your <<= $mc.genitals.toLowerCase() >> up and down over _n.name's <<= _n.genitals.toLowerCase() >> .",
"You let out a series of lewd moans as you rub your <<= $mc.genitals.toLowerCase() >> up and down over _n.name's <<= _n.genitals.toLowerCase() >> .",
"Rubbing your <<= $mc.genitals.toLowerCase() >> over _n.name's <<= _n.genitals.toLowerCase() >> , you let out a moan with each pump of your $mc.body.hips.",
"Letting out a moan with each eager thrust of your $mc.body.hips, you passionately rub your <<= $mc.genitals.toLowerCase() >> up and down over _n.name's <<= _n.genitals.toLowerCase() >> .",
"You let out a series of lewd moans as you desperately grind your <<= $mc.genitals.toLowerCase() >> up and down over _n.name's <<= _n.genitals.toLowerCase() >> .",
"Eagerly grinding your <<= $mc.genitals.toLowerCase() >> over _n.name's <<= _n.genitals.toLowerCase() >> , you let out a moan with each frantic pump of your $mc.body.hips.",
"You both shiver from the pleasure from your cocks each time _n.name thrusts."
)>>
<</if>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.sub.name == _n.name>>
<<= either(
"Reaching up to _n.name's chest, they lets out a soft moan as you start fondling and groping _n.name's _n.breastsize breasts,"
)>>
<<elseif $sex.roles.dom.name == _n.name>>
<<= either(
"Reaching up to your chest, you let out a moan as $proset.they start eagerly fondling and groping your <<= $mc.breastsize.toLowerCase() >> breasts,"
)>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if !$seenActions.Grope_Butt>>
<<set $seenActions.Grope_Butt = true>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name grabs your <<= $mc.assSize.toLowerCase() >> ass."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You grab _n.name's <<= $mc.assSize.toLowerCase() >> ass."
)>>
<</if>>
<<else>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name gives your ass another squeeze."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"You give _n.name's <<= $mc.assSize.toLowerCase() >> ass another squeeze."
)>>
<</if>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"Reaching down between $proset.their _n.body.legs, you wrap your $mc.body.fingers around $proset.their <<= _n.genitals.toLowerCase()>>, letting out a soft moan as you start slowly stroking up and down its length.",
"You drop one of your $mc.body.hands down between $proset.their _n.body.legs, and, taking hold of $proset.their <<= _n.genitals.toLowerCase()>>, you start slowly jerking $proset.them off.",
"Teasing your $mc.body.fingers over $proset.their <<= _n.genitals.toLowerCase()>> , you let out a soft moan as you start gently stroking up and down its throbbing length.",
"Reaching down between $proset.their _n.body.legs, you eagerly wrap your $mc.body.fingers around $proset.their <<= _n.genitals.toLowerCase()>>, letting out a moan as you start rapidly stroking up and down its length.",
"You drop one of your $mc.body.hands down between $proset.their _n.body.legs, and, taking hold of $proset.their <<= _n.genitals.toLowerCase()>>, you start eagerly jerking $proset.them off.",
"Teasing your $mc.body.fingers over $proset.their <<= _n.genitals.toLowerCase()>>, $proset.they let out a moan as you start rapidly stroking up and down $proset.their throbbing length.",
"You gently slide your $mc.body.hand up and down around $proset.their <<= _n.penislength.toLowerCase()>> cock, spreading $proset.their precum all over your shaft in the process.",
"Using $proset.their precum as extra lubricant, you gently wrap your $mc.body.fingers around $proset.their <<= _n.genitals.toLowerCase()>> and jerk $proset.them off.",
"_n.name lets out a reassuring moan as you gently slide your $mc.body.hand up and down the length of $proset.their precum-dripping <<= _n.genitals.toLowerCase()>>.",
"Gently wrapping your $mc.body.fingers around $proset.their <<= _n.genitals.toLowerCase()>>, you slowly start to slide your $mc.body.hand up and down $proset.their <<= _n.penislength.toLowerCase()>> shaft.",
"You gently wrap your $mc.body.hand around $proset.their <<= _n.genitals.toLowerCase() >>, leaning forwards and inhaling $proset.their scent as you gently slide your $mc.body.fingers up and down around $proset.their <<= _n.penislength.toLowercase()>> length.",
"Gently pressing yourself against _n.name, you let out a moan as you softly slide your $mc.body.hand up and down the length of $proset.their <<= _n.genitals.toLowerCase()>>.",
"You slide your $mc.body.hand up and down around $proset.their <<= _n.penislength.toLowerCase()>> cock, spreading $proset.their precum all over $proset.their shaft in the process.",
"Using $proset.their precum as extra lubricant, you wrap your $mc.body.fingers around $proset.their <<= _n.genitals.toLowerCase()>> and jerk $proset.them off.",
"$proset.they let out a moan as you slide your $mc.body.hand up and down the length of $proset.their precum-dripping <<= _n.genitals.toLowerCase()>>.",
"_n.name buck $proset.their _n.body.hips out in response, letting out a delighted moan as $proset.they start enthusiastically imploring you to continue giving $proset.them a handjob.",
"A delighted moan bursts out from between $proset.their _n.body.lips, and $proset.they start eagerly thrusting $proset.their _n.body.hips out against $proset.their touch as $proset.they begs you to continue giving $proset.them a handjob.",
"Moaning in delight, _n.name buck $proset.their _n.body.hips forwards, eagerly imploring you to continue giving $proset.them a handjob."
)>>
<<if _n.genitaltype == "Uncut">>
Their foreskin is pulled back and forth from the movement.
<</if>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"_n.name wraps their <<= _n.body.hand.toLowerCase()>> around your <<= $mc.genitals.toLowerCase()>> and jerks you off.",
"_n.name jerks you off."
)>>
<<if $mc.genitaltype == "Uncut">>
Your foreskin is pulled back and forth from the movement.
<</if>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if !$seenActions.Kiss>>
<<set $seenActions.Kiss = true>>
<<= either(
"_n.name leans in and kisses you softly.",
"You peck _n.name on the lips.",
"_n.name makes out with you.",
"You lean down, pressing your lips against _n.name's mouth as you deliver a passionate kiss.",
"You lean down, grabbing _n.name's head in both hands and pulling _n.name up into a passionate kiss.",
"With a grin, you lean down into _n.name's chest, breathing in _n.name's scent before pressing your lips against _n.name's.",
"Leaning down, you let out a moan as you press your lips against _n.name's and start to eagerly kiss _n.name."
)>>
<br>
<<= either(
"_n.name lets out an eager moan in response.",
"_n.name enthusiastically presses themself against you and thrusts $proset.their tongue into your mouth as $proset.they eagerly return your affection.",
"With a delighted moan, _n.name leans into you, pushing $proset.their tongue past your lips as $proset.they pull you into a frantic kiss.",
"Letting out a soft moan, _n.name plants a series of gentle kisses on your lips before slowly sliding $proset.their tongue into your mouth.",
"With a soft hum, _n.name leans into you, gently pushing $proset.their tongue past your lips.",
"_n.name presses themself against you, muffling your moans as $proset.they slide $proset.their tongue into your mouth.",
"_n.name pushes $proset.their tongue deep into your mouth, moaning as $proset.they eagerly return the kiss.",
"With an eager moan, _n.name grinds back against you, thrusting $proset.their tongue past your lips."
)>>
<<else>>
You two kiss again.
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.sub.name == _n.name>>
<<= either(
"Taking hold of " + _n.name + "'s shoulders, you push " + $proset.them + " down onto " + $proset.their + " back. Kneeling down between " + $proset.their + " " + _n.body.legs + ", you pause and look down into " + $proset.their + " " + _n.eyes.toLowerCase() + " eyes.",
_n.name + " lies down on your bed, lifting " + $proset.their + " feet in the air.",
)>>
<<elseif $sex.roles.dom.name == _n.name>>
<<= either(
"Taking hold of " + _n.name + "'s shoulders, you push " + $proset.them + " down onto " + $proset.their + " knees. Kneeling down before " + $proset.them + ", you then lie down on your back, spreading your " + $mc.body.legs + " and look up into " + _n.name + "'s " + _n.eyes.toLowerCase() + " eyes as you moan,",
"Looking up at " + _n.name + ", you bite your lip and let out a moan, before spreading your legs and submissively presenting yourself, ready to be penetrated.",
"You spread your legs for " + _n.name + ", presenting yourself in anticipation of being penetrated.",
"Pulling your " + $mc.body.feet + " back and to each side, you spread your legs, enticing " + _n.name + " to penetrate you.",
"You spread your legs, looking up at " + _n.name + " and biting your lip as you entice " + $proset.them + " to penetrate you.",
"Much to your delight, " + $proset.they + " kneels down between your " + $mc.body.legs + ", and as " + $proset.they + " takes hold of your " + $mc.body.legs + " to help push them apart, you moan,",
"Much to your delight, you allow yourself to be pushed down onto your front, and as you present " + $proset.them + " with your " + $mc.assSize + " ass and groin, you moan,",
"You lie down on your bed as _n.name crawls between your legs."
)>>
<</if>><<silently>>
<<set _n = $ui.npc>>
<<if !_n>><<return>><</if>>
<<set _a = ($sex and $sex.action) or "none">>
<</silently>>
<<switch _a>>
<<case "Kiss">><<include "Kiss-Dialogue">>
<<case "Caress">><<include "Caress-Dialogue">>
<<case "Frot">><<include "Frot-Dialogue">>
<<case "Grope Breast">><<include "Grope-Breast-Dialogue">>
<<case "Anal">><<include "Anal-Dialogue">>
<<case "Vaginal">><<include "Vaginal-Dialogue">>
<<case "Cunnilingus">><<include "Cunnilingus-Dialogue">>
<<case "Blowjob">><<include "Blowjob-Dialogue">>
<<case "Handjob">><<include "Handjob-Dialogue">>
<<case "Footjob">><<include "Footjob-Dialogue">>
<<case "Rimjob">><<include "Rimjob-Dialogue">>
<<case "Cuddle">><<include "Cuddle-Dialogue">>
<<case "Finger Ass">><<include "Finger-Ass-Dialogue">>
<<case "Finger Pussy">><<include "Finger-Vagina-Dialogue">>
<<case "Grope Butt">><<include "Grope-Butt-Dialogue">>
<<case "Suck Foot">><<include "SuckFoot-Dialogue">>
<<case "Boobjob">><<include "Boobjob-Dialogue">>
<<case "Pet Ears">><<include "Pet-Ears-Dialogue">>
<<case "Touch Stomach">><<include "Feel-Stomach-Dialogue">>
<<case "Press Face on Chest">><<include "Face-On-Chest-Dialogue">>
<<case "Embrace">><<include "Embrace-Dialogue">>
<</switch>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<if $mc.body.ears=="Long Bunny Ears">>
<<= either(
"_n.name pets your <<= $mc.body.ears.toLowerCase()>>."
)>>
<</if>>
<<elseif $sex.roles.sub.name == _n.name>>
<<if _n.body.ears =="Long Bunny Ears">>
<<= either(
"You pet _n.name's <<= _n.body.ears.toLowerCase()>>."
)>>
<</if>>
<</if>><<set _p = $position or "">>
/* POSITION (prints once per change) */
<<if $sex._printedPos != _p>>
<<switch _p>>
<<case "Cowgirl">><<include "Cowgirl-Dialogue">>
<<case "Sitting">><<include "Sitting-Dialogue">>
<<case "Standing">><<include "Standing-Dialogue">>
<<case "Missionary">><<include "Missionary-Dialogue">>
<<case "Doggystyle">><<include "Doggystyle-Dialogue">>
<<case "SixtyNine">><<include "SixtyNine-Dialogue">>
<<case "Sit on Face">><<include "Facesit-Dialogue">>
<<case "Sit on Lap">><<include "Sit-On-Lap-Dialogue">>
<<case "Oral Front">><<include "Stand-Front-Oral-Dialogue">>
<<case "Oral Back">><<include "Stand-Back-Oral-Dialogue">>
<<case "Lean against wall">><<include "Against-Wall-Dialogue">>
<</switch>>
<<set $sex._printedPos = _p>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"You lay down on your front, presenting your behind to _n.name."
)>>
<<elseif $sex.roles.sub.name== _n.name>>
<<=either(
"Taking hold of $proset.their shoulders, you push $proset.them down so that $proset.they are lying on their front."
)>>
" Kneeling down between $proset.their _n.body.legs, you smirk as you hover over their body."
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<if $position is "Cowgirl">>
<<= either(
"You lick up and down the crack of the ass pressing down on your mouth."
)>>
<<else>>
<<= either(
"You eat out _n.name's ass."
)>>
<</if>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"_n.name eats out your ass."
)>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"You sit on _n.name's lap."
)>>
<<elseif $sex.roles.sub.name== _n.name>>
<<=either(
"You get _n.name to sit on your lap."
)>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
You and _n.name sit on the bed.<<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.sub.name == _n.name>>
<<= either(
/* NPC bottoms, beginning scene */
"Jumping down onto all fours, you lower yourself down over the top of _n.name, bringing your crotch down to $proset.their face as you drop your head down between $proset.their _n.body.legs.",
"Allowing $proset.them to push you down, you reach up and take a firm grip on $proset.their _n.hips before roughly tugging $proset.them down so that they're over the top of you in a sixty-nine."
)>>
<<elseif $sex.roles.dom.name == _n.name>>
<<= either(
/* NPC tops, beginning */
"Reaching up to take hold of _n.name's shoulders, you put on the most enticing look you can muster as you try to push $proset.their down, pleading,",
"Taking hold of _n.name's shoulders, you tug $proset.them down on top of you as you lie down on your back. Pulling $proset.their _n.hips back so that $proset.they're in a reversed all-fours position over the top of you, you look up at $proset.their crotch hovering over your face and smirk,",
"Sinking down to lie on your back, you put on the most enticing look you can muster as you plead,",
"Jumping down onto all fours, _n.name lowers $proset.themself down over the top of you, bringing $proset.their crotch down to your face as $proset.they drop $proset.their head down between your $mc.body.legs. Turning $proset.their head back to look at you, $proset.they grin,"
)>>
<</if>>
/*
"Allowing $proset.them to push you down, you reach up and take a firm grip on $proset.their _n.hips, before roughly tugging $proset.them down so that they're over the top of you in a reversed all-fours position.” */<<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"You kneel down behind " + _n.name + ", " + $proset.their + " " + ((_n.assSize && _n.assSize.toLowerCase) ? _n.assSize.toLowerCase() : "average") + " ass in front of you."
)>>
<br>
<<= either(
"Such a cute ass.",
"Look at the size of that ass!"
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"Wanting " + _n.name + " to perform oral on you, you push " + $proset.them + " down so that " + $proset.they + " are kneeling behind you."
)>>
<br>
<<= either(
"So cute, like my " + (($mc.assSize && $mc.assSize.toLowerCase) ? $mc.assSize.toLowerCase() : "average") + " ass?"
)>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"With half-lidded eyes, _n.name pushes you back towards your bed. You sit down with your <<= $mc.genitals.toLowerCase()>> sticking out. <br>_n.name gets on $proset.their knees in front of you, eyeing it hungrily.",
"You kneel down in front of $proset.them, their <<= _n.genitals.toLowerCase() >> in front of you."
)>>
<<elseif $sex.roles.sub.name== _n.name>>
<<=either(
"Wanting _n.name to perform oral on you, you push $proset.them down so that $proset.they is kneeling in front of you.",
)>>
<br>
"So cute, you like my <<= $mc.genitals.toLowerCase()>>?"
<</if>><<set _npc = _n>>
<<PronounsSet>>
You and _n.name stand back up, face to face.<<set _npc = _n>>
<<PronounsSet>>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"Eagerly bringing your head down to $proset.their _n.body.feet, you press your $mc.body.lips against them and start passionately kissing and licking them.",
"You drop your head down to $proset.their _n.body.feet, before eagerly pressing your $mc.body.lips against them and starting to gently kiss and lick them.",
"After planting a series of gentle kisses on $proset.their _n.body.feet, you proceed to start lovingly licking them, they let out a series of soft moans in the process.",
"Gently kissing and licking $proset.their _n.body.toes, you let out a little moan as you lovingly worship $proset.their _n.body.feet.",
"You let out a little moan as you press your $mc.body.lips against $proset.their _n.body.feet, before starting to lovingly kiss and lick them.",
)>>
<<=either(
"A moan bursts out from between $proset.their _n.body.lips as $proset.they eagerly slide $proset.their _n.body.feet up and down over your $mc.body.face.",
"Moaning in delight, _n.name eagerly pushes $proset.their _n.body.feet against your mouth as $proset.they have them worshipped."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"With a smirk, you eagerly push $proset.their head down to your $mc.body.feet, before getting $proset.them to kiss them and start orally worshipping them.",
"Pushing $proset.their head down to your $mc.body.feet, you can't help but moan as you have $proset.them kiss and orally worship them."
)>>
<<= either(
"_n.name starts eagerly sliding $proset.their _n.body.feet up and down over $proset.their $mc.body.face in response, letting out a moan as $proset.they get you to worship $proset.their _n.body.feet.",
"_n.name eagerly lick and suck on your $mc.body.toes, letting out a moan as $proset.they eagerly worship your $mc.body.feet.",
"A moan bursts out from your mouth as $proset.they continue eagerly licking and kissing you $mc.body.feet.",
"Moaning in delight, _n.name eagerly worships your $mc.body.feet by planting a series of passionate kisses on them."
)>>
<</if>><<set _npc = _n>>
<<PronounsSet>>
<<if !$seenActions.Vaginal>>
<<set $seenActions.Vaginal = true>>
<<if $position == "Cowgirl">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"You sink down onto _n.name's <<= _n.genitals.toLowerCase() >> , letting out a happy squeal as your feel _n.name sink deep inside your pussy.",
"Bottoming out on _n.name's <<= _n.genitals.toLowerCase() >> , your lean down and grab _n.name's head in both hands, before pulling _n.name up into a passionate kiss.",
"With a moan, you slid down onto _n.name's <<= _n.genitals.toLowerCase() >> , leaning down into _n.name's _n.breasts and breathing in _n.name's scent before pressing your lips against _n.name's.",
"You let _n.name's <<= _n.genitals.toLowerCase() >> slide even deeper into your $mc.genitals as your lean down and pull _n.name into a desperate kiss.",
"Leaning down, you let out a moan as you bury yourself on _n.name's <<= _n.genitals.toLowerCase() >> , before leaning forward and pressing your lips against _n.name's.",
"You reach down to take hold of _n.name's <<= _n.genitals.toLowerCase() >> , before shuffling around to get into a good position. After taking a moment to tease the head between your outer labia, you let out a little moan as you slowly drop down and penetrate your <<= $mc.genitals.toLowerCase() >> on _n.name's <<= _n.genitals.toLowerCase() >> .",
"Shuffling around into a better position, you line the head of _n.name's <<= _n.genitals.toLowerCase() >> up between your $mc.body.legs, and with a slow, steady movement, you gently drop down, penetrating your <<= $mc.genitals.toLowerCase() >> on _n.name's <<= _n.genitals.toLowerCase() >> .",
"You reach down to take a firm hold of _n.name's <<= _n.genitals.toLowerCase() >> , before shuffling around to get into a good position. After taking a moment to tease the head between your outer labia, you let out a moan as you eagerly drop down and penetrate your <<= $mc.genitals.toLowerCase() >> on _n.name's <<= _n.genitals.toLowerCase() >> .",
"Shuffling around into a better position, you line the head of _n.name's <<= _n.genitals.toLowerCase() >> up between your $mc.body.legs, and with a single movement, you eagerly drop down, penetrating your <<= $mc.genitals.toLowerCase() >> on _n.name's <<= _n.genitals.toLowerCase() >> .",
"You reach down and roughly grab _n.name's <<= _n.genitals.toLowerCase() >> , before shuffling around to get into a good position. After taking a moment to tease the head between your outer labia, you let out a moan as you forcefully drop down and penetrate your <<= $mc.genitals.toLowerCase() >> on _n.name's <<= _n.genitals.toLowerCase() >> .",
"Shuffling around into a better position, you line the head of _n.name's <<= _n.genitals.toLowerCase() >> up between your $mc.body.legs, and with a single movement, you roughly drop down, penetrating your <<= $mc.genitals.toLowerCase() >> on _n.name's <<= _n.genitals.toLowerCase() >> .",
"You reach down to take hold of _n.name's <<= _n.genitals.toLowerCase() >> , before shuffling around to get into a good position. After taking a moment to tease the head over your ass, you let out a little moan as you slowly drop down and penetrate your $mc.assSize ass on _n.name's <<= _n.genitals.toLowerCase() >> ."
)>>
<<= either(
"_n.name lets out a moan as $proset.they enter you, eagerly bucking $proset.their _n.body.hips up as _n.name starts fucking your <<= $mc.genitals.toLowerCase() >>.",
"With a moan, _n.name eagerly thrusts $proset.their _n.body.hips up into your groin, sinking $proset.their <<= _n.genitals.toLowerCase() >> into your <<= $mc.genitals.toLowerCase() >> as _n.name start energetically fucking you.",
"_n.name lets out a moan as $proset.they enter you, bucking _n.name's _n.body.hips up as _n.name starts fucking your <<= $mc.genitals.toLowerCase() >>.",
"With a moan, _n.name thrust $proset.their _n.body.hips up into your groin, sinking _n.name's <<= _n.genitals.toLowerCase() >> into your <<= $mc.genitals.toLowerCase() >> as _n.name starts fucking you.",
"Using your legs, you slowly lift yourself up and down, sliding _n.name's <<= _n.genitals.toLowerCase() >> in and out of your <<= $mc.genitals.toLowerCase() >> as you moan out loud.",
"Lowering your $mc.body.hands to your knees, you uses your $mc.body.legs to slowly slide yourself up and down, letting out soft moan as you impale yourself on _n.name's <<= _n.genitals.toLowerCase() >> .",
"You slowly lift yourself up before sliding back down, letting out a soft moan as you spears your <<= $mc.genitals.toLowerCase() >> on _n.name's <<= _n.genitals.toLowerCase() >>.",
"Using your legs, you lift yourself up and down, sliding _n.name's <<= _n.genitals.toLowerCase() >> in and out of your <<= $mc.genitals.toLowerCase() >> as you moan out loud.",
"Leaning forwards, you use your $mc.body.hands to support some of your weight as you eagerly slide up and down on _n.name's <<= _n.genitals.toLowerCase() >> . As you lower your face towards _n.name, you get a waft of _n.name's scent, and you bites your lip as you breathe in the intoxicating aroma.",
"Leaning forward, you use your $mc.body.hands to support some of your weight as you start rapidly bucking up and down on _n.name's <<= _n.genitals.toLowerCase() >> . As you lower your face towards _n.name, you gets a waft of _n.name's scent, and you bite your lip as you breathes in the intoxicating aroma.",
"Leaning forward, you use your $mc.body.hands to support some of your weight as you slowly slide up and down on _n.name's <<= _n.genitals.toLowerCase() >> . As you lower your face towards _n.name, you gets a waft of $proset.their scent, and you bite your lip as you breathe in the intoxicating aroma.",
"Lowering your $mc.body.hands to your knees, you use your $mc.body.legs to enthusiastically slide yourself up and down, letting out a moan as you impale yourself on _n.name's <<= _n.genitals.toLowerCase() >> .",
"You lift yourself up before greedily sliding back down, letting out a moan as you spear your <<= $mc.genitals.toLowerCase() >> on _n.name's <<= _n.genitals.toLowerCase() >> .",
"Using your legs, you rapidly bounce yourself up and down, slamming _n.name's <<= _n.genitals.toLowerCase() >> in and out of your <<= $mc.genitals.toLowerCase() >> as you moan out loud.",
"Placing your $mc.body.hands down on the floor behind you for support, you start rapidly bouncing yourself up and down, letting out shuddering, a moan as you impale yourself on _n.name's <<= _n.genitals.toLowerCase() >> .",
"Grinning down at _n.name, you start enthusiastically bouncing up and down, letting out a moan as you spear your <<= $mc.genitals.toLowerCase() >> on _n.name's <<= _n.genitals.toLowerCase() >> ."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
"_n.name bounced up and down on your dick."
<</if>>
<<elseif $position == "Missionary">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"You bite your lip and let out a moan, before raising your ass and spreading your legs in order to help _n.name sink their <<= _n.genitals.toLowerCase()>> deeper into your $mc.assSize ass.",
"You spread her legs and raise your $mc.ass for _n.name, helping $proset.them to thrust $proset.their <<= _n.genitals.toLowerCase()>> deep into your $mc.assSize ass.",
"Pulling your $mc.feet back and to each side, you help _n.name to thrust $proset.their <<= _n.genitals.toLowerCase() >> deep into your $mc.assSize by raising your ass and spreading your legs.",
"You spread your legs and raise your ass, looking up at _n.name and biting your lip as $proset.they continue fucking your <<= $mc.assSize.toLowerCase() >> ass."
)>>
<<elseif $sex.roles.sub.name == _n.name>>
"You fuck _n.name in the missionary position"
<</if>>
<<elseif $position == "Doggy Style">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name fucks you doggy style"
)>>
<<elseif $sex.roles.sub.name == _n.name>>
<<= either(
"Reaching forward, you gently take hold of _n.name's hair, and while continuing to rhythmically slide your <<= $mc.genitals.toLowerCase() >> in and out of $proset.their <<= _n.genitals.toLowerCase() >> , you slowly pull back, causing _n.name to lift $proset.their head and let out a moan.",
"Taking a gentle hold of _n.name's hair in one $mc.body.hand, you simultaneously pull $proset.their head back while burying your <<= $mc.genitals.toLowerCase() >> deep into $proset.their _n.ass softly giggling to yourself as _n.name lets out moan.",
"Taking a gentle hold of _n.name's hair in one $mc.body.hand, you simultaneously pull $proset.their head back while burying your <<= $mc.genitals.toLowerCase() >> deep into $proset.their _n.ass smirking to yourself as _n.name lets out moan.",
"Tracing your $mc.body.fingers up the length of _n.name's back, you reach forwards and take a gentle hold of $proset.their hair, before pulling $proset.their head back and causing $proset.them to let out a moan."
)>>
<</if>>
<<elseif $position == "Standing">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"_n.name line's up their <<= _n.genitals.toLowerCase()>> with your <<= $mc.genitals.toLowerCase()>> before pushing in."
)>>
<<elseif $sex.roles.sub.name == _n.name >>
<<= either(
"You line up your <<= $mc.genitals.toLowerCase()>> with _n.name's <<= _n.genitals.toLowerCase()>> before pushing in."
)>>
<<= either(
"_n.name moans and hugs you.",
"_n.name moans and gives your <<= $mc.assSize.toLowerCase() ass a squeeze."
)>>
<</if>>
<<else>>
YOU HAVENT REACHED A FINISHED SECTION! GO BACK!!!!!!!!
<</if>>
<<else>>
<<if $position == "Cowgirl">>
<<if $sex.roles.dom.name == _n.name>>
DOM COWGIRL VAGINAL
<<elseif $sex.roles.sub.name == _n.name>>
SUB COWGIRL VAGINAL
<</if>>
<<elseif $position == "Missionary">>
<<if $sex.roles.dom.name == _n.name>>
DOM MISSIONARY VAGINAL
<<elseif $sex.roles.sub.name == _n.name>>
SUB MISSIONARY VAGINAL
<</if>>
<<elseif $position == "Doggy Style">>
<<if $sex.roles.dom.name == _n.name>>
<<= either(
"DOM DOGGY STYLE VAGINAL"
)>>
<<elseif $sex.roles.sub.name == _n.name>>
SUB DOGGY STYLE VAGINAL
<</if>>
<<elseif $position == "Standing">>
<<if $sex.roles.dom.name == _n.name>>
DOM STANDING VAGINAL
<<elseif $sex.roles.sub.name == _n.name>>
SUB STANDING VAGINAL
<</if>>
<</if>>
<</if>><<if !setup.analQuotes>>
[Error] setup.analQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<set _pref = _n.sexpref || "Switch">>
<<set _msize = $mc.penislength || "Average">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _position = $sex.position >>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool =
(
setup.analQuotes.give[_position]
&& setup.analQuotes.give[_position][_pref]
)
|| setup.analQuotes.give.Neutral
>>
<<else>>
<<set _pool =
(
setup.analQuotes.receive[_position]
&& setup.analQuotes.receive[_position][_pref]
)
|| setup.analQuotes.receive.Neutral
>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Anal quote pool found.
<</if>><<if !setup.blowjobQuotes>>
[Error] setup.blowjobQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Neutral">>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.blowjobQuotes.give[_pref]
|| setup.blowjobQuotes.give.Neutral>>
<<else>>
<<set _pool = setup.blowjobQuotes.receive[_pref]
|| setup.blowjobQuotes.receive.Neutral>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Blowjob quote pool found.
<</if>><<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Switch">>
<<set _material = (_n && _n.body && _n.body.bodymaterial) ? _n.body.bodymaterial : "Skin">>
<<set _pool =
setup.caressQuotes[_mode]
&& setup.caressQuotes[_mode][_material]
&& setup.caressQuotes[_mode][_material][_pref]
|| setup.caressQuotes[_mode][_pref]
>>
<<if Array.isArray(_pool) && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Caress quote pool found.
(mode=<<=_mode>>, material=<<=_material>>, pref=<<=_pref>>)
<</if>><<if !setup.cuddleQuotes>>
[Error] setup.cuddleQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Neutral">>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.cuddleQuotes.give[_pref]
|| setup.cuddleQuotes.give.Neutral>>
<<else>>
<<set _pool = setup.cuddleQuotes.receive[_pref]
|| setup.cuddleQuotes.receive.Neutral>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Cuddle quote pool found.
<</if>><<if !setup.cunnilingusQuotes>>
[Error] setup.cunnilingusQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Neutral">>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.cunnilingusQuotes.give[_pref]
|| setup.cunnilingusQuotes.give.Neutral>>
<<else>>
<<set _pool = setup.cunnilingusQuotes.receive[_pref]
|| setup.cunnilingusQuotes.receive.Neutral>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Cunnilingus quote pool found.
<</if>><<if !setup.embraceQuotes>>
[Error] setup.embraceQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Neutral">>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.embraceQuotes.give[_pref]
|| setup.embraceQuotes.give.Neutral>>
<<else>>
<<set _pool = setup.embraceQuotes.receive[_pref]
|| setup.embraceQuotes.receive.Neutral>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Embrace quote pool found.
<</if>><<if !setup.faceonchestQuotes>>
[Error] setup.faceonchestQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<set _pref = _n.sexpref || "Neutral">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _nsize = _n.breastsize || "Average">>
<<set _msize = $mc.breastsize || "Average">>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.faceonchestQuotes.give[_pref]
|| setup.faceonchestQuotes.give.Neutral>>
<<else>>
<<run _pool =
(
setup.faceonchestQuotes.receive[_pref]
&& setup.faceonchestQuotes.receive[_pref][_nsize]
)
|| setup.faceonchestQuotes.receive.Neutral
>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Face on Chest quote pool found.
<</if>><<if !setup.feelstomachQuotes>>
[Error] setup.feelstomachQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<set _pref = _n.sexpref || "Neutral">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _body = $mc.bodytype || "Average">>
<<set _material = _n.body.bodymaterial || null>>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.feelstomachQuotes.give[_body]
|| setup.feelstomachQuotes.give.Neutral>>
<<else>>
<<set _pool = setup.feelstomachQuotes.receive[_material]
|| setup.feelstomachQuotes.receive.Neutral>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Feel Stomach quote pool found.
<</if>><<if !setup.fingerassQuotes>>
[Error] setup.fingerassQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Neutral">>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.fingerassQuotes.give[_pref]
|| setup.fingerassQuotes.give.Neutral>>
<<else>>
<<set _pool = setup.fingerassQuotes.receive[_pref]
|| setup.fingerassQuotes.receive.Neutral>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Finger Ass quote pool found.
<</if>><<if !setup.fingervaginaQuotes>>
[Error] setup.fingervaginaQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Neutral">>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.fingervaginaQuotes.give[_pref]
|| setup.fingervaginaQuotes.give.Neutral>>
<<else>>
<<set _pool = setup.fingervaginaQuotes.receive[_pref]
|| setup.fingervaginaQuotes.receive.Neutral>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Finger Vagina quote pool found.
<</if>><<if !setup.footjobQuotes>>
[Error] setup.footjobQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Neutral">>
<<set _size = $mc.penislength || "average">>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.footjobQuotes.give[_pref]
|| setup.footjobQuotes.give.Neutral>>
<<else>>
<<run _pool =
(
setup.footjobQuotes.receive[_pref]
&& setup.footjobQuotes.receive[_pref][_size]
)
|| setup.footjobQuotes.receive.Neutral
>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No footjob quote pool found.
<</if>><<if !setup.frotQuotes>>
[Error] setup.frotQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Neutral">>
/* Use later */
<<set _msize = $mc.penislength>>
<<set _nsize = _n.penislength>>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.frotQuotes.give[_pref]
|| setup.frotQuotes.give.Neutral>>
<<else>>
<<set _pool = setup.frotQuotes.receive[_pref]
|| setup.frotQuotes.receive.Neutral>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Frot quote pool found.
<</if>><<if !setup.gropebreastQuotes>>
[Error] setup.gropebreastQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _pref = _n.sexpref || "Switch">>
<<set _msize = $mc.breastsize >>
<<set _nsize = _n.breastsize >>
<<set _mage = $mc.ageGroup || "Adult">>
<<set _nage = _n.ageGroup || "Adult">>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.gropebreastQuotes.give[_pref][_msize][_mage]
|| setup.gropebreastQuotes.give.Neutral>>
<<else>>
<<run _pool =
(
setup.gropebreastQuotes.receive[_pref]
&& setup.gropebreastQuotes.receive[_pref][_nsize][_nage]
)
|| setup.gropebreastQuotes.receive.Neutral
>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No grope breast quote pool found.
(mode=<<=_mode>>, pref=<<=_pref>>, nsize=<<=_nsize>>, msize=<<=_msize>>, nage=<<=_nage>>, mage=<<=_mage>>)
<</if>><<if !setup.gropebuttQuotes>>
[Error] setup.gropebuttQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !_n or !$sex or !$sex.roles or !$sex.roles.dom or !$sex.roles.sub>>
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Neutral">>
<<set _msize = $mc.assSize || "Round">>
<<set _nsize = _n.assSize || "Round">>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool =
(
setup.gropebuttQuotes.give[_nsize]
&& setup.gropebuttQuotes.give[_nsize][_pref]
)
||
(
setup.gropebuttQuotes.give[_nsize]
&& setup.gropebuttQuotes.give[_nsize].Neutral
)
>>
<<else>>
<<set _pool =
(
setup.gropebuttQuotes.receive[_msize]
&& setup.gropebuttQuotes.receive[_msize][_pref]
)
||
(
setup.gropebuttQuotes.receive[_nsize]
&& setup.gropebuttQuotes.receive[_nsize].Neutral
)
>>
<</if>>
<<if Array.isArray(_pool) && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Grope Butt quote pool found.
(mode=<<=_mode>>, action=<<=_action>>, pref=<<=_pref>>)
<</if>><<if !setup.handjobQuotes>>
[Error] setup.handjobQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Neutral">>
<<set _size = $mc.penislength || "Average">>
<<set _age = ($mc.ageGroup == "Child") ? "Child" : "Adult">>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool =
setup.handjobQuotes.give[_pref]
|| setup.handjobQuotes.give.Neutral
>>
<<else>>
<<if _size == "Tiny">>
<<set _pool =
(
setup.handjobQuotes.receive[_pref]
&& setup.handjobQuotes.receive[_pref].Tiny
&& setup.handjobQuotes.receive[_pref].Tiny[_age]
)
|| setup.handjobQuotes.receive.Neutral
>>
<<else>>
<<set _pool =
(
setup.handjobQuotes.receive[_pref]
&& setup.handjobQuotes.receive[_pref][_size]
)
|| setup.handjobQuotes.receive.Neutral
>>
<</if>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No handjob quote pool found.
<</if>>/* When you or NPC are close to orgasm */
<<set _mode = ($sex.roles.dom.name == _n.name) ? "give" : "receive">>
<<set _pref = _n.sexpref || "Switch">>
<<set _action = $sex.action>>
<<set _pool = null>>
<<set _entry = setup.orgasmcloseQuotes[_mode] && setup.orgasmcloseQuotes[_mode][_action] || setup.orgasmcloseQuotes[_mode].default>>
<<if Array.isArray(_entry)>>
<<set _pool = _entry>>
<<else>>
<<set _pool = (_entry && _entry[_pref]) || null>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Orgasm Close quote pool found.
(mode=<<=_mode>>, action=<<=_action>>, pref=<<=_pref>>)
<</if>><<set _mode = ($sex.roles.dom.name == _n.name) ? "give" : "receive">>
<<set _pref = _n.sexpref || "Switch">>
<<set _action = $sex.action>>
<<set _pool = null>>
<<set _entry = setup.orgasmQuotes[_mode] && setup.orgasmQuotes[_mode][_action] || setup.orgasmQuotes[_mode].default>>
<<if Array.isArray(_entry)>>
<<set _pool = _entry>>
<<else>>
<<set _pool = (_entry && _entry[_pref]) || null>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Orgasm quote pool found.
(mode=<<=_mode>>, action=<<=_action>>, pref=<<=_pref>>)
<</if>><<if !setup.petearsQuotes>>
[Error] setup.petearsQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Neutral">>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.petearsQuotes.give[_pref]
|| setup.petearsQuotes.give.Neutral>>
<<else>>
<<set _pool = setup.petearsQuotes.receive[_pref]
|| setup.petearsQuotes.receive.Neutral>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Pet Ears quote pool found.
<</if>><<if !setup.rimjobQuotes>>
[Error] setup.rimjobQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Neutral">>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.rimjobQuotes.give[_pref]
|| setup.rimjobQuotes.give.Neutral>>
<<else>>
<<set _pool = setup.rimjobQuotes.receive[_pref]
|| setup.rimjobQuotes.receive.Neutral>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Rimjob quote pool found.
<</if>><!-- only what the npc says -->
<br>
<b><<= _n.name >>: </b>
<<if $sex.action == "Kiss">>
<<if $sex.roles.dom.name == _n.name>>
<<if _n.sexpref == "Dominant">>
<<= either(
"Mmm",
"Mmmph",
"Mmmmm"
)>>
<<elseif _n.sexpref == "Submissive">>
<<= either(
"Mmm",
"Mmmph",
"Mmmmm"
)>>
<<else>>
<<= either(
"Mmm",
"Mmmph",
"Mmmmm"
)>>
<</if>>
<<elseif $sex.roles.sub.name == _n.name>>
<<if _n.sexpref == "Dominant">>
<<= either(
"Mmm",
"Mmmph",
"Mmmmm"
)>>
<<elseif _n.sexpref == "Submissive">>
<<= either(
"Mmm",
"Mmmph",
"Mmmmm"
)>>
<<else>>
<<= either(
"Mmm",
"Mmmph",
"Mmmmm"
)>>
<</if>>
<</if>>
<<elseif $sex.action == "Touch Stomach">>
<<include "Feel-Stomach-Quote">>
<<elseif $sex.action == "Face on chest">>
<<include "Face-on-Chest-Quote">>
<<elseif $sex.action == "Pet Ears">>
<<include "Pet-Ears-Quote">>
<<elseif $sex.action == "Embrace">>
<<include "Embrace-Quote">>
<<elseif $sex.action == "Caress">>
<<include "Caress-Quote">>
<<elseif $sex.action == "Frot">>
<<include "Frot-Quote">>
<<elseif $sex.action == "Grope Breast">>
<<include "Grope-Breast-Quote">>
/* check for different positions */
<<elseif $sex.action == "Anal">>
<<include "Anal-Quote">>
/* check for different age groups? */
<<elseif $sex.action == "Vaginal">>
<<include "Vaginal-Quote">>
<<elseif $sex.action == "Cunnilingus">>
<<include "Cunnilingus-Quote">>
<<elseif $sex.action == "Blowjob">>
<<include "Blowjob-Quote">>
<<elseif $sex.action == "Handjob">>
<<include "Handjob-Quote">>
<<elseif $sex.action == "Footjob">>
<<include "Footjob-Quote">>
<<elseif $sex.action == "Suck Foot">>
<<include "Suck-Foot-Quote">>
<<elseif $sex.action == "Rimjob">>
<<include "Rimjob-Quote">>
<<elseif $sex.action == "Cuddle">>
<<include "Cuddle-Quote">>
<<elseif $sex.action == "Grope Butt">>
<<include "Grope-Butt-Quote">>
<<elseif $sex.action == "Finger Ass">>
<<include "Finger-Ass-Quote">>
<<elseif $sex.action == "Finger Pussy">>
<<include "Finger-Pussy-Quote">>
<<elseif $sex.action == "Orgasm">>
<<include "Orgasm-Quote">>
<</if>><<if !setup.suckfootQuotes>>
[Error] setup.suckfootQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Neutral">>
<<set _msize = $mc.penislength>>
<<set _mage = $mc.ageGroup>>
<<set _action = $sex.action>>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.suckfootQuotes.give[_pref]
|| setup.suckfootQuotes.give.Neutral>>
<<else>>
<<set _pool = setup.suckfootQuotes.receive[_pref]
|| setup.suckfootQuotes.receive.Neutral>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Suck Foot quote pool found.
<</if>><<if !setup.vaginalQuotes>>
[Error] setup.vaginalQuotes is missing. Define it in StoryInit.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Neutral">>
<<set _size = $mc.penislength>>
<<set _age = $mc.ageGroup>>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool = setup.vaginalQuotes.give[_pref] || setup.vaginalQuotes.give.Neutral>>
<<else>>
<<set _pool = setup.vaginalQuotes.receive[_pref] || setup.vaginalQuotes.receive.Neutral>>
<</if>>
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Vaginal quote pool found.
<</if>>_n.name is shorter
"You are ready to perform oral,
"but due to their shorter height, you don't need to kneel, instead you just stand there."
_n.name is taller
"_n.name is ready to perform oral,
"but due to your shorter height, they don't need to kneel, instead they just stand there."<<if $gamelocation>>
<b>Location: </b>$gamelocation
<</if>>
<<button "Lexicon">><<PopupLexicon>><</button>>
<<button "Credits">><<PopupCredits>><</button>>
<<button "Your Stats">><<PopupStats>><</button>>
<<button "Disclaimer">><<PopupDisc>><</button>>
<<if passage() is "UI-NPC-Sex">><<button "How to play">><<PopupTutorial>><</button>><</if>><<set $npcSeq = 0>>
<<set $npcs = []>>
<<set $ui = {}>>
<<set $lastNpc = null>>
<<set $npcMemory = {}>>
/* pools */
/* Camp Buddy */
<<set $CBPool = [
$Yoichi_CB,
$Hiro_CB,
$Hunter_CB,
$Keitaro_CB,
$Taiga_CB,
$Natsumi_CB
]>>
/* Orginal Characters */
<<set $OCPool = [
$KevinNpc,
$JoshuaNpc,
$CarlaNpc,
$CarlosNpc
]>>
/* Applebridge */
<<set $ABPool = [
$CoryP,
$JaidenB,
$LorraineD,
$OliverT
]>>
<<set $npcPools = {
species: ["Human","Anthro"],
genders: ["Male","Female"],
givenNames: [
"Alex","Ash","Aspen","Avery","Aris","Atlas","Aiden","Angel","Arden","Ari","Azul",
"Bailey","Blair","Blake","Brook","Bryce","Briar","Bellamy","Bex","Blue","Bowie",
"Cameron","Casey","Charlie","Chris","Corey","Cove","Cypress","Carter","Calyx","Cy",
"Dakota","Dallas","Darcy","Devin","Drew","Delta","Denali","Dior","Dusty",
"Elliot","Emerson","Eden","Echo","Evan","Elian","Ellis","Ember","Ever","Ezri",
"Finley","Frankie","Fallon","Fox","Flynn","Fable","Frost","Florin",
"Gray","Gale","Gemini","Glenn","Greer","Goldie","Genesis","Grove",
"Harper","Hayden","Hollis","Hunter","Harlow","Halo","Haven","Hero",
"Indigo","Ira","Izzy","Iman","Io","Iris","Ivory",
"Jordan","Jamie","Jesse","Jaden","Jules","Justice","Jory","Jinx",
"Kai","Kendall","Kennedy","Kit","Knox","Kieran","Kestrel","Kyrie",
"Logan","Lane","Lennox","Luca","Leslie","Lake","Lux","Lior","Linden",
"Morgan","Micah","Marley","Mason","Max","Milan","Monroe","Moon","Merritt",
"Noel","Nova","Nico","Navy","Nile","North","Nyx",
"Oakley","Ocean","Orion","Onyx","Ollie","Opal",
"Parker","Phoenix","Peyton","Perry","Prism","Poet","Pike",
"Quinn","Quest","Quincy",
"Riley","River","Rowan","Reese","Robin","Ren","Rogue","Rain",
"Sage","Sky","Sawyer","Spencer","Sidney","Shiloh","Sol","Storm","Sutton",
"Taylor","Tatum","Theo","Tristan","True","Timber","Tonic",
"Uma","Urban",
"Val","Vesper","Vale","Venus","Vireo",
"Wren","Winter","Wilder","West","Whitley",
"Xan","Xavi","Xen",
"Yael","Yves","Yuki",
"Zion","Zane","Zephyr","Zuri","Zen"
],
surnames: ["Placeholder"],
personalities: [
"Brave", "Shy", "Relaxed", "Playful", "Good", "Evil", "Kind", "Logical", "Studious", "Active", "Lonely", "Timid", "Stubborn", "Serious", "Tough", "Jolly", "Naive", "Modest", "Quiet", "Bashful", "Calm", "Sassy", "Flamboyant", "Mean", "Energetic"
],
eyes: ["Brown","Blue","Green","Grey","Hazel","Amber","Scarlet"],
hair: [
"Buzz cut", "Crew Cut", "Ceaser cut", "Undercut", "Faux Hawk", "Pixie Cut",
"Bowl Cut", "Curly Crop", "Shaved Sides", "Bob Cut", "Long (Long Bob)",
"Pageboy", "Shag cut", "Shoulder Length Waves", "Afro", "Mullet",
"Wolf Cut", "Mid-length Dreads" ,"Straight and Sleek", "Loose Waves",
"Curly volume", "Braided", "Ponytail", "Pigtails", "Space Buns",
"Dreadlocks", "Half-Up Half Down", "Spiky Anime", "Wild Mane",
"Flowing Magical Locks", "Asymmetrial Cut", "Gravity-defying spikes",
"Shaved Pattern Designs", "Elemental Hair","Bald"
],
haircolor: ["Black", "Brown", "Blonde", "Red", "White", "Grey", "Blue", "Green", "Purple"],
facefeatures: ["Freckles", "Scar", "Mole", "Piercing", "None"],
skincolor: ["Pale", "Fair", "Tan", "Olive", "Brown", "Ebony"],
skinfeatures: ["Smooth", "Freckled", "Scarred", "Tattooed", "Birthmark", "None"],
bodymusc: ["Soft", "Light Muscles", "Toned", "Muscular", "Ripped"],
bodyweight:["Skinny", "Slender", "Average", "Large", "Huge"],
bodyheight: ["Mini", "Tiny", "Small", "Very Short", "Short", "Average", "Tall", "Very Tall", "Towering", "Gigantic", "Colossal"],
anthroGroups: ["Furry", "Scalie", "Avian"],
furryTypes: ["Canine", "Feline", "Bunny", "Fox", "Bear", "Goat", "Mouse", "Pig", "Other"],
scalieTypes: ["Lizard", "Dragon", "Alligator", "Crocodile"],
avianTypes: ["Duck", "Parrot", "Chicken", "Eagle", "Hawk", "Owl"],
furScalesColors: ["Black", "Brown", "Grey", "White", "Golden", "Red", "Blue", "Green","Rainbow"],
patterns: ["Solid", "Striped", "Spotted", "Patterned"],
genitals:["Penis","Vagina"],
genitaltype: ["Phimosis","Uncut", "Cut"],
breastsize:["Flat", "Small", "Average", "Large", "Busty"],
penislength: ["Tiny", "Small", "Average", "Large", "Huge"],
assSize:["Flat", "Tiny", "Small", "Round", "Large", "Huge"],
virgin: [true, false],
sexpref: ["Switch", "Dominant", "Submissive"],
sexu: ["Heterosexual","Homosexual", "Bisexual", "Pansexual", "Asexual"]
}>>
/* helpers */
<<run setup.defaultParts = {
head:true, torso:true,
leftArm:true, rightArm:true,
leftHand:true, rightHand:true,
leftLeg:true, rightLeg:true,
tail:false
}>>
<<run setup.initParts = (npc, overrides = {}) => {
npc.parts = Object.assign({}, setup.defaultParts, overrides);
return npc;
}>>
<<run setup.hasPart = (npc, key) => !!(npc && npc.parts && npc.parts[key])>>
<<run setup.hasAny = (npc, keys) => !!(npc && npc.parts && keys.some(k => npc.parts[k]))>>
<<run setup.hasBoth = (npc, a, b) => !!(npc && npc.parts && npc.parts[a] && npc.parts[b])>>
<<run setup.pick = (arr) => arr[Math.floor(Math.random() * arr.length)]>>
<<run setup.randint = (a,b) => Math.floor(Math.random()*(b-a+1))+a>>
<<run setup.clone = (o) => JSON.parse(JSON.stringify(o))>>
/* General MC/PC characteristics */
<<set $currentLocation to null>>
<<set $characterTemplate = {
name: "",
nickname: "",
surname: "",
species: "",
gender: "",
sexu: "", /* sexual orientation */
genitals: "",
genitaltype: "", /*cut or uncut */
pronouns: "",
age: null,
ageGroup: "",
eyes: "",
hair: "",
haircolor: "",
facefeatures: "",
skincolor: "",
skinfeatures: "",
bodyheight: null,
bodyweight: null,
bodymusc: null,
personality: "",
anthro: {
group: "",
subtype: "",
color: "",
pattern: "",
tail: "",
ears: "",
wings: false,
wingspan: ""
}
}>>
<<set $mc to clone($characterTemplate)>>
/* Ensure main character object */
<<set $mc = $mc or {}>>
<<set $mc.anthro = $mc.anthro or {}>>
<<set $mc.anthro.group = $mc.anthro.group or {}>>
<<set $mc.anthro.subtype = $mc.anthro.subtype or {}>>
<<set $mc.anthro.color = $mc.anthro.color or {}>>
<<set $mc.anthro.pattern = $mc.anthro.pattern or {}>>
/* General attributes */
<<set $proset to {}>>
<<set $skin to {}>>
<<set $hair to {
length: "",
style: "",
colour: ""
}>>
<<set $mc.virgin to true>>
/* This last one is only for practicality */
<<set $pages to {}>>
<<set $anthroColors = ["Black", "Brown", "Grey", "White", "Golden", "Red", "Blue", "Green", "Rainbow"]>>
<<set $anthroPatterns = ["Solid", "Striped", "Spotted", "Patterned"]>>
<<set $anthroTailTypes = ["None", "Short", "Long", "Bushy", "Reptilian", "Avian"]>>
<<set $anthroEarTypes = ["None", "Canine", "Feline", "Bunny", "Bear", "Pointed", "Rounded"]>>
<<set $anthroWingspans = ["None", "Short", "Medium", "Large", "Massive"]>>
<<set $flags = $flags || {}>>
<<set $flags.skinChosen = false>><<set $devMode = false>>
<h1>Welcome to Jinx Hentai Hotel!</h1>
<h3 style="font-weight: normal;">This game is meant to simulate interactions of many sexual varieties.
Create your character to begin.
</h3>
<center><<button [[Create Character|Index-CC]]>><</button>></center>
<center><<button [[Use the Randomiser|CC-Check]]>><<Randomiser>><</button>> | <<button [[Use the Pre-Set|CC-Check]]>><<PreSet>><</button>>
</center>
Updated as of 1/16/2026
<<if $devMode>>
<<button [[Test as a Shota|Lounge]]>><<LittleBoy>><</button>>
<<button [[Test as a Loli|Lounge]]>><<LittleGirl>><</button>>
<<button [[Test as a Teen Boy|Lounge]]>><<TeenBoy>><</button>>
<<button [[Test as a Teen Girl|Lounge]]>><<TeenGirl>><</button>>
<<button [[Test as a Adult Woman|Lounge]]>><<AdultWoman>><</button>>
<<button [[Test as a Adult Man|Lounge]]>><<AdultMan>><</button>>
<<button [[Test|Your Room]]>><<PreSet>><</button>>
<</if>><h2>Basic Info</h2>
<table class="stats-table">
<colgroup><col style="width:220px"><col style="width:auto"></colgroup>
<tr id="name">
<th>First Name:</th>
<td id="mc-name">$mc.name</td>
</tr>
<<if $mc.nickname>>
<tr id="nickname">
<th>Nickname:</th>
<td id="mc-nick">$mc.nickname</td>
</tr>
<</if>>
<tr id="surname">
<th>Surname:</th>
<td id="mc-surb">$mc.surname</td>
</tr>
<tr id="age">
<th>Age:</th>
<td id="mc-age">$mc.age</td>
</tr>
<tr id="agegroup">
<th>Age Group:</th>
<td id="mc-agegroup">$mc.ageGroup</td>
</tr>
<tr id="species">
<th>Species:</th>
<td id="mc-species">$mc.species</td>
</tr>
<<if $mc.species and $mc.species.toLowerCase() is "anthro">>
<tr id="anthro-type">
<th>Anthro Type:</th>
<td id="mc-anthro">
<<if $mc.anthro and $mc.anthro.group>>$mc.anthro.group<</if>>
<<if $mc.anthro and $mc.anthro.subtype>> $mc.anthro.subtype<</if>>
</td>
</tr>
<</if>>
</table>
<h2>Physical Traits:</h2>
<h3>Face and Hair:</h3>
<table class="stats-table">
<colgroup><col style="width:220px"><col style="width:auto"></colgroup>
<tr id="eyes">
<th>Eyes:</th>
<td id="mc-eyes">$mc.eyes</td>
</tr>
<<if $hair.length or $hair.texture or $hair.colour or $hair.do or $hair.bangs or $hair.shave>>
<tr id="hair">
<th>Hair:</th>
<td>
<span id="mc-hairnat">
<<if $hair.length and $hair.length is "bald">>
You are bald.
<<else>>
You have $hair.style $hair.colour hair
<</if>>
</span>
</td>
</tr>
<</if>>
<<if $facefeatures>>
<tr id="facial-features">
<th>Facial Features:</th>
<td id="mc-facefeatures">$facefeatures</td>
</tr>
<</if>>
</table>
<h3>Body:</h3>
<table class="stats-table">
<colgroup><col style="width:220px"><col style="width:auto"></colgroup>
<!-- Skin / Body material row -->
<tr id="skin-colour">
<th><<if $mc.species and $mc.species.toLowerCase() is "anthro">>Body Material:<</if>><<if not ($mc.species and $mc.species.toLowerCase() is "anthro")>>Skin:<</if>></th>
<td id="mc-skin">
<<if $mc.species and $mc.species.toLowerCase() is "anthro">>
$mc.body.bodymaterial
$mc.anthro.color
$mc.anthro.pattern
<<else>>
$skin.color
<</if>>
<<if $skin.features>> $skin.features<</if>>
</td>
</tr>
<!-- Anthro-only body part summary -->
<<if $mc.species and $mc.species.toLowerCase() is "anthro">>
<tr id="anthro-parts">
<th>Anthro Parts:</th>
<td id="mc-anthroparts">
Ears: $mc.body.ears
Tail: $mc.body.tail
Feet: $mc.body.feet
</td>
</tr>
<</if>>
<!-- Build still uses the existing height/weight/musc system -->
<tr id="body-build">
<th>Build:</th>
<td id="mc-build">
Height: $mc.bodyheight <br>
Type: $mc.bodyweight <br>
Musculature: $mc.bodymusc <br>
</td>
</tr>
</table>
<h2>Personality</h2>
<table class="stats-table">
<colgroup><col style="width:220px"><col style="width:auto"></colgroup>
<tr id="perso">
<th>Personality:</th>
<td id="mc-perso">$mc.personality</td>
</tr>
</table>
<h2>NSFW Options</h2>
<table class="stats-table nsfw">
<colgroup><col style="width:220px"><col style="width:auto"></colgroup>
<tr>
<th>Genitals:</th>
<td id="mc-genitals">$mc.genitals</td>
</tr>
<<if $mc.genitaltype>>
<tr>
<th>Genital type:</th>
<td id="mc-genitaltype">$mc.genitaltype</td>
</tr>
<</if>>
<tr>
<th>Ass size:</th>
<td id="mc-assSize">$mc.assSize</td>
</tr>
</table>You and the person you brought to your room will engage in a session of sex. How you engage in it is up to you.
You can choose who will be the bottom and who will be the top. Note that will not mean that you will determine who is the dom and who is the sub, that will depend on the personality. Certain actions will be locked depending on your role, you cannot be the top and suck off the other's dick.
For example, you can have a submissive feminine twink be the one to fuck you or you can have a big muscular dom be fucked by you.
The actions selected is not determining what you are doing but rather what is going to happen. (Remember, consent is a two way street)
You will be give the option to choose what location in the room you want the two of you to be in and you can choose what position to be in. Certain positions are only availble depending on the location.
(You can't just stand on your bed!)
Sex will be broken up into seperate states: Foreplay, Intercourse, Orgasm, and Aftercare.
The progress bar is your arousal meter, not for you specifcally but both you and your partner.
Doing certain actions will make it go up until it reaches 100. Once you reach 100 you will be sent to the Orgasm stage and locked out of actions in the Foreplay and Intercourse stage.
Foreplay is what you start with, certain actions are restricted until you move on to the next stage. Think of it like this "How are you going to have anal sex if you aren't hard enough?"
Intercourse is the stage where the meat of the game is. The actions there will build up much more than in Foreplay.
Orgasm is the part where your control is limited. Depending on what you are doing, you can choose where to have your orgasm or the npc. Note that to save on complexity it will be treated as a simultenious orgasm between you and the NPC.
Following the Orgasm you are automatically put into the Aftercare stage. It is an optional stage where you can choose to enjoy the afterglow with the NPC or just finish the sex.
Only when you reach the Aftercare stage will you be allowed to end the session.<<check-attraction $mc _n>>
<b>$mc.name: </b>
* $mc.gender
* $mc.sexu
<b>_n.name: </b>
* _n.gender
* _n.sexu
<<if $attraction>><<pick-roles $mc _n>>
<div id="role-line">Top: <<= $sex.roles.dom.name >> | Bottom: <<= $sex.roles.sub.name >></div>
<<link "Swap roles">>
<<set [$sex.roles.dom, $sex.roles.sub] to [$sex.roles.sub, $sex.roles.dom]>>
<<replace "#role-line">>Top: <<= $sex.roles.dom.name >> | Bottom: <<= $sex.roles.sub.name >><</replace>>
<<replace "#top-bottom-chat">><<include "top-bottom-Dialogue">><</replace>>
<</link>>
<<include "Accept-Dialogue">>
<<nobr>><div id="top-bottom-chat"><<include "top-bottom-Dialogue">></div><</nobr>>
<<button "Go have sex">>
<<WithNPC _n.id>>
<<run Dialog.close()>>
<<goto "UI-NPC-Sex">>
<</button>>
<<else>>
<<include "Reject-Dialogue">>
<</if>><<silently>><<set _n = $ui.npc>><</silently>>
<b>Name:</b> <<=_n.name>> <<if _n.surname>><<=_n.surname>><</if>> <<if _n.nickname>>
<br>
<b>Nickname: </b>"<<=_n.nickname>>"<</if>>
<br>
<b>Gender:</b> <<=_n.gender>> (<<=_n.pronouns>>) (<<=_n.trans>>)
<br>
<b>Species: </b><<=_n.species>><<if _n.species is "Anthro">> — <<=_n.anthro.group>> / <<=_n.anthro.subtype>> / <<=_n.anthro.color>> <<=_n.body.bodymaterial>><<if _n.anthro.pattern>>(<<=_n.anthro.pattern>>)<</if>>
<br>
<b>Tail:</b> <<=_n.body.tail>> <<if _n.body.ears>>* <b>Ears:</b> <<=_n.body.ears>><</if>><<if _n.anthro.wings>>* <b>Wings:</b> yes (<<=_n.anthro.wingspan>>)<</if>><</if>>
<br>
<b>Age:</b> <<=_n.age>> (<<=_n.ageGroup>>)
<br>
<b>Eyes:</b> <<=_n.eyes>>
<br>
<b>Hair:</b> <<=_n.hair>><<if _n.haircolor>> / <<=_n.haircolor>><</if>>
<br>
<<if _n.skincolor>> <b>Skin:</b> <<=_n.skincolor>> <<if _n.skinfeatures>>· <b>Features:</b> <<=_n.skinfeatures>> <</if>> <</if>>
<br>
<b>Build:</b> <<=_n.bodymusc>> * <b>Height:</b> <<=_n.bodyheight>> * <b>Weight:</b> <<=_n.bodyweight>> *
<b>Body Type: </b> <<=_n.bodytype>>
<<if _n.breastsize>>* <b>Breast Size:</b> _n.breastsize <</if>>
<br>
<b>Personality:</b> <<=_n.personality>>
<br>
<b>Sexuality:</b> <<=_n.sexu>>
<br>
<b>Sex Role:</b> <<=_n.sexpref>>
<br>
<b>Genitals:</b> <<=_n.genitals>><<if _n.genitals== "Penis">> * <b>Length:</b> <<=_n.penislength>> <</if>> (<<=_n.genitaltype>>)
<br>
<<link "Close">><<run Dialog.close()>><</link>><<silently>>
<<set _n = $ui.npc>>
<<if !_n>>[Error] No active NPC selected.<<return>><</if>>
/* ensure global memory object exists */
<<set $npcMemory = $npcMemory or {}>>
/* choose a key for this NPC */
<<set _key = _n.id or _n.name>>
/* ensure memory entry exists */
<<set $npcMemory[_key] = $npcMemory[_key] or {}>>
/* ensure properties exist */
<<set $npcMemory[_key].interacted = $npcMemory[_key].interacted or false>>
<<set $npcMemory[_key].times = $npcMemory[_key].times or 0>>
<<set $npcMemory[_key].sexCount = $npcMemory[_key].sexCount or 0>>
/* update values */
<<set $npcMemory[_key].interacted = true>>
<<set $npcMemory[_key].times += 1>>
<<set $npcMemory[_key].sexCount += 1>>
/* local convenience copy */
<<set _sexCount = $npcMemory[_key].sexCount>>
<<PronounsSet>>
<<check-attraction $mc _n>>
<<set $sex = $sex or { stage: "foreplay", log: [] }>>
<<set $sex.action = "Nothing">>
<<set $consent = $consent or { mc: true, npc: true }>>
<<set _n.arousal = _n.arousal or 0>>
<<set $gamelocation = "Your Room">>
<<set $position = "Standing">>
<<set $sexSpot = "On Floor">>
<<if !$sex.roles or !$sex.roles.dom or !$sex.roles.sub>>
<<pick-roles $mc _n>>
<</if>>
<</silently>>
<div class="npcsex-root">
<div id="intro" class="intro">
<<if _sexCount == 1>>
You both enter your room. You both strip naked, showing off your bare bodies to one another. You both know what you're in for but it's always a bit awkward with someone you haven't done it with.
<<elseif _sexCount >= 5>>
You and <<= _n.name >> go to your hotel room. Almost professionally you both strip until you are both nude. <<= $proset.theyUp >> appears up for whatever you have in mind.
<</if>>
</div>
<div id="log">Awaiting your move…</div>
<hr>
<span id="position"><b>Position: </b><<= $position >></span>
|---------| <b>Top: </b><<= $sex.roles.dom.name >> / <b>Bottom:</b> <<= $sex.roles.sub.name >> |---------|
<span id="sexaction"><b>Current Action: </b><<= $sex.action >></span>
<div class="status-row">
<div class="status-line">
<span class="status-label">Sex Stage: </span>
<span class="status-value" id="sex-stage"><<include "Sex-Stage">></span>
</div>
<div class="status-line">
<span class="status-label">Arousal: </span>
<span class="status-value">
<progress id="arousal-bar" value="<<=_n.arousal>>" max="100"></progress>
<span id="arousal-pct"><<= _n.arousal >>%</span>
</span>
</div>
</div>
<br>
<br>
<!-- fixed bar at bottom -->
<div id="npcsex-actions-bar">
<span id="positionList"><<include "PositionBlock">></span>
<span id="actions">
<<include "ForeplayBlock">>
<<include "IntercourseBlock">>
</span>
<br>
<span id="aftercare"><<include "OrgasmCloseBlock">></span>
</div>
</div><<nobr>><<silently>>
<<set _n = $ui.npc>>
<<set _lines = {
Default: ["Hello","Hi"],
Calm: ["We can take our time.","No rush.","Your presence is steady. Peaceful. I welcome it."],
Jolly: ["Hey there! Great to see you!","Isn't today perfect?"],
Timid: ["Ah s-sorry… you startled me. But I'm happy you're here."],
Tough: ["Hey. Don't waste my time. Speak if you've got something worth saying."],
Brave: ["You're here. Good. I was ready for something to happen."],
Kind: ["Hi!","You look well.","Hey, seeing you always makes me happy."],
Active: ["There you are — I was seconds from coming to get you myself."],
Logical: ["You arrived precisely when I anticipated. Efficient..."],
Sassy: ["Oh? About time you showed up. I've been waiting awhile."],
Mean: ["Well there you are, lil brat!"],
Energetic: ["Hey, $mc.name!"],
Playful: ["Hey, $mc.name! Hope you're in the mood for playing around."]
}>>
<<set _pool = _lines[_n.personality] or _lines.Default>>
<<set _line = _pool[random(0, _pool.length - 1)]>>
<<set _key = _n.id or _n.name>>
<<set _mem = $npcMemory[_key]>>
<</silently>><</nobr>>
<<if !_mem or !_mem.interacted>>
/* first time */
<<= either(
_n.name + " looks you over curiously.",
_n.name + " gives you a cautious nod."
)>>
<<elseif _mem.times < 5>>
/* early repeat interactions */
<<= either(
_n.name + " greets you with a familiar look.",
_n.name + " seems more relaxed around you this time."
)>>
<<else>>
/* long-term familiarity */
<<= either(
_n.name + " barely glances up before smirking at you.",
"You and " + _n.name + " fall back into your usual rhythm without a word."
)>>
<</if>>
<br>
<<print '"' + _line.replace('$mc.name', $mc.name) + '"' >>
<br>
<br>
/* setup sex interactions */
<<button "Wanna have sex in my room?">>
<<WithNPC _n.id>>
<<run Dialog.create("Propose sex with " + $ui.npc.name).wikiPassage("UI-Attracted-check").open()>>
<</button>>
<br>
<br>
<<link "Close">><<run Dialog.close()>><</link>><<widget "AnimalAdj">>
<</widget>>
<<widget "CumAdj">>
"semen", "sperm", "cum"
<</widget>>
<<widget "MoanAdj">>
"moans", "groans", "gasps", "sighs", "screams", "sobs", "laughs"
<</widget>>
/* <<set $NPCList[_n].penisdesc to "tiny penis">>
* <<set $NPCList[_n].penisdesc to either("thick cock","hefty cock","big cock","large cock","veiny cock","meaty cock")>>
* <<set $NPCList[_n].penisdesc to either("massive cock","huge cock","humongous cock","immense cock","gigantic cock","enormous cock")>>
*//* ----- ANAL ----- */
<<widget "AnalQuote">>
/* guard */
<<if !setup.analQuotes>>
[Error] setup.analQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<set _msize = $mc.penislength || "Average">>
<<set _mage = $mc.agegroup>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>> <<set _position = $sex.position>>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.analQuotes.give[_position][_pref]
&& setup.analQuotes.give[_pref]
|| setup.analQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.analQuotes.receive[_pref]
&& setup.analQuotes.receive[_msize] /*Only if _msize is established */
&& setup.analQuotes.receive [_position][_pref]
)
|| setup.analQuotes.receive.Neutral
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] Anal: empty dialogue pool.
<</if>>
<</widget>>
/* ----- BLOWJOB ----- */
<<widget "BlowjobQuote">>
/* guard */
<<if !setup.blowjobsQuotes>>
[Error] setup.blowjobQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.blowjobQuotes.give[_pref]
|| setup.blowjobQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.blowjobQuotes.receive[_pref]
)
|| setup.blowjobQuotes.receive.Neutral
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] Blowjob: empty dialogue pool.
<</if>>
<</widget>>
/* ----- BOOBJOB ----- */
/* NOT MADE YET */
/* ----- CARESS ----- */
<<widget "CaressQuote">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>><<set _pref = _n.sexpref || "Switch">>
<<set _materialN = (_n && _n.body && _n.body.bodymaterial) ? _n.body.bodymaterial : "Skin">>
<<set _materialM = ($mc && $mc.body && $mc.body.bodymaterial) ? $mc.body.bodymaterial : "Skin">>
<<set _pool =
setup.caressQuotes[_mode]
&& setup.caressQuotes[_mode][_materialN]
&& setup.caressQuotes[_mode][_materialN][_pref]
|| setup.caressQuotes[_mode][_pref]
>>
<<if Array.isArray(_pool) && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] No Caress quote pool found.
(mode=<<=_mode>>, material=<<=_material>>, pref=<<=_pref>>)
<</if>>
<</widget>>
/* ----- CUDDLE ----- */
<<widget "CuddleQuote">>
/* guard */
<<if !setup.cuddleQuotes>>
[Error] setup.cuddleQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.cuddleQuotes.give[_pref]
|| setup.cuddleQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.cuddleQuotes.receive[_pref]
)
|| setup.cuddleQuotes.receive.Neutral
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] Cuddle: empty dialogue pool.
<</if>>
<</widget>>
/* ----- CUNNILINGUS ----- */
<<widget "CunnilingusQuote">>
/* guard */
<<if !setup.cunnilingusQuotes>>
[Error] setup.cunnilingusQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.cunnilingusQuotes.give[_pref]
|| setup.cunnilingusQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.cunnilingusQuotes.receive[_pref]
)
|| setup.cunnilingusQuotes.receive.Neutral
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] Cunnilingus: empty dialogue pool.
<</if>>
<</widget>>
/* ----- EMBRACE ----- */
<<widget "EmbraceQuote">>
/* guard */
<<if !setup.embraceQuotes>>
[Error] setup.embraceQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.embraceQuotes.give[_pref]
|| setup.embraceQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.embraceQuotes.receive[_pref]
)
|| setup.embraceQuotes.receive.Neutral
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] Embrace: empty dialogue pool.
<</if>>
<</widget>>
/* ----- FACE ON CHEST ----- */
<<widget "FaceOnChestQuote">>
/* guard */
<<if !setup.faceonchestQuotes>>
[Error] setup.faceonchestQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>> <<set _nsize = _n.breastsize || "Average">>
<<set _msize = $mc.breastsize || "Average">>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.faceonchestQuotes.give[_pref]
|| setup.faceonchestQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.faceonchestQuotes.receive[_pref]
setup.faceonchestQuotes.receive[_nsize]
)
|| setup.faceonchestQuotes.receive.Neutral
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] FaceOnChest: empty dialogue pool.
<</if>>
<</widget>>
/* ----- FEEL STOMACH ----- */
<<widget "FeelStomachQuote">>
/* guard */
<<if !setup.feelstomachQuotes>>
[Error] setup.feelstomachQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>> <<set _body = $mc.bodytype || "Average">>
<<set _material = _n.body.bodymaterial || null>>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.feelstomachQuotes.give[_body]
|| setup.feelstomachQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.feelstomachQuotes.receive[_material]
)
|| setup.feelstomachQuotes.receive.Neutral.default
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] FeelStomach: empty dialogue pool.
<</if>>
<</widget>>
/* ----- FINGER ASS ----- */
<<widget "FingerAssQuote">>
/* guard */
<<if !setup.fingerassQuotes>>
[Error] setup.fingerassQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.fingerassQuotes.give[_pref]
|| setup.fingerassQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.fingerassQuotes.receive[_pref]
)
|| setup.fingerassQuotes.receive.Neutral.default
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] FingerAss: empty dialogue pool.
<</if>>
<</widget>>
/* ----- FINGER VAGINA ----- */
<<widget "FingerVaginaQuote">>
/* guard */
<<if !setup.fingervaginaQuotes>>
[Error] setup.fingervaginaQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.fingervaginaQuotes.give[_pref]
|| setup.fingervaginaQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.fingervaginaQuotes.receive[_pref]
)
|| setup.fingervaginaQuotes.receive.Neutral.default
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] FingerVagina: empty dialogue pool.
<</if>>
<</widget>>
/* ----- FOOTJOB ----- */
<<widget "FootjobQuote">>
/* guard */
<<if !setup.footjobQuotes>>
[Error] setup.footjobQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<set _size = $mc.penislength || "average">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.footjobQuotes.give[_pref]
|| setup.footjobQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.footjobQuotes.receive[_pref]
&& setup.footjobQuotes.receive[_pref][_size]
)
|| setup.footjobQuotes.receive.Neutral.default
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] FootjobQuote: empty dialogue pool.
<</if>>
<</widget>>
/* ----- FROT ----- */
<<widget "FrotQuote">>
/* guard */
<<if !setup.frotQuotes>>
[Error] setup.frotQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<set _msize = $mc.penislength>>
<<set _nsize =_n.penislength>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>> <<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.frotQuotes.give[_pref]
|| setup.frotQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.frotQuotes.receive[_pref]
)
|| setup.frotQuotes.receive.Neutral.default
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] FrotQuote: empty dialogue pool.
<</if>>
<</widget>>
/* ----- GROPE BREAST ----- */
<<widget "GropeBreastQuote">>
/* guard */
<<if !setup.gropebreastQuotes>>
[Error] setup.gropebreastQuotes is not defined.
<<return>>
<</if>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Switch">>
<<set _msize = $mc.breastsize >>
<<set _nsize = _n.breastsize >>
<<set _mage = $mc.agegroup>>
<<set _nage = _n.ageGroup || "Adult">>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.gropebreastQuotes.give[_pref][_msize][_mage]
|| setup.gropebreastQuotes.give.Neutral>>
<<else>>
<<run _pool =
(
setup.gropebreastQuotes.receive[_pref]
&& setup.gropebreastQuotes.receive[_pref][_nsize][_nage]
)
|| setup.gropebreastQuotes.receive.Neutral
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] GropeBreastQuote: empty dialogue pool.
<</if>>
<</widget>>
/* ----- GROPE BUTT ----- */
<<widget "GropeButtQuote">>
<<if !setup.gropebuttQuotes>>
[Error] setup.gropebuttQuotes is not defined.
<<return>>
<</if>>
<<if !_n or !$sex or !$sex.roles or !$sex.roles.dom or !$sex.roles.sub>>
<<return>>
<</if>>
<<set _pref = _n.sexpref || "Neutral">>
<<set _msize = $mc.assSize || "Round">>
<<set _nsize = _n.assSize || "Round">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _pool = null>>
<<if _mode == "give">>
<<set _pool =
(
setup.gropebuttQuotes.give[_nsize]
&& setup.gropebuttQuotes.give[_nsize][_pref]
)
||
(
setup.gropebuttQuotes.give[_nsize]
&& setup.gropebuttQuotes.give[_nsize].Neutral
)
>>
<<else>>
<<set _pool =
(
setup.gropebuttQuotes.receive[_msize]
&& setup.gropebuttQuotes.receive[_msize][_pref]
)
||
(
setup.gropebuttQuotes.give[_nsize]
&& setup.gropebuttQuotes.give[_nsize].Neutral
)
>>
<</if>>
<<if Array.isArray(_pool) && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] GropeButtQuote: empty dialogue pool.
<</if>>
<</widget>>
/* ----- HANDJOB ----- */
<<widget "HandjobQuote">>
/* guard */
<<if !setup.handjobQuotes>>
[Error] setup.handjobQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<set _msize = $mc.penislength || "average">>
<<set _mage = $mc.agegroup>>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.handjobQuotes.give[_pref]
|| setup.handjobQuotes.give.Neutral
>>
<<else>>
<<if _msize == "tiny">>
<<run _pool =
(
setup.handjobQuotes.receive[_pref]
&& setup.handjobQuotes.receive[_pref].tiny
&& setup.handjobQuotes.receive[_pref].tiny[_mage]
)
|| setup.handjobQuotes.receive.Neutral
>>
<<else>>
<<run _pool =
(
setup.handjobQuotes.receive[_pref]
&& setup.handjobQuotes.receive[_pref][_msize]
)
|| setup.handjobQuotes.receive.Neutral
>>
<</if>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] HandjobQuote: empty dialogue pool.
<</if>>
<</widget>>
/* ----- PET EARS ----- */
<<widget "PetEarsQuote">>
/* guard */
<<if !setup.petearsQuotes>>
[Error] setup.petearsQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.petearsQuotes.give[_pref]
|| setup.petearsQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.petearsQuotes.receive[_pref]
)
|| setup.petearsQuotes.receive.Neutral
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] PetEarsQuote: empty dialogue pool.
<</if>>
<</widget>>
/* ----- RIMJOB ----- */
<<widget "RimjobQuote">>
/* guard */
<<if !setup.rimjobQuotes>>
[Error] setup.rimjobQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.rimjobQuotes.give[_pref]
|| setup.rimjobQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.rimjobQuotes.receive[_pref]
)
|| setup.rimjobQuotes.receive.Neutral.default
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] RimjobQuote: empty dialogue pool.
<</if>>
<</widget>>
/* ----- SUCK FOOT ----- */
<<widget "SuckFootQuote">>
/* guard */
<<if !setup.suckfootQuotes>>
[Error] setup.suckfootQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.suckfootQuotes.give[_pref]
|| setup.suckfootQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.suckfootQuotes.receive[_pref]
)
|| setup.suckfootQuotes.receive.Neutral.default
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] SuckfootQuote: empty dialogue pool.
<</if>>
<</widget>>
/* ----- ORGASM ----- */
<<widget "OrgasmQuote">>
/* guard */
<<if !setup.orgasmQuotes>>
[Error] setup.orgasmQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<set _msize = $mc.penislength || "average">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>> <<set _action = $sex.action >>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.orgasmQuotes.give[_pref]
&& setup.orgasmQuotes.give[_action][_pref]
|| setup.orgasmQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.orgasmQuotes.receive[_pref]
&& setup.orgasmQuotes.give[_action][_pref]
)
|| setup.orgasmQuotes.receive.Neutral.default
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] OrgasmQuote: empty dialogue pool.
<</if>>
<</widget>>
/* ----- ORGASM CLOSE----- */
<<widget "OrgasmCloseQuote">>
/* guard */
<<if !setup.orgasmcloseQuotes>>
[Error] setup.orgasmcloseQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Switch">>
<<set _msize = $mc.penislength || "average">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>> <<set _action = $sex.action >>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.orgasmcloseQuotes.give[_pref]
&& setup.orgasmcloseQuotes.give[_action][_pref]
|| setup.orgasmcloseQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.orgasmcloseQuotes.receive[_pref]
&& setup.orgasmcloseQuotes.give[_action][_pref]
)
|| setup.orgasmcloseQuotes.receive.Neutral.default
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] OrgasmCloseQuote: empty dialogue pool.
<</if>>
<</widget>>
/* ----- VAGINAL ----- */
<<widget "VaginalQuote">>
/* guard */
<<if !setup.vaginalQuotes>>
[Error] setup.vaginalQuotes is not defined.
<<return>>
<</if>>
/* normalize inputs */
<<set _pref = _n.sexpref || "Neutral">>
<<set _msize = $mc.penislength || "average">>
<<if !$sex or !$sex.roles or !_n>>
<<return>>
<</if>>
<<if $sex.roles.dom and $sex.roles.dom.name == _n.name>>
<<set _mode = "give">>
<<elseif $sex.roles.sub and $sex.roles.sub.name == _n.name>>
<<set _mode = "receive">>
<<else>>
<<return>>
<</if>>
<<set _pool = null>>
/* resolve pool */
<<if _mode == "give">>
<<set _pool = setup.vaginalQuotes.give[_pref]
|| setup.vaginalQuotes.give.Neutral
>>
<<else>>
<<run _pool =
(
setup.vaginalQuotes.receive[_pref]
&& setup.vaginalQuotes.receive[_pref][_msize]
)
|| setup.vaginalQuotes.receive.Neutral.default
>>
<</if>>
/* output */
<<if _pool && _pool.length>>
<<= either(..._pool)>>
<<else>>
[Error] VaginalQuote: empty dialogue pool.
<</if>>
<</widget>><<widget "MakeSNPC">>
/* Creates a single Story NPC from a provided template and registers it globally */
<<if _args.length == 0>>
[Error] No template provided to MakeSNPC.
<<return>>
<</if>>
/* Clone template to avoid mutating the original */
<<set _tpl = _args[0]>>
<<set _npc = setup.clone(_tpl)>>
/* Assign unique NPC ID */
<<set _npc.id = ++$npcSeq>>
/* Apply derived traits and body setup */
<<PronounsSet>>
<<AgeGroupNPC>>
<<make-petname>>
<<SetNPCBodyType _npc>>
<<create-body _npc>>
<<initParts _npc>>
/* Register NPC in global NPC list */
<<set _dummy = $npcs.push(_npc)>>
<</widget>>
<<widget "SpawnSNPCs">>
/* Spawns multiple NPCs from a template or a small fallback pool */
<<if _args.length == 0>>
[Error] No template(s) provided to SpawnSNPCs.
<<return>>
<</if>>
/* Number of NPCs to spawn */
<<set _count = _args[0]>>
/* Optional explicit template */
<<set _tpl = (_args.length > 1) ? _args[1] : null>>
/* Pool used for random selection */
<<set _pool = (_tpl) ? [_tpl] : [$KevinNpc, $Yoichi]>>
<<for _i = 0; _i < _count; _i++>>
<<set _chosen = _pool[random(0, _pool.length - 1)]>>
<<MakeSNPC _chosen>>
<</for>>
<</widget>>
<<widget "MakeRandomNPC">>
/* Fully procedural NPC generator using npcPools */
/* Ensure globals exist */
<<set $npcSeq = $npcSeq || 0>>
<<set $npcs = $npcs || []>>
/* Clone base character template */
<<set _npc = setup.clone($characterTemplate)>>
<<set _npc.id = ++$npcSeq>>
/* Shortcut reference to pool config */
<<set _p = $npcPools || {}>>
/* Localized fallback pools */
<<set _names = _p.givenNames || ["Alex", "Taylor", "Morgan", "Riley"]>>
<<set _surnames = _p.surnames || ["Smith", "Jones", "Brown", "Lee"]>>
<<set _genders = _p.genders || ["Male", "Female"]>>
<<set _eyesPool = _p.eyes || ["Brown", "Blue", "Green", "Hazel"]>>
<<set _hairPool = _p.hair || ["Short", "Medium", "Long", "Curly"]>>
<<set _hairColor = _p.haircolor || ["Black", "Brown", "Blonde", "Red"]>>
<<set _facePool = _p.facefeatures || ["Scar", "Freckles", "Mole"]>>
<<set _skinColor = _p.skincolor || ["Pale", "Tan", "Brown", "Dark"]>>
<<set _skinFeat = _p.skinfeatures || ["Scars", "Freckles"]>>
<<set _heightPool = _p.bodyheight || ["Very Short", "Short" ,"Average", "Tall", "Very Tall"]>>
<<set _weightPool = _p.bodyweight || ["Thin", "Average", "Heavy", "Large"]>>
<<set _muscPool = _p.bodymusc || ["Soft", "Light Muscles", "Toned", "Muscular", "Ripped" ]>>
<<set _persPool = _p.personalities || ["Kind", "Tough", "Calm", "Jolly", "Timid", "Brave", "Sassy", "Mean"]>>
<<set _assPool = _p.assSize || ["Flat", "Tiny", "Small", "Round", "Large", "Huge"]>>
<<set _sexuPool = _p.sexu || ["Heterosexual", "Homosexual", "Bisexual", "Pansexual", "Asexual"]>>
<<set _speciesPool = _p.species || ["Human", "Anthro"]>>
/**********************
BASIC IDENTITY
**********************/
<<set _npc.name = setup.pick(_names)>>
<<set _npc.nickname = "">>
<<set _npc.surname = setup.pick(_surnames)>>
<<set _npc.species = setup.pick(_speciesPool)>>
/* Gender, pronouns, genitals */
<<set _npc.gender = setup.pick(_genders)>>
<<if _npc.gender is "Male">>
<<set _npc.pronouns = "He/Him">>
<<set _npc.genitals = "Penis">>
<<if _npc.species is "Human">>
<<set _npc.genitaltype = setup.pick(["Cut","Uncut"])>>
<</if>>
<<set _npc.penislength = setup.pick(["Small", "Average", "Large"])>>
<<elseif _npc.gender is "Female">>
<<set _npc.pronouns = "She/Her">>
<<set _npc.genitals = "Vagina">>
<<set _npc.genitaltype = setup.pick(["Tight", "Average", "Loose"])>>
<</if>>
<<set _npc.trans = "Cisgender">>
/**********************
SEXUALITY / PREFS
**********************/
<<set _npc.sexu = setup.pick(_sexuPool)>>
/* Small string used by pick-roles (dom|sub|switch) */
<<set _prefKey = setup.pick(["dom", "sub", "switch"])>>
<<set _npc.sexpref = _prefKey>>
/* Human-readable version used by existing dialogue (Dominant/Submissive/Switch) */
<<switch _prefKey>>
<<case "dom">><<set _npc.sexpref = "Dominant">>
<<case "sub">><<set _npc.sexpref = "Submissive">>
<<default>><<set _npc.sexpref = "Switch">>
<</switch>>
/**********************
AGE & BODY
**********************/
<<set _npc.age = setup.randint(18, 40)>>
<<set _npc.heterochromia = either(true,false)>>
<<set _npc.eyes = setup.pick(_eyesPool)>>
<<set _npc.hair = setup.pick(_hairPool)>>
<<set _npc.haircolor = setup.pick(_hairColor)>>
<<set _npc.facefeatures = setup.pick(_facePool)>>
<<set _npc.skincolor = setup.pick(_skinColor)>>
<<set _npc.skinfeatures = setup.pick(_skinFeat)>>
<<set _npc.bodyheight = setup.pick(_heightPool)>>
<<set _npc.bodyweight = setup.pick(_weightPool)>>
<<set _npc.bodymusc = setup.pick(_muscPool)>>
<<set _npc.personality = setup.pick(_persPool)>>
<<set _npc.assSize = setup.pick(_assPool)>>
<<set _npc.virgin = either(true,false)>>
<<set _npc.origin = "Random Stranger">>
/**********************
ANTHRO BLOCK
**********************/
/* Local anthro options (mirrors EnsureSpeciesData defaults) */
<<set $nonHumanTraitsOptions = $nonHumanTraitsOptions || {
anthroType: ["Furry", "Scalie", "Avian"],
furryType: ["Canine", "Bunny", "Feline", "Bear", "Wolf", "Goat", "Mouse", "Pig", "Fox", "Other"],
scalieType: ["Lizard", "Dragon", "Alligator", "Crocodile"],
avianType: ["Duck", "Parrot", "Chicken", "Eagle", "Raven"]
}>>
<<set $anthroColors = $anthroColors || ["Black", "Brown", "Grey", "White", "Golden", "Red", "Blue", "Green"]>>
<<set $anthroPatterns = $anthroPatterns || ["Solid", "Striped", "Spotted", "Patterned"]>>
<<if _npc.species is "Anthro">>
<<set _npc.anthro = _npc.anthro || {}>>
<<set _group = setup.pick($nonHumanTraitsOptions.anthroType)>>
<<set _npc.anthro.group = _group>>
<<switch _group>>
<<case "Furry">>
<<set _sub = setup.pick($nonHumanTraitsOptions.furryType)>>
<<case "Scalie">>
<<set _sub = setup.pick($nonHumanTraitsOptions.scalieType)>>
<<case "Avian">>
<<set _sub = setup.pick($nonHumanTraitsOptions.avianType)>>
<<default>>
<<set _sub = "Other">>
<</switch>>
<<set _npc.anthro.subtype = _sub>>
<<set _npc.anthro.color = setup.pick($anthroColors)>>
<<set _npc.anthro.pattern = setup.pick($anthroPatterns)>>
<<set _npc.anthro.wings = (_group is "Avian")>>
<</if>>
/**********************
FINALIZE NPC
**********************/
<<PronounsSet>>
<<AgeGroupNPC>>
<<make-petname>>
<<create-body _npc>>
<<initParts _npc>>
<<SetNPCBodyType _npc>>
<<set _dummy = $npcs.push(_npc)>>
<</widget>>
<<widget "SpawnRandomNPCs">>
/* Spawns N fully randomized NPCs */
<<if _args.length == 0>>
[Error] No count provided to SpawnRandomNPCs.
<<return>>
<</if>>
<<set _count = _args[0]>>
<<for _i = 0; _i < _count; _i++>>
<<MakeRandomNPC>>
<</for>>
<</widget>>
<<widget "SpawnPoolOnce">>
/* Spawns an NPC pool only once per game using a flag */
<<set _poolKey = _args[0]>>
<<set _poolArr = _args[1]>>
/* Persistent flags container */
<<set $flags = $flags or {}>>
<<set $flags.spawnedPools = $flags.spawnedPools or {}>>
/* Prevent duplicate spawning */
<<if $flags.spawnedPools[_poolKey]>>
<<set $flags.spawnedPools[_poolKey] = true>>
<</if>>
<<set $flags.spawnedPools[_poolKey] = true>>
<<if !_poolArr or !_poolArr.length>>
[Error] Pool is empty: <<= _poolKey>>
<<return>>
<</if>>
/* Spawn each template once */
<<for _spawnPool_idx = 0; _spawnPool_idx < _poolArr.length; _spawnPool_idx++>>
<<set _spawnPool_tpl = _poolArr[_spawnPool_idx]>>
<<MakeSNPC _spawnPool_tpl>>
<</for>>
<</widget>>
<<widget "check-attraction" $mc _n>>
/* Determines if NPC is attracted to MC based on sexuality */
<<set _mcG = $mc.gender>>
<<set _npcG = _n.gender>>
<<set _sexu = _n.sexu or "Unknown">>
<<set _result = false>>
<<switch _sexu>>
/* same gender */
<<case "Homosexual">>
<<set _result = (_mcG is _npcG)>>
/* different gender */
<<case "Heterosexual">>
<<set _result = (_mcG isnot _npcG)>>
/* any gender */
<<case "Bisexual">>
<<set _result = true>>
<<case "Pansexual">>
<<set _result = true>>
/* no attraction */
<<case "Asexual">>
<<set _result = false>>
<<default>>
<<set _result = false>>
<</switch>>
<<set $attraction = _result>>
<</widget>>
<<widget "initParts">>
<<capture _npc _ovr>>
<<run setup.initParts(_npc, _ovr || {})>>
<</capture>>
<</widget>>
<<widget "pick-roles">>
/* Determines dom/sub roles between MC and NPC */
<<set _mc = _args[0]>>
<<set _npc = _args[1]>>
/* Normalize preference keys */
<<set _mcPref = (_mc.sexpref or "switch")>>
<<set _npcPref = (_npc.sexpref or "switch")>>
/* Initialize role object */
<<set $sex to $sex or {}>>
<<set $sex.roles to { dom: null, sub: null }>>
/* Optional forced override */
<<if $forceDom is "mc">>
<<set $sex.roles = { dom: _mc, sub: _npc }>>
<<return>>
<<elseif $forceDom is "npc">>
<<set $sex.roles = { dom: _npc, sub: _mc }>>
<<return>>
<</if>>
/* simple logic:
1) exact match dom/sub
2) one wants dom → they dom
3) one wants sub → the other dom
4) tie → coin flip
*/
<<if _mcPref is "dom" and _npcPref is "sub">>
<<set $sex.roles = { dom: _mc, sub: _npc }>>
<<elseif _mcPref is "sub" and _npcPref is "dom">>
<<set $sex.roles = { dom: _npc, sub: _mc }>>
<<elseif _mcPref is "dom" and _npcPref isnot "dom">>
<<set $sex.roles = { dom: _mc, sub: _npc }>>
<<elseif _npcPref is "dom" and _mcPref isnot "dom">>
<<set $sex.roles = { dom: _npc, sub: _mc }>>
<<elseif _mcPref is "sub" and _npcPref isnot "sub">>
<<set $sex.roles = { dom: _npc, sub: _mc }>>
<<elseif _npcPref is "sub" and _mcPref isnot "sub">>
<<set $sex.roles = { dom: _mc, sub: _npc }>>
<<else>>
<<if either(true,false)>>
<<set $sex.roles = { dom: _mc, sub: _npc }>>
<<else>>
<<set $sex.roles = { dom: _npc, sub: _mc }>>
<</if>>
<</if>>
<</widget>>
<<widget "create-body" _npc>>
/* Initializes default body part map */
<<set _npc.body to {
head: "head",
face: "face",
arms: "arms",
legs: "legs",
hands: "hands",
hand: "hand",
feet: "feet",
butt: "butt",
ass: "ass",
asshole: "asshole",
finger: "finger",
fingers: "fingers",
hips: "hips",
lips: "lips",
tongue: "tongue",
bodymaterial: "Skin"
}>>
/* Override for anthro */
<<if _npc.species is "Anthro">>
<<alternatebody _npc>>
<</if>>
/* enforce: anthro color OR human skin, never both */
<<if _npc.species and _npc.species.toLowerCase() is "anthro">>
<<set _npc.skincolor = "">>
<<set _npc.skinfeatures = "">>
<<else>>
<<if _npc.anthro>>
<<set _npc.anthro.color = "">>
<<set _npc.anthro.pattern = "">>
<</if>>
<</if>>
<</widget>>
<<widget "alternatebody" _npc>>
<<if _npc and _npc.species and _npc.species.toLowerCase() is "anthro">>
<<set _group = _npc.anthro and _npc.anthro.group ? _npc.anthro.group : "Furry">>
<<set _sub = _npc.anthro and _npc.anthro.subtype ? _npc.anthro.subtype.toLowerCase() : "">>
<<switch _group>>
/* ----- FURRY NPCS ----- */
<<case "Furry">>
/* generic furry defaults */
<<set _npc.body.bodymaterial to "Fur">>
<<set _npc.body.feet to "Paws">>
<<set _npc.body.ears to "Furry Ears">>
<<set _npc.body.tail to "Furry Tail">>
<<set _npc.body.face to "Snout">>
<<switch _sub>>
<<case "canine">>
<<set _npc.body.ears to "Floopy Canine Ears">>
<<set _npc.body.feet to "Paws">>
<<set _npc.body.tail to "Bushy Tail">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Knotted", "Cut", "Uncut")>>
<</if>>
<</if>>
<<case "bunny">>
<<set _npc.body.ears to "Long Bunny Ears">>
<<set _npc.body.feet to "Paws">>
<<set _npc.body.tail to "Cotton Tail">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Tapered", "Cut", "Uncut")>>
<</if>>
<</if>>
<<case "feline">>
<<set _npc.body.ears to "Feline Ears">>
<<set _npc.body.feet to "Soft Paws">>
<<set _npc.body.tail to "Long Feline Tail">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Barbed", "Cut", "Uncut")>>
<</if>>
<</if>>
<<case "bear">>
<<set _npc.body.ears to "Round Bear Ears">>
<<set _npc.body.feet to "Paws">>
<<set _npc.body.tail to "Stubby Tail">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Tapered", "Cut", "Uncut")>>
<</if>>
<</if>>
<<case "wolf">>
<<set _npc.body.ears to "Wolf Ears">>
<<set _npc.body.feet to "Paws">>
<<set _npc.body.tail to "Bushy Tail">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Knotted", "Cut", "Uncut")>>
<</if>>
<</if>>
<<case "goat">>
<<set _npc.body.ears to "Goat Ears">>
<<set _npc.body.feet to "Hooves">>
<<set _npc.body.tail to "Short Goat Tail">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Tapered", "Cut", "Uncut")>>
<</if>>
<</if>>
<<case "mouse">>
<<set _npc.body.ears to "Big Round Ears">>
<<set _npc.body.feet to "Paws">>
<<set _npc.body.tail to "Mouse Tail">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Tapered", "Cut", "Uncut")>>
<</if>>
<</if>>
<<case "pig">>
<<set _npc.body.ears to "Pig Ears">>
<<set _npc.body.feet to "Trotters">>
<<set _npc.body.tail to "Curly Tail">>
<<set _npc.body.bodymaterial to "Hide">>
<<case "fox">>
<<set _npc.body.ears to "Fox Ears">>
<<set _npc.body.feet to "Paws">>
<<set _npc.body.tail to "Poofy Tail">>
<<if _npc.genitals =="Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Knotted", "Cut", "Uncut")>>
<</if>>
<</if>>
<<default>>
/* keep generic furry defaults */
<</switch>>
/* ----- SCALIE NPCS ----- */
<<case "Scalie">>
<<set _npc.body.bodymaterial to "Scales">>
<<set _npc.body.feet to "Clawed Feet">>
<<set _npc.body.face to "Snout">>
<<set _npc.body.tail to "Thick Scaled Tail">>
<<switch _sub>>
<<case "lizard">>
<<set _npc.body.ears to null>>
<<set _npc.body.feet to "Clawed Feet">>
<<set _npc.body.tail to "Long Lizard Tail">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Tapered", "Cut", "Uncut")>>
<</if>>
<</if>>
<<case "dragon">>
<<set _npc.body.ears to "Horned Frills">>
<<set _npc.body.feet to "Draconic Claws">>
<<set _npc.body.tail to "Spiked Tail">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Tapered", "Cut", "Uncut")>>
<</if>>
<</if>>
<<case "alligator">>
<<set _npc.body.ears to null>>
<<set _npc.body.feet to "Clawed Feet">>
<<set _npc.body.tail to "Spiked Tail">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Tapered", "Cut", "Uncut")>>
<</if>>
<</if>>
<<case "crocodile">>
<<set _npc.body.ears to null>>
<<set _npc.body.feet to "Clawed Feet">>
<<set _npc.body.tail to "Spiked Tail">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Tapered", "Cut", "Uncut")>>
<</if>>
<</if>>
<<default>>
/* generic scalie defaults */
<</switch>>
/* ----- AVIAN NPCS ----- */
<<case "Avian">>
<<set _npc.body.bodymaterial to "Feathers">>
<<set _npc.body.feet to "Talons">>
<<set _npc.body.face to "Beak">>
<<set _npc.body.tail to "Tailfeathers">>
<<switch _sub>>
<<case "duck">>
<<set _npc.body.feet to "Webbed Feet">>
<<set _npc.body.ears to null>>
<<set _npc.body.tail to "Tailfeathers">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Tapered", "Cut", "Uncut")>>
<</if>>
<</if>>
<<case "parrot">>
<<set _npc.body.feet to "Talons">>
<<set _npc.body.ears to null>>
<<set _npc.body.tail to "Tailfeathers">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Tapered", "Cut", "Uncut")>>
<</if>>
<</if>>
<<case "chicken">>
<<set _npc.body.feet to "Claws">>
<<set _npc.body.ears to null>>
<<set _npc.body.tail to "Tailfeathers">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Tapered", "Cut", "Uncut")>>
<</if>>
<</if>>
<<case "eagle">>
<<set _npc.body.feet to "Talons">>
<<set _npc.body.ears to null>>
<<set _npc.body.tail to "Tailfeathers">>
<<if _npc.genitals is "Penis">>
<<if !_npc.genitaltype>>
<<set _npc.genitaltype = either( "Tapered", "Cut", "Uncut")>>
<</if>>
<</if>>
<<default>>
/* generic avian defaults */
<</switch>>
<<default>>
/* other groups: no automatic override */
<</switch>>
<</if>>
<</widget>>
<<widget "MC-Create-body">>
<<set $mc.body to{
head: "head",
face:"face",
arms: "arms",
legs: "legs",
hands: "hands",
hand: "hand",
feet: "feet",
butt: "butt",
ass: "ass",
asshole: "asshole",
finger: "finger",
fingers: "fingers",
hips: "hips",
lips:"lips",
tongue:"tongue"
}>>
<<if $mc.species is "Anthro">>
<<MCalternatebody>>
<</if>>
/* --- COLOR RULE: Anthro uses anthro.color only --- */
<<if $mc.species is "Anthro">>
<<set $mc.skincolor = "" >>
<<set $mc.skinfeatures = "" >>
<<else>>
<<set $mc.anthro.color = "" >>
<<set $mc.anthro.pattern = "" >>
<</if>>
<</widget>>
<<widget "MCalternatebody">>
<<if $mc.species and $mc.species.toLowerCase() is "anthro">>
<<set _group = $mc.anthro.group or "Furry">>
<<set _sub = $mc.anthro.subtype ? $mc.anthro.subtype.toLowerCase() : "">>
<<switch _group>>
/* ----- FURRY ----- */
<<case "Furry">>
/* base furry defaults */
<<set $mc.body.bodymaterial = "Fur">>
<<set $mc.body.feet = "paws">>
<<set $mc.body.ears = "furry ears">>
<<set $mc.body.tail = "furred tail">>
<<set $mc.body.face ="snout">>
<<switch _sub>>
<<case "canine">>
<<set $mc.body.ears to "canine ears">>
<<set $mc.body.feet to "paws">>
<<set $mc.body.tail to "bushy tail">>
<<case "bunny">>
<<set $mc.body.ears to "long bunny ears">>
<<set $mc.body.feet to "paws">>
<<set $mc.body.tail to "cotton tail">>
<<case "feline">>
<<set $mc.body.ears to "feline ears">>
<<set $mc.body.feet to "paws">>
<<set $mc.body.tail to "long feline tail">>
<<case "bear">>
<<set $mc.body.ears to "round bear ears">>
<<set $mc.body.feet to "paws">>
<<set $mc.body.tail to "stubby tail">>
<<case "wolf">>
<<set $mc.body.ears to "wolf ears">>
<<set $mc.body.feet to "paws">>
<<set $mc.body.tail to "bushy wolf tail">>
<<case "goat">>
<<set $mc.body.ears to "goat ears">>
<<set $mc.body.feet to "hooves">>
<<set $mc.body.tail to "short goat tail">>
<<case "mouse">>
<<set $mc.body.ears to "large round ears">>
<<set $mc.body.feet to "small paws">>
<<set $mc.body.tail to "thin mouse tail">>
<<case "pig">>
<<set $mc.body.ears to "pig ears">>
<<set $mc.body.feet to "trotters">>
<<set $mc.body.tail to "curly tail">>
<<set $mc.body.bodymaterial to "hide">>
<<default>>
/* keep generic furry defaults */
<</switch>>
/* ----- SCALIE ----- */
<<case "Scalie">>
<<set $mc.body.bodymaterial = "Scales">>
<<set $mc.body.feet = "clawed feet">>
<<set $mc.body.tail = "thick scaled tail">>
<<set $mc.body.face ="snout">>
<<switch _sub>>
<<case "lizard">>
<<set $mc.body.ears to null>>
<<set $mc.body.feet to "scaled claws">>
<<set $mc.body.tail to "long lizard tail">>
<<case "dragon">>
<<set $mc.body.ears to "horned frills">>
<<set $mc.body.feet to "claws">>
<<set $mc.body.tail to "long spiked tail">>
<<case "alligator">>
<<set $mc.body.ears to null>>
<<set $mc.body.feet to "claws">>
<<set $mc.body.tail to "tail">>
<<case "crocodile">>
<<set $mc.body.ears to null>>
<<set $mc.body.feet to "claws">>
<<set $mc.body.tail to "tail">>
<<default>>
/* keep generic scalie defaults */
<</switch>>
/* ----- AVIAN ----- */
<<case "Avian">>
<<set $mc.body.bodymaterial = "Feathers">>
<<set $mc.body.feet = "talons">>
<<set $mc.body.face = "beak">>
<<set $mc.body.tail = "tailfeathers">>
<<switch _sub>>
<<case "duck">>
<<set $mc.body.feet to "webbed feet">>
<<set $mc.body.ears to null>>
<<set $mc.body.tail to "tailfeathers">>
<<case "parrot">>
<<set $mc.body.feet to "gripping talons">>
<<set $mc.body.ears to null>>
<<set $mc.body.tail to "tailfeathers">>
<<case "chicken">>
<<set $mc.body.feet to "talons">>
<<set $mc.body.ears to null>>
<<set $mc.body.tail to "tailfeathers">>
<<case "eagle">>
<<set $mc.body.feet to "talons">>
<<set $mc.body.ears to null>>
<<set $mc.body.tail to "tailfeathers">>
<<default>>
/* keep generic avian defaults */
<</switch>>
<<default>>
/* other groups: do nothing */
<</switch>>
<</if>>
<</widget>>
<<widget "make-petname">>
<<if _npc.pronouns is "He/Him">>
<<set _npc.petname to "boy">>
<<elseif _npc.pronouns is "She/Her">>
<<set _npc.petname to "girl">>
<<else>>
<<set _npc.petname = "pet">>
<</if>>
<</widget>><<widget "SetNPCBodyType">>
/* choose NPC: arg 0 or $ui.npc */
<<set _npc = (_args.length > 0) ? _args[0] : $ui.npc>>
<<if !_npc>>
[Error] No NPC given to SetNPCBodyType.
<<return>>
<</if>>
<<set _w = _npc.bodyweight>>
<<set _m = _npc.bodymusc>>
<<set _npc.bodytype = "Average">>
<<switch _w>>
/* SKINNY */
<<case "Skinny">>
<<switch _m>>
<<case "Soft">><<set _npc.bodytype = "Gaunt">>
<<case "Light Muscles">><<set _npc.bodytype = "Petite">>
<<case "Toned">><<set _npc.bodytype = "Slender">>
<<case "Muscular">><<set _npc.bodytype = "Lean">>
<<case "Ripped">><<set _npc.bodytype = "Defined">>
<</switch>>
/* SLENDER */
<<case "Slender">>
<<switch _m>>
<<case "Soft">><<set _npc.bodytype = "Slim">>
<<case "Light Muscles">><<set _npc.bodytype = "Thin">>
<<case "Toned">><<set _npc.bodytype = "Spry">>
<<case "Muscular">><<set _npc.bodytype = "Lithe">>
<<case "Ripped">><<set _npc.bodytype = "Cut">>
<</switch>>
/* AVERAGE */
<<case "Average">>
<<switch _m>>
<<case "Soft">><<set _npc.bodytype = "Chubby">>
<<case "Light Muscles">><<set _npc.bodytype = "Average">>
<<case "Toned">><<set _npc.bodytype = "Fit">>
<<case "Muscular">><<set _npc.bodytype = "Strong">>
<<case "Ripped">><<set _npc.bodytype = "Athletic">>
<</switch>>
/* LARGE */
<<case "Large">>
<<switch _m>>
<<case "Soft">><<set _npc.bodytype = "Fat">>
<<case "Light Muscles">><<set _npc.bodytype = "Plump">>
<<case "Toned">><<set _npc.bodytype = "Burly">>
<<case "Muscular">><<set _npc.bodytype = "Powerful">>
<<case "Ripped">><<set _npc.bodytype = "Buff">>
<</switch>>
/* HUGE */
<<case "Huge">>
<<switch _m>>
<<case "Soft">><<set _npc.bodytype = "Obese">>
<<case "Light Muscles">><<set _npc.bodytype = "Chunky">>
<<case "Toned">><<set _npc.bodytype = "Robust">>
<<case "Muscular">><<set _npc.bodytype = "Thick">>
<<case "Ripped">><<set _npc.bodytype = "Jacked">>
<</switch>>
<</switch>>
<</widget>>
<<widget "SetMCBodyType">>
/* read categories */
<<set _w = $mc.bodyweight>>
<<set _m = $mc.bodymusc>>
/* default */
<<set $mc.bodytype = "Average">>
<<switch _w>>
/* SKINNY */
<<case "Skinny">>
<<switch _m>>
<<case "Soft">><<set $mc.bodytype = "Gaunt">>
<<case "Light Muscles">><<set $mc.bodytype = "Petite">>
<<case "Toned">><<set $mc.bodytype = "Slender">>
<<case "Muscular">><<set $mc.bodytype = "Lean">>
<<case "Ripped">><<set $mc.bodytype = "Defined">>
<</switch>>
/* SLENDER */
<<case "Slender">>
<<switch _m>>
<<case "Soft">><<set $mc.bodytype = "Slim">>
<<case "Light Muscles">><<set $mc.bodytype = "Thin">>
<<case "Toned">><<set $mc.bodytype = "Spry">>
<<case "Muscular">><<set $mc.bodytype = "Lithe">>
<<case "Ripped">><<set $mc.bodytype = "Cut">>
<</switch>>
/* AVERAGE */
<<case "Average">>
<<switch _m>>
<<case "Soft">><<set $mc.bodytype = "Chubby">>
<<case "Light Muscles">><<set $mc.bodytype = "Average">>
<<case "Toned">><<set $mc.bodytype = "Fit">>
<<case "Muscular">><<set $mc.bodytype = "Strong">>
<<case "Ripped">><<set $mc.bodytype = "Athletic">>
<</switch>>
/* LARGE */
<<case "Large">>
<<switch _m>>
<<case "Soft">><<set $mc.bodytype = "Fat">>
<<case "Light Muscles">><<set $mc.bodytype = "Plump">>
<<case "Toned">><<set $mc.bodytype = "Burly">>
<<case "Muscular">><<set $mc.bodytype = "Powerful">>
<<case "Ripped">><<set $mc.bodytype = "Buff">>
<</switch>>
/* HUGE */
<<case "Huge">>
<<switch _m>>
<<case "Soft">><<set $mc.bodytype = "Obese">>
<<case "Light Muscles">><<set $mc.bodytype = "Chunky">>
<<case "Toned">><<set $mc.bodytype = "Robust">>
<<case "Muscular">><<set $mc.bodytype = "Thick">>
<<case "Ripped">><<set $mc.bodytype = "Jacked">>
<</switch>>
<</switch>>
<</widget>>
/* select by id into $ui.npc */
<<widget "WithNPC">>
<<set _id to _args[0]>>
<<set $ui.npc to $npcs.find(n => n.id === _id)>>
<<if !$ui.npc>>
/* optional: guard to avoid opening an empty dialog */
<<print "NPC not found.">>
<<return>>
<</if>>
<</widget>>
<<widget "SpeciesList">>
<<set _speciesList to [
"Human", "Anthro"
]>>
<</widget>>
<<widget "EnsureSpeciesData">>
/* options */
<<set $nonHumanTraitsOptions = $nonHumanTraitsOptions or {
anthroType: ["Furry", "Scalie", "Avian"],
furryType: ["Canine", "Bunny", "Feline", "Bear", "Fox", "Goat", "Mouse", "Pig", "Other"],
scalieType: ["Lizard", "Dragon", "Alligator", "Crocodile"],
avianType: ["Duck", "Parrot", "Chicken", "Eagle", "Raven"]
}>>
<<set $anthroColors = $anthroColors or ["Black", "Brown", "Grey", "White", "Golden", "Red", "Blue", "Green"]>>
<<set $anthroPatterns = $anthroPatterns or ["Solid", "Striped", "Spotted", "Patterned"]>>
<<set $anthroWingspans = $anthroWingspans or ["None", "Short", "Medium", "Large", "Massive"]>>
/* state */
<<set $mc = $mc or {}>>
<<set $mc.species = $mc.species or "Human">>
<<set $mc.anthro = $mc.anthro or {}>>
<<set $mc.anthro.group = $mc.anthro.group or {}>>
<<set $mc.anthro.subtype = $mc.anthro.subtype or {}>>
<<set $mc.anthro.color = $mc.anthro.color or {}>>
<<set $mc.anthro.pattern = $mc.anthro.pattern or {}>>
/* default wings only when Avian context is true */
<<set _isAvian = (($mc.species is "Anthro") and ($mc.anthro.group is "Avian")) or ($mc.species is "Avian")>>
<<if _isAvian>>
<<set $mc.anthro.wings = ($mc.anthro.wings is undefined) ? false : $mc.anthro.wings>>
<<set $mc.anthro.wingspan = $mc.anthro.wingspan or "None">>
<<else>>
<<set $mc.anthro.wings = false>>
<<set $mc.anthro.wingspan = "None">>
<</if>>
<</widget>>
<<widget "RenderAnthroSubtype">>
<<if $mc.anthro.group is "Furry">>
<<set _opts = $nonHumanTraitsOptions.furryType>>
<<elseif $mc.anthro.group is "Scalie">>
<<set _opts = $nonHumanTraitsOptions.scalieType>>
<<elseif $mc.anthro.group is "Avian">>
<<set _opts = $nonHumanTraitsOptions.avianType>>
<<else>>
<<set _opts = []>>
<</if>>
<<if _opts.length and _opts.indexOf($mc.anthro.subtype) == -1>>
<<set $mc.anthro.subtype = _opts[0]>>
<</if>>
<<listbox "$mc.anthro.subtype">><<optionsfrom _opts>><</listbox>>
<</widget>>
<<widget "RenderAnthroUI">>
<<if $mc.species is "Anthro" or $mc.species is "Avian">> <!-- supports both taxonomies -->
<hr>
<h3>Anthro Details</h3>
<label>Type</label>
<<listbox "$mc.anthro.group">><<optionsfrom $nonHumanTraitsOptions.anthroType>><</listbox>>
<<button "Apply type">>
<<replace "#anthro-dynamic">><<RenderAnthroDynamic>><</replace>>
<<MC-Create-body>>
<</button>>
<div id="anthro-dynamic"><<RenderAnthroDynamic>></div>
<</if>>
<<if not ($mc.species and $mc.species.toLowerCase() is "anthro")>>
<label>Ears</label>
<<listbox "$mc.body.ears">>
<<option "Human ears">>
<<option "Pointed ears">>
<<option "Animal ears">>
<</listbox>>
<label>Tail</label>
<<listbox "$mc.body.tail">>
<<option "No tail">>
<<option "Short tail">>
<<option "Long tail">>
<</listbox>>
<</if>>
<</widget>>
<<widget "RenderWingsUI">>
<<set _isAvian = ($mc.species is "Anthro") and ($mc.anthro.group is "Avian")>>
<<if _isAvian>>
<div class="anthro-wings">
<<checkbox "$mc.anthro.wings" true false>> Wings
<<if $mc.anthro.wings>>
<label>Wingspan</label>
<<listbox "$mc.anthro.wingspan">><<optionsfrom $anthroWingspans>><</listbox>>
<</if>>
</div>
<<else>>
<<set $mc.anthro.wings = false>>
<<set $mc.anthro.wingspan = "None">>
<</if>>
<</widget>>
<<widget "RenderAnthroDynamic">>
<div id="anthro-subtype"><<RenderAnthroSubtype>></div>
<<RenderWingsUI>>
<</widget>>
<<widget "setGenitals">>
<<if $mc.gender is "Male">>
<<set $mc.genitals to "Penis">>
<<elseif $mc.gender is "Female">>
<<set $mc.genitals to "Vagina">>
<</if>>
<</widget>>
<<widget "penisOptions">>
<<set _penis to ["Cut","Uncut"]>>
<</widget>>
/***************************
SET AGE GROUP WIDGET
***************************/
<<widget "AgeGroupSet">>
<<if $mc.age <= 12>>
<<set $mc.ageGroup to "Kid">>
<<elseif $mc.age >= 13 and $mc.age <= 17>>
<<set $mc.ageGroup to "Teen">>
<<elseif $mc.age >= 18>>
<<set $mc.ageGroup to "Adult">>
<<else>>
<<set $mc.ageGroup to "Unknown">>
<</if>>
<</widget>>
<<widget "AgeGroupNPC">>
<<if _npc.age <= 12>>
<<set _npc.ageGroup to "Kid">>
<<elseif _npc.age >= 13 and _npc.age <= 17>>
<<set _npc.ageGroup to "Teen">>
<<elseif _npc.age >= 18>>
<<set _npc.ageGroup to "Adult">>
<<else>>
<<set _npc.ageGroup to "Unknown">>
<</if>>
<</widget>>
/***************************
SET PRONOUNS WIDGETS
***************************/
<<widget "PronounsSet">>
/* Resolve source: prefer _npc.pronouns; fallback to $mc.pronouns */
<<set _raw = (_npc and _npc.pronouns) ? _npc.pronouns : $mc.pronouns>>
<<if !_raw>><<return>><</if>>
/* Normalize */
<<set _isPlural = /\( *plural *\)/i.test(_raw)>>
<<set _isSingular = /\( *singular *\)/i.test(_raw)>>
<<set _key = _raw.toLowerCase().replace(/\(.*?\)/g,'').replace(/\s+/g,'').trim()>>
/* Reset target to avoid stale cross-actor data */
<<set $proset = {}>>
/* Assign */
<<switch _key>>
<<case "she/her">>
<<set
$proset.they="she",
$proset.them="her",
$proset.their="her",
$proset.theirs="hers",
$proset.themselves="herself",
$proset.theyUp="She",
$proset.themUp="Her",
$proset.theirUp="Her",
$proset.theirsUp="Hers",
$proset.themselvesUp="Herself",
$proset.plural=false>>
<<case "he/him">>
<<set
$proset.they="he",
$proset.them="him",
$proset.their="his",
$proset.theirs="his",
$proset.themselves="himself",
$proset.theyUp="He",
$proset.themUp="Him",
$proset.theirUp="His",
$proset.theirsUp="His",
$proset.themselvesUp="Himself",
$proset.plural=false>>
<<case "they/them">>
<<set _self = _isSingular ? "themself" : "themselves">>
<<set
$proset.they="they",
$proset.them="them",
$proset.their="their",
$proset.theirs="theirs",
$proset.themselves=_self,
$proset.plural=_isPlural>>
<<case "ae/aer">>
<<set
$proset.they="ae",
$proset.them="aer",
$proset.their="aer",
$proset.theirs="aers",
$proset.themselves="aerself",
$proset.plural=false>>
<<case "e/em">>
<<set
$proset.they="e",
$proset.them="em",
$proset.their="eir",
$proset.theirs="eirs",
$proset.themselves="emself",
$proset.plural=false>>
<<default>>
/* Safe fallback */
<<set
$proset.they="They",
$proset.them="Them",
$proset.their="Their",
$proset.theirs="Theirs",
$proset.themselves="Themselves",
$proset.plural=true>>
<</switch>>
<</widget>>
/***************************
HAIR WIDGET
***************************/
<<widget "HairOptions">>
<<set
_hairshort to ["--", "Buzz cut", "Crew Cut", "Ceaser cut", "Undercut", "Faux Hawk", "Pixie Cut", "Bowl Cut", "Curly Crop", "Shaved Sides"],
_hairmed to ["--", "Bob Cut", "Long (Long Bob)", "Pageboy", "Shag cut", "Shoulder Length Waves", "Afro", "Mullet", "Wolf Cut", "Mid-length Dreads"],
_hairlong to ["--","Straight and Sleek", "Loose Waves", "Curly volume", "Braided", "Ponytail", "Pigtails", "Space Buns", "Dreadlocks", "Half-Up Half Down"],
_hairmisc to ["--","Spiky Anime","Wild Mane", "Flowing Magical Locks", "Asymmetrial Cut", "Gravity-defying spikes", "Shaved Pattern Designs", "Elemental Hair"],
_haircolour to ["Black", "Brown", "Blonde", "Red", "White", "Grey", "Blue", "Green", "Purple"]
>>
<</widget>>
/***************************
FACE WIDGET
***************************/
/*
This widget pushed all options ticked into an array.
Depending on how your organise features, you may end up with multiple variables (regular variables and/or other arrays).
*/
<<widget "AllThisInAnArray">>
<<set $facefeatures to []>>
<<if _moustache>><<run $facefeatures.push("a moustache")>><</if>>
<<if _goatee>><<run $facefeatures.push("a goatee")>><</if>>
<<if _fullbeard>><<run $facefeatures.push("a full beard")>><</if>>
<<if _sideburns>><<run $facefeatures.push("some sideburns")>><</if>>
<<if _shadow>><<run $facefeatures.push("shadow")>><</if>>
<<if _patch>><<run $facefeatures.push("soul patch")>><</if>>
<<if _handlebar>><<run $facefeatures.push("a handle bar")>><</if>>
<<if _wrinkles>><<run $facefeatures.push("wrinkles")>><</if>>
<<if _mole>><<run $facefeatures.push("a mole")>><</if>>
<<if _brow>><<run $facefeatures.push("a unibrow")>><</if>>
<<if _thickbrow>><<run $facefeatures.push("thick brows")>><</if>>
<<if _thinbrow>><<run $facefeatures.push("thin brows")>><</if>>
<<if _noeyelash>><<run $facefeatures.push("no eye lashes")>><</if>>
<<if _buttonnose>><<run $facefeatures.push("a Button nose")>><</if>>
<<if _romannose>><<run $facefeatures.push("a Roman nose")>><</if>>
<<if _crooked>><<run $facefeatures.push("a Crooked nose")>><</if>>
<<if _widenose>><<run $facefeatures.push("a Wide nose")>><</if>>
<<if _hawknose>><<run $facefeatures.push("a Hawk nose")>><</if>>
<<if _pointchin>><<run $facefeatures.push("a pointy chin")>><</if>>
<<if _roundchin>><<run $facefeatures.push("a rounded chin")>><</if>>
<<if _squarejawe>><<run $facefeatures.push("a square jaw")>><</if>>
<<if _pronouncedcheeks>><<run $facefeatures.push("pronounced cheeks")>><</if>>
<<if _bm>><<run $facefeatures.push("a beauty mark")>><</if>>
<<if _freckles>><<run $facefeatures.push("freckles")>><</if>>
<<if _fangs>><<run $facefeatures.push("fangs")>><</if>>
<<if _toothgap>><<run $facefeatures.push("tooth gap")>><</if>>
<<if _acne>><<run $facefeatures.push("acne")>><</if>>
<</widget>>
/***************************
BUILD WIDGET
***************************/
<<widget "BodyBuild">>
<<set
_height to ["Very Short", "Short", "Average", "Tall", "Very Tall"],
_type to ["Skinny", "Slender", "Average", "Large", "Huge"],
_muscle to ["Soft", "Light Muscles", "Toned", "Muscular", "Ripped"],
_breast to ["Flat", "Small", "Average","Large", "Busty"]
>>
<</widget>>
/********************************
MAIN PAGE WIDGETS
********************************/
<<widget "Randomiser">>
<<set
$mc.species to either ("Human", "Anthro"),
$mc.name to either ("Suzette", "Maribelle", "Francine", "Thomas", "Charles", "Alfonso", "Riley", "Blake", "Taylor","Jay","Susan","Micheal","Jamie","Kris"),
$mc.surname to either("Vanilla", "Kerr", "Silva"),
$mc.gender to either("Female", "Male"),
$mc.sexpref to either("Dom","Sub","Switch"),
$mc.sexu to either("Heterosexual", "Homosexual", "Bisexual", "Pansexual", "Asexual"),
$mc.pronouns to either("She/Her", "He/Him", "They/Them (singular)", "They/Them (plural)"),
$mc.age to random(18, 78),
$heterochromia to either(true, false),
$skin.color to either("Pale", "Fair", "Tan", "Olive", "Brown", "Ebony" ),
$mc.bodyheight to either("Very Short", "Short", "Average", "Tall", "Very Tall"),
$mc.bodyweight to either("Skinny", "Slender", "Average", "Large", "Huge", "Fat"),
$mc.bodymusc to either("Soft", "Light Muscles", "Toned", "Muscular", "Ripped"),
$mc.assSize to either("Flat","Tiny","Small","Round","Large","Huge"),
$mc.personality to either("Friendly", "Shy", "Confident", "Sarcastic", "Serious", "Optimistic", "Pessimistic", "Caring", "Aggressive", "Lazy", "Energetic", "Intelligent", "Naive", "Funny", "Calm", "Anxious", "Rebellious", "Loyal", "Greedy"),
$mc.species to either("Human","Anthro")>>
<<if $mc.species is "Anthro">>
<<set $skin.color to null>>
<<set $mc.anthro.group to either("Furry","Scalie","Avian")>>
<<set $mc.anthro.color to either("Black","Brown", "Grey", "White", "Golden","Red", "Blue", "Green")>>
<<set $mc.anthro.pattern to either("Solid","Striped", "Spotted","Patterned")>>
<<if $mc.anthro.group is "Furry">>
<<set $mc.anthro.subtype to either ("Canine","Bunny","Feline","Bear","Fox","Goat","Mouse","Pig","Other")>>
<<elseif $mc.anthro.group is "Scalie">>
<<set $mc.anthro.subtype to either ("Lizard","Dragon","Alligator","Crocodile")>>
<<elseif $mc.anthro.group is "Avian">>
<<set $mc.anthro.subtype to either("Duck","Parrot","Chicken","Eagle", "Raven")>>
<</if>>
<</if>>
<<MC-Create-body>>
<<PronounsSet>>
<<AgeGroupSet>>
<<setGenitals>>
<<if $mc.genitals is "Penis">>
<<set $mc.genitaltype to either("Cut", "Uncut","Phimosis")>>
<<set $mc.penislength to either("Tiny","Small","Average","Large","Huge")>>
<<elseif $mc.genitals is "Vagina">>
<<set $mc.genitaltype to either ("Very Tight", "Tight", "Loose", "Gaping")>>
<<set $mc.penislength to null>>
<</if>>
<<if $heterochromia is false>>
<<set $mc.eyes to either("White", "Grey", "Golden", "Green", "Blue", "Maroon", "Brown", "Black", "Red", "Pink", "Purple", "Lime", "Seafoam", "Cream")>>
<<else>>
<<set
_eyesleft to either("White", "Grey", "Golden", "Green", "Blue", "Maroon", "Brown", "Black", "Red", "Pink", "Purple", "Lime", "Seafoam", "Cream"),
_eyesright to either("White", "Grey", "Golden", "Green", "Blue", "Maroon", "Brown", "Black", "Red", "Pink", "Purple", "Lime", "Seafoam", "Cream"),
$mc.eyes to _eyesleft + " and " + _eyesright >>
<</if>>
<<set
$hair to {},
$hair.style to either("Buzz cut", "Crew Cut", "Ceaser cut", "Undercut", "Faux Hawk", "Pixie Cut", "Bowl Cut", "Curly Crop", "Shaved Sides", "Bob Cut", "Long (Long Bob)", "Pageboy", "Shag cut", "Shoulder Length Waves", "Afro", "Mullet", "Wolf Cut", "Mid-length Dreads" ,"Straight and Sleek", "Loose Waves", "Curly volume", "Braided", "Ponytail", "Pigtails", "Space Buns", "Dreadlocks", "Half-Up Half Down", "Spiky Anime", "Wild Mane", "Flowing Magical Locks", "Asymmetrial Cut", "Gravity-defying spikes", "Shaved Pattern Designs", "Elemental Hair"),
$hair.colour to either("Black", "Brown", "Auburn", "Red", "Blond", "White","Pink","Green","Purple", "Orange","Blue")>>
<<if $mc.gender is "Female">>
<<set $mc.breastsize to either ("Flat","Small","Average","Large","Busty")>>
<</if>>
<</widget>>
<<widget "CheckIfDone">>
<<done>>
<<if $mc.name>>
<<addclass "#name" "green">>
<</if>>
<<if $mc.nickname>>
<<addclass "#nickname" "green">>
<</if>>
<<if $mc.surname>>
<<addclass "#surname" "green">>
<</if>>
<<if $pages.gender>>
<<addclass "#gender" "green">>
<</if>>
<<if $pages.pronouns>>
<<addclass "#pronouns" "green">>
<</if>>
<<if $mc.age>>
<<addclass "#age" "green">>
<</if>>
<<if $mc.species>>
<<addclass "#species" "green">>
<</if>>
<<if $mc.eyes>>
<<addclass "#eyes" "green">>
<</if>>
<<if $pages.hair>>
<<addclass "#hair" "green">>
<</if>>
<<if $pages.facefeat>>
<<addclass "#ffeat" "green">>
<</if>>
<<if $flags.skinChosen>>
<<addclass "#skin" "green">>
<</if>>
<<if $mc.bodyheight>>
<<addclass "#build" "green">>
<</if>>
<<if $pages.perso>>
<<addclass "#perso" "green">>
<</if>>
<<if $mc.genitals>>
<<addclass "#genitals" "green">>
<</if>>
<<if $pages.sexpref>>
<<addclass "#sexpref" "green">>
<</if>>
<</done>>
<</widget>>
/********************************
CHANGE POPUP WIDGETS
********************************/
<<widget "FacialFeaturesPicked">>
<<if $facefeatures.includes("a moustache")>><<set _moustache to true>><</if>>
<<if $facefeatures.includes("a goatee")>><<set _goatee to true>><</if>>
<<if $facefeatures.includes("a full beard")>><<set _fullbeard to true>><</if>>
<<if $facefeatures.includes("some sideburns")>><<set _sideburns to true>><</if>>
<<if $facefeatures.includes("shadow")>><<set _shadow to true>><</if>>
<<if $facefeatures.includes("soul patch")>><<set _patch to true>><</if>>
<<if $facefeatures.includes("a handle bar")>><<set _handlebar to true>><</if>>
<<if $facefeatures.includes("wrinkles")>><<set _wrinkles to true>><</if>>
<<if $facefeatures.includes("a mole")>><<set _mole to true>><</if>>
<<if $facefeatures.includes("a unibrow")>><<set _brow to true>><</if>>
<<if $facefeatures.includes("thick brows")>><<set _thickbrow to true>><</if>>
<<if $facefeatures.includes("thin brows")>><<set _thinbrow to true>><</if>>
<<if $facefeatures.includes("no eye lashes")>><<set _noeyelash to true>><</if>>
<<if $facefeatures.includes("a Button nose")>><<set _buttonnose to true>><</if>>
<<if $facefeatures.includes("a Roman nose")>><<set _romannose to true>><</if>>
<<if $facefeatures.includes("a Crooked nose")>><<set _crooked to true>><</if>>
<<if $facefeatures.includes("a Wide nose")>><<set _widenose to true>><</if>>
<<if $facefeatures.includes("a Hawk nose")>><<set _hawknose to true>><</if>>
<<if $facefeatures.includes("a pointy chin")>><<set _pointchin to true>><</if>>
<<if $facefeatures.includes("a rounded chin")>><<set _roundchin to true>><</if>>
<<if $facefeatures.includes("a square jaw")>><<set _squarejawe to true>><</if>>
<<if $facefeatures.includes("pronounced cheeks")>><<set _pronouncedcheeks to true>><</if>>
<<if $facefeatures.includes("a beauty mark")>><<set _bm to true>><</if>>
<<if $facefeatures.includes("freckles")>><<set _freckles to true>><</if>>
<<if $facefeatures.includes("fluff hair")>><<set _facehair to true>><</if>>
<<if $facefeatures.includes("fangs")>><<set _fangs to true>><</if>>
<<if $facefeatures.includes("tooth gap")>><<set _toothgap to true>><</if>>
<<if $facefeatures.includes("acne")>><<set _acne to true>><</if>>
<</widget>>
<<widget "PopupSkinChecker">>
<<if $skin.features.includes("Viligo")>><<set _vitiligo to true>><</if>>
<<if $skin.features.includes("Freckles")>><<set _freckles to true>><</if>>
<<if $skin.features.includes("Eczema")>><<set _eczema to true>><</if>>
<<if $skin.features.includes("Beauty Marks")>><<set _beatymarks to true>><</if>>
<<if $skin.features.includes("Albinism")>><<set _albinism to true>><</if>>
<</widget>>
<<widget "PopupJinxQ">>
<<set _topic = $args[0]>>
<<set _title = ($args.length > 1) ? $args[1] : "Jinx">>
<<run Dialog.setup(_title)>>
<<run Dialog.wiki("<<include 'J-Q-popup'>>")>>
<<run Dialog.open()>>
<</widget>>
<<widget "PopupLexicon">>
<<run Dialog.create("Lexicon").wikiPassage("Lexicon").open();>>
<</widget>>
<<widget "PopupCredits">>
<<run Dialog.create("Credits").wikiPassage("Credits").open();>>
<</widget>>
<<widget "PopupStats">>
<<run Dialog.create("Statistics").wikiPassage("Statistics").open();>>
<</widget>>
<<widget "PopupDisc">>
<<run Dialog.create("Disclaimer").wikiPassage("Disclaimer").open();>>
<</widget>>
<<widget "PopupTutorial">>
<<run Dialog.create("How to fuck").wikiPassage("Tutorial").open();>>
<</widget>>
<<widget "PopupBrothelSign">>
<<run Dialog.create("Brothel").wikiPassage("BrothelSign").open();>>
<</widget>>
<<widget "PreSet">>
<<set
$mc.name to "Gary",
$mc.nickname to "Sexy",
$mc.surname to "Stu",
$mc.species to "Human",
$mc.gender to "Male",
$mc.trans to "Cisgender",
$mc.sexu to "Bisexual",
$mc.pronouns to "He/Him (singular)",
$mc.age to "27",
$heterochromia to false,
$mc.eyes to "Brown",
$hair to {},
$hair.length to "Short",
$hair.colour to "Black",
$hair.style to "Buzz cut",
$facefeatures to ["A mole"],
$skin.color to "Tan",
$skin.features to [],
$mc.bodyheight to "Average",
$mc.bodyweight to "Thin",
$mc.bodymusc to "Soft",
$mc.personality to "Kind",
$mc.genitals to "Penis",
$mc.penislength to "Average",
$mc.genitaltype to "Cut",
$mc.assSize to "Average",
$mc.sexpref to "Versatile",
$mc.virgin to true
>>
<<AgeGroupSet>>
<<MC-Create-body>>
<<SetMCBodyType>>
<</widget>>
<<widget "LittleBoy">>
<<set
$mc.name to "Gary",
$mc.nickname to "Sexy",
$mc.surname to "Stu",
$mc.species to "Human",
$mc.gender to "Male",
$mc.trans to "Cisgender",
$mc.sexu to "Bisexual",
$mc.pronouns to "He/Him ",
$mc.age to "10",
$heterochromia to false,
$mc.eyes to "Brown",
$hair to {},
$hair.length to "Short",
$hair.colour to "Black",
$hair.style to "Buzz cut",
$facefeatures to ["A mole"],
$skin.color to "Tan",
$skin.features to [],
$mc.bodyheight to "Short",
$mc.bodyweight to "Thin",
$mc.bodymusc to "Soft",
$mc.personality to "Kind",
$mc.genitals to "Penis",
$mc.penislength to "Tiny",
$mc.genitaltype to "Uncut",
$mc.assSize to "Average",
$mc.sexpref to "Versatile",
$mc.virgin to true
>>
<<AgeGroupSet>>
<<MC-Create-body>>
<<SetMCBodyType>>
<</widget>>
<<widget "LittleGirl">>
<<set
$mc.name to "Mary",
$mc.nickname to "Sexy",
$mc.surname to "Stu",
$mc.species to "Human",
$mc.gender to "Female",
$mc.trans to "Cisgender",
$mc.sexu to "Bisexual",
$mc.pronouns to "She/Her ",
$mc.age to "10",
$heterochromia to false,
$mc.eyes to "Brown",
$hair to {},
$hair.length to "Short",
$hair.colour to "Black",
$hair.style to "Buzz cut",
$facefeatures to ["A mole"],
$skin.color to "Tan",
$skin.features to [],
$mc.bodyheight to "Short",
$mc.bodyweight to "Thin",
$mc.bodymusc to "Soft",
$mc.breastsize to "Flat",
$mc.personality to "Kind",
$mc.genitals to "Vagina",
$mc.genitaltype to "Tight",
$mc.assSize to "Average",
$mc.sexpref to "Versatile",
$mc.virgin to true
>>
<<AgeGroupSet>>
<<MC-Create-body>>
<<SetMCBodyType>>
<</widget>>
<<widget "TeenBoy">>
<<set
$mc.name to "Gary",
$mc.nickname to "Sexy",
$mc.surname to "Stu",
$mc.species to "Human",
$mc.gender to "Male",
$mc.trans to "Cisgender",
$mc.sexu to "Bisexual",
$mc.pronouns to "He/Him ",
$mc.age to "16",
$heterochromia to false,
$mc.eyes to "Brown",
$hair to {},
$hair.length to "Short",
$hair.colour to "Black",
$hair.style to "Buzz cut",
$facefeatures to ["A mole"],
$skin.color to "Tan",
$skin.features to [],
$mc.bodyheight to "Average",
$mc.bodyweight to "Thin",
$mc.bodymusc to "Soft",
$mc.personality to "Kind",
$mc.genitals to "Penis",
$mc.penislength to "Average",
$mc.genitaltype to "Cut",
$mc.assSize to "Average",
$mc.sexpref to "Versatile",
$mc.virgin to true
>>
<<AgeGroupSet>>
<<MC-Create-body>>
<<SetMCBodyType>>
<</widget>>
<<widget "TeenGirl">>
<<set
$mc.name to "Mary",
$mc.nickname to "Sexy",
$mc.surname to "Stu",
$mc.species to "Human",
$mc.gender to "Female",
$mc.trans to "Cisgender",
$mc.sexu to "Bisexual",
$mc.pronouns to "She/Her ",
$mc.age to "16",
$heterochromia to false,
$mc.eyes to "Brown",
$hair to {},
$hair.length to "Short",
$hair.colour to "Black",
$hair.style to "Buzz cut",
$facefeatures to ["A mole"],
$skin.color to "Tan",
$skin.features to [],
$mc.bodyheight to "Average",
$mc.bodyweight to "Thin",
$mc.bodymusc to "Soft",
$mc.breastsize to "Small",
$mc.personality to "Kind",
$mc.genitals to "Vagina",
$mc.genitaltype to "Tight",
$mc.assSize to "Average",
$mc.sexpref to "Versatile",
$mc.virgin to true
>>
<<AgeGroupSet>>
<<MC-Create-body>>
<<SetMCBodyType>>
<</widget>>
<<widget "AdultWoman">>
<<set
$mc.name to "Mary",
$mc.nickname to "Sexy",
$mc.surname to "Stu",
$mc.species to "Human",
$mc.gender to "Female",
$mc.trans to "Cisgender",
$mc.sexu to "Bisexual",
$mc.pronouns to "She/Her ",
$mc.age to "27",
$heterochromia to false,
$mc.eyes to "Brown",
$hair to {},
$hair.length to "Short",
$hair.colour to "Black",
$hair.style to "Buzz cut",
$facefeatures to ["A mole"],
$skin.color to "Tan",
$skin.features to [],
$mc.bodyheight to "Tall",
$mc.bodyweight to "Thin",
$mc.bodymusc to "Soft",
$mc.breastsize to "Large",
$mc.personality to "Kind",
$mc.genitals to "Vagina",
$mc.genitaltype to "Loose",
$mc.assSize to "Average",
$mc.sexpref to "Versatile",
$mc.virgin to true
>>
<<AgeGroupSet>>
<<MC-Create-body>>
<<SetMCBodyType>>
<</widget>>
<<widget "AdultMan">>
<<set
$mc.name to "Gary",
$mc.nickname to "Sexy",
$mc.surname to "Stu",
$mc.species to "Human",
$mc.gender to "Male",
$mc.trans to "Cisgender",
$mc.sexu to "Bisexual",
$mc.pronouns to "He/Him ",
$mc.age to "27",
$heterochromia to false,
$mc.eyes to "Brown",
$hair to {},
$hair.length to "Short",
$hair.colour to "Black",
$hair.style to "Buzz cut",
$facefeatures to ["A mole"],
$skin.color to "Tan",
$skin.features to [],
$mc.bodyheight to "Tall",
$mc.bodyweight to "Thin",
$mc.bodymusc to "Soft",
$mc.personality to "Kind",
$mc.genitals to "Penis",
$mc.penislength to "Average",
$mc.genitaltype to "Cut",
$mc.assSize to "Average",
$mc.sexpref to "Versatile",
$mc.virgin to true
>>
<<AgeGroupSet>>
<<MC-Create-body>>
<<SetMCBodyType>>
<</widget>>
<<widget "Sleep">>
<<set _wakeuppassage to "WakeUp">>
<<goto _wakeuppassage>>
<</widget>><<if $sex.roles.dom.name is _n.name>>
<<if _n.personality =="Tough">>
“You want me in charge? Good, I don't do half-measures.”
<<elseif _n.personality== "Sassy">>
"You want me to take over? Fine, hope you're ready to be handled properly."
<<elseif _n.personality== "Brave">>
"Alright, I'll top"
<<elseif _n.personality== "Shy">>
"M-me… on top? I-I don't know if I can… but… I'll do my best…"
<<elseif _n.personality== "Relaxed">>
"You want me to lead? Sure. I'll keep it slow, unless you ask otherwise."
<<elseif _n.personality== "Playful">>
"So you're letting me top? Heh, this will be fun."
<<elseif _n.personality== "Good">>
"You want me to take the lead? Very well, I'll take care of you"
<<elseif _n.personality== "Evil">>
"Oh I'm gonna enjoy you submitting to me."
<<elseif _n.personality== "Kind">>
"You want me to lead? Then I'll take care of you, we will both feel good."
<<elseif _n.personality== "Logical">>
"You want me to lead? Very well if it's what will give the most satisfaction for both."
<<elseif _n.personality== "Studious">>
"You want me to top? I've studied plenty, I won't disappoint."
<<elseif _n.personality== "Active">>
"You're letting me take initiative? Perfect, I don't waste time hesitating."
<<elseif _n.personality== "Lonely">>
"You're leaving it to me? …Fine."
<<elseif _n.personality== "Timid">>
"You want me to take control…? I… I'll try."
<<elseif _n.personality== "Stubborn">>
"I'm on top and that's final!"
<<elseif _n.personality== "Serious">>
"You trust me to lead? Then I'll carry this with full intent. No games."
<<elseif _n.personality== "Jolly">>
"So I get to lead? Nice — I'll make sure you enjoy every second!"
<<elseif _n.personality== "Naive">>
"You want me to lead? I'll do it, just tell me if I do something wrong."
<<elseif _n.personality== "Modest">>
"I'm not a pro but I'll take the lead if it's what you want."
<<elseif _n.personality== "Quiet">>
"...alright"
<<elseif _n.personality== "Bashful">>
*Blushes*
<<elseif _n.personality== "Calm">>
"Alright, relax and trust me."
<<elseif _n.personality== "Flamboyant">>
"Fabulous — I'll make this unforgettable."
<<elseif _n.personality== "Mean">>
"Hmph"
<<elseif _n.personality== "Energetic">>
"Hope you can match my pace!"
<</if>>
<<elseif $sex.roles.sub.name is _n.name>>
<<if _n.personality =="Tough">>
“Oh? You think you can handle me? Fine, just don't expect me to go easy on you.”
<<elseif _n.personality== "Sassy">>
"Oh? So you're the boss now? Heh. Don't get sloppy."
<<elseif _n.personality== "Brave">>
"Hah, you're taking charge? Then you better keep up. I don't follow the weak."
<<elseif _n.personality== "Shy">>
"O-okay… if you want me."
<<elseif _n.personality== "Relaxed">>
"Alright, alright… take the wheel then. Just don't make me do extra effort"
<<elseif _n.personality== "Playful">>
"You wanna top? This will be fun!"
<<elseif _n.personality== "Good">>
"Alright, just be sure to enjoy it."
<<elseif _n.personality== "Evil">>
"Careful I might bite"
<<elseif _n.personality== "Kind">>
"Ok, I trust you… just be gentle with me."
<<elseif _n.personality== "Logical">>
"Confident move. If you can maintain stable control, I have no objections."
<<elseif _n.personality== "Studious">>
"You're taking charge? Alright show me."
<<elseif _n.personality== "Active">>
"Good — don't hold back."
<<elseif _n.personality== "Lonely">>
"“Please, make me feel good.”"
<<elseif _n.personality== "Timid">>
"I-I want it, but please be gentle."
<<elseif _n.personality== "Stubborn">>
"Tch, think you can break me? Give it your best shot then!"
<<elseif _n.personality== "Serious">>
"Understood. If you take command, then execute it properly, I won't tolerate hesitation."
<<elseif _n.personality== "Jolly">>
"Haha, then use me as you see fit!"
<<elseif _n.personality== "Naive">>
"Oh, you're really taking charge? Then I'll follow your lead"
<<elseif _n.personality== "Modest">>
"…If you're leading, then I'll simply trust your judgment."
<<elseif _n.personality== "Quiet">>
"Ok"
<<elseif _n.personality== "Bashful">>
*Blushes*
<<elseif _n.personality== "Calm">>
"Alright. I'll follow your pace, no need to rush."
<<elseif _n.personality== "Flamboyant">>
"Go ahead darling, treat me like a star!"
<<elseif _n.personality== "Mean">>
"Hmph"
<<elseif _n.personality== "Energetic">>
"I normally prefer to be active but sure!"
<</if>>
<</if>>