<h1>Choose your Name</h1>\
This is the quintessential train for any IF project: the PC's name — assuming you are making it customisable.
There are different ways to let the player customise their name: provide them with a list of option or let them fill the name in a textbox. The following example includes a combination of both options.
//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.
/*
~ Notes:
There is no reason for me to add this as the main text, but my to-go option for setting names has always been just a simple text-box. Or just not include this at all (unnamed PC or preset PC).
The textbox allowing for more complex names (multiple first names or hyphenated names), messing with the formatting of names (toLowerCase() or toUpperFirst() or toUpperCase()) can have weird consequences...
*/<h1>Choose your Nickname</h1>\
This trait is not particularly common, though you could see it being used by the PC's relatives, friends, and/or ROs (or in a condescending manner by the PC's nemesis). If set, you may want to ensure it is included in the story in some fashion (specific scenes or at random).
/*
~ Notes:
You could even set up different nicknames for the player, dependent on the NPC saying it.
You can use a nickname at random with something like the following code:
<<if $NicknameVariable>> <-checks if defined
<<print either($NameVariable, $NicknameVariable)>>
<</if>>
It could even be in a widget for convenience.
*/
There are multiple ways to set a nickname, from a list of pre-determined options to a simple textbox. The example below will give the player the options whether to have an nickname.
//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 Surname</h1>\
Similar to given names, this trait can be an way to add extra customisation to the PC. Thought, for many IF projects, this would be completely irrelevant, as the PC's backstory tend to be pre-set, which will include a surname. Still, there are many scenarios where the PC may need a/another surname.
/*
~ Notes:
Examples of scenarios: going undercover (spy), giving someone a fake name to enter a place you shouldn't enter, starting a new life...
Another thing that could be tied to the name would be a background for the PC, and potentially special traits, bonuses, or other. See the [CC-Background] passage.
*/
The example below only includes pre-selected options for the player to choose.
//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.
/*
Of course, you are not bound to a list of options. A textbox is also possible, letting the player choose for themselves (like with the name/nickname).
Or the available options could be formatted inside a listbox or with ratiobutton.
*/<h1>Set your Gender Identity</h1>\
//What term do you use to describe your gender?//
* <label><<radiobutton "$mc.gender" "female" checked>> Female</label>
* <label><<radiobutton "$mc.gender" "male">> Male</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>>
<h1>Choose your Pronouns Set</h1>\
Another important element to define is pronouns. Part of defining the PC's gender identity, having set pronouns will allow you to have NPCs refer to the PC in the third person. The most common sets are {{{she/her}}}, {{{he/him}}}, and {{{they/them}}}. The example below has expanded that list to a couple neopronoun sets, as well as adding a //Custom// option, for which the player can fill their preferences.
//What pronoun set are you most comfortable with?//
* <label><<radiobutton "$mc.pronouns" "She/Her" checked>>She/Her</label>
* <label><<radiobutton "$mc.pronouns" "He/Him">>He/Him</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>
* <label><<radiobutton "$mc.pronouns" "custom">>A different set...</label>
<<button "Confirm">>
<<set $pages.pronouns to true>>
<<if $mc.pronouns is "custom">>
<<set $proset.custom to true>>
<<run Dialog.create("Custom Pronouns").wikiPassage("PronounAddOn").open();>>
<<else>>
<<set $proset.custom to false>>
<<PronounsSet>>
<<goto "Index-CC">>
<</if>>
<</button>>
You can choose the //Custom// option if you would like to customise a specific pronoun, even if your main ones are already listed above.
/*
If the PC is *never* referred to by the 3rd person throughout the game (e.g. an NPC talking about the PC), this whole section would be completely useless, and as such unneeded.
If you //still// want to include it, there would be no need to set all the separate pronouns variables (they, them, their, theirs, themselves).
*/<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 "{/}"]]
<<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>><<HairOptions>><h1>Let's Talk Hair!</h1>\
Hair might be one of the most customisable characteristic there is in IF projects. Whether it is type/texture, density, length, colour, hairdo or accessories, the options are wide and varied.
And I may have gone a bit overboard with this one...
\
//Does hair grow on your head?//
<<nobr>>
<<button "Yes, I have hair.">><<addclass ".hair" "visible">><<set $hair to {}>><</button>>
|
<<button "No, I am bald.">><<removeclass ".hair" "visible">><<set $hair to "bald">><</button>>
<</nobr>>
<span class="hair">
//What is your natural hair texture?// <<listbox "$hair.texture">>
<<optionsfrom _hairtexture>>
<</listbox>>
//How long is your natural hair?// <<listbox "$hair.length">>
<<optionsfrom _hairlength>>
<</listbox>>
//What is your natural hair colour?// <<listbox "$hair.colour">>
<<optionsfrom _haircolour>>
<</listbox>>
Is your natural hair colour uniform? <<listbox "$hair.uniform">>
<<optionsfrom _hairuniform>>
<</listbox>>
//Do you have bangs?// <<listbox "$hair.bangs">>
<<optionsfrom _bangs>>
<</listbox>>
//Is your hair (or part of it) shaved?// <<listbox "$hair.shave">>
<<optionsfrom _shavedhair>>
<</listbox>>
//How is your hair styled?// <<listbox "$hair.do">>
<<optionsfrom _hairdo>>
<</listbox>>
</span>
\
<span id="cover"></span>
<<button [[Confirm|Index-CC]]>><<set $pages.hair to true>><</button>>
Please answer the question below as they appear on the screen. If you would like to reset this page, <<link [[Click Here|CC-Hair]]>><<set $hair to {}>><</link>>. Click the button when you are done.
/*
~ Notes:
Instead of <<add/removeclass>> and <<replace>>, you could use the <<do>>/<<redo>> macro. I just added this example so the template has a complete range of macro use, especially with the DOM macros.
When it comes to hairdos, it is possible to take into account the hair texture or the length of the hair. But you would need to structure the page differently and/or use special custom macro.
For the hair accessories, you could consider using a checkbox list instead (and have the accessories piling up on the PC's head). It is also possible to customise the accessories further (colour, texture, length, position...). But I've done enough here...
*/<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 "_facehair" false true>> fluff hair</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>>/*
Change skin options
*/
<h1>Choose your Skin Characteristics</h1>\
Your skin colour is <<SkinColourCycle>>, with a <<SkinSatMutCycle>> <<SkinToneCycle>> undertone.
//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>
<<button [[Confirm|Index-CC]]>>
<<set
$skin.color to _color,
$skin.satmut to _satmut,
$skin.undertone to _undertone,
$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>><<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 id your body type?// <<listbox "$mc.bodyweight">><<optionsfrom _type>><</listbox>>
//How muscular are you?// <<listbox "$mc.bodymusc">><<optionsfrom _muscle>><</listbox>>
<<button [[Confirm|Index-CC]]>><</button>>
/*
Notes:
Additionally, you could include length of limbs (arms/legs), or size of the head in regards of the body, or going more into detail about additional elements (beer belly, size of chest, etc...).
Different kinds of builds don't just open the door for additional variation depending on the situation (needs to crouch to pass a low door, can't win a fight because no muscles...), you could even add bonuses on stats (+1 strength if muscular)!
*/<h1>Choose your Personality</h1>\
While this trait can be tracked through a series of choices throughout a section (adding/removing points), you could ask the player to set a personality ahead of the story, which could give extra advantage to the PC (i.e. the PC being more outgoing, making them more charismatic). This way of setting personality can be useful for a Cheat Mode.
//What term do you use to describe your personality?//
* <label><<radiobutton "$mc.personality" "adventerous" checked>> Adventurous</label>
* <label><<radiobutton "$mc.personality" "friendly">>Friendly</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>>
/*
~ Notes:
Ok, so I kind of lied. The template has //some// custom code. Some JavaScript and jquery that affect an HTML slider. See the JavaScript passage.
Unless {:passagerender} or {State.setVar} change with new updates (VERY UNLIKELY), this shouldn't ever break.
*/Your name is currently $mc.name.
If you want to change your name, please indicate it in the textbox below:
<<textbox "_name" `$mc.name` autofocus>>
<<button "Confirm">>
<<if _name>>
<<set $mc.name to _name>>
<<replace "#mc-name">>$mc.name<</replace>>
<</if>>
<<run Dialog.close()>>
<</button>>
/*
Instead of [<<replace>>], you could use the <<do>>/<<redo>> macro combo (with <<do>> wrapping at least the table).
*/<<if $mc.nickname>>Your nickname is currently $mc.nickname.
If you want to change your name, please indicate it in the textbox below:
<<else>>You currently do not have a nickname.
If you want to indicate one, please fill the textbox below:
<</if>>
\
<<textbox "_nickname" `$mc.nickname` autofocus>>
<<button "Confirm">>
<<if _nickname>>
<<set $mc.nickname to _nickname>>
<<replace "#mc-nick">>$mc.nickname<</replace>>
<</if>>
<<run Dialog.close()>>
<</button>>Your surname is currently $mc.surname.
If you want to change it, please select one of the options below:
<<textbox "_surname" `$mc.surname` autofocus>>
<<button "Confirm">>
<<if _surname>>
<<set $mc.surname to _surname>>
<<replace "#mc-surb">>$mc.surname<</replace>>
<</if>>
<<run Dialog.close()>>
<</button>>
You currently describe yourself as a $mc.gender.
If you want to change any trait, please select one of the options below:
//What term do you use to describe your gender?//
* <label><<radiobutton "_gender" "female" autocheck>> Female</label>
* <label><<radiobutton "_gender" "male" autocheck>> Male</label>
//What do you identify as?//
* <label><<radiobutton "$mc.sexu" "Heterosexual" checked>> Heterosexual</label>
* <label><<radiobutton "$mc.sexu" "Homosexual" checked>> Homosexual</label>
* <label><<radiobutton "$mc.sexu" "Bisexual" checked>> Bisexual</label>
* <label><<radiobutton "$mc.sexu" "Pansexual" checked>> Pansexual</label>
* <label><<radiobutton "$mc.sexu" "Asexual" checked>> Asexual</label>
<<button "Confirm">>
<<set $mc.gender to _gender>>
<<replace "#mc-surb">>Gender: $mc.gender
<</replace>>
<<run Dialog.close()>>
<</button>><<IfPronounsIsCustom>>\
Your current set of pronouns is $mc.pronouns. If you want to change your pronouns, please pick one of the options below:
//What pronoun set are you most comfortable with?//
* <label><<radiobutton "_pronouns" "She/Her">>She/Her</label>
* <label><<radiobutton "_pronouns" "He/Him">>He/Him</label>
* <label><<radiobutton "_pronouns" "They/Them (singular)">>They/Them (singular)</label>
* <label><<radiobutton "_pronouns" "They/Them (plural)">>They/Them (plural)</label>
* <label><<radiobutton "_pronouns" "Ae/Aer">>Ae/Aer</label>
* <label><<radiobutton "_pronouns" "E/Em">>E/Em</label>
* <label><<radiobutton "_pronouns" "custom">>A different set...</label>
<<button "Confirm">>
<<set $pages.pronouns to true>>
<<if $mc.pronouns is "custom">>
<<set $proset.custom to true>>
<<run Dialog.create("Custom Pronouns").wikiPassage("PronounAddOn").open();>>
<<else>>
<<set $proset.custom to false>>
<<PronounsCustomSet>>
<<replace "#mc-pro">>$mc.pronouns<</replace>>
<</if>>
<<run Dialog.close()>>
<</button>>
You can choose the //Custom// option if you would like to customise a specific pronoun, even if your main ones are already listed above.Please fill all the textboxes below if your preferred pronouns.
<center>
''Subject:'' //I wished to know what ''they'' wanted.//
<<textbox "$they" "they">>
'Object:'' //You have to stop bothering ''them'' during meals.//
<<textbox"$them" "them">>
''Possessive Adjective:'' //Could you get ''their'' coat?//
<<textbox "$their" "their">>
''Possessive:'' //Don't take this book, it's ''theirs''.//
<<textbox "$theirs" "theirs">>
''Reflexive:'' //They want to keep it for ''themself''.//
<<textbox "$themself" "themself">>
</center>
\
//What verb tense do your pronouns use?//
* <label><<radiobutton "$proset.plural" "true">> Plural (they ''are'')</label>
* <label><<radiobutton "$proset.plural" "false">> Singular (<<print either("she","he","ae","e")>> ''is'')</label>
<center><<button "Confirm">>
<<set
$proset.they to $they.toLowerCase(),
$proset.them to $them.toLowerCase(),
$proset.their to $their.toLowerCase(),
$proset.theirs to $theirs.toLowerCase(),
$proset.themselves to $themself.toLowerCase(),
$mc.pronouns to $they.toLowerCase() + "/" + $them.toLowerCase()
>>
<<unset $they, $them, $their, $theirs, $themself>>
<<run Dialog.close()>>
<<goto "Index-CC">>
<</button>></center>
/*
~ Notes:
I've ensured the pronouns as all in lowercases by default. For Capitalised or Uppercase version, you can create either a widget or set a new variable for each pronoun.
You should make sure you are using all pronouns defined (they, them, their, theirs, themselves). If you are not, you might as well not define the ones left unused.
*/<<if $proset.plural is true>><<set _plural to true>><<else>><<set _plural to false>><</if>>\
Please fill all the textboxes below if your preferred pronouns.
<center>
''Subject:'' //I wished to know what ''they'' wanted.//
<<textbox "_they" `$proset.they`>>
'Object:'' //You have to stop bothering ''them'' during meals.//
<<textbox"_them" `$proset.them`>>
''Possessive Adjective:'' //Could you get ''their'' coat?//
<<textbox "_their" `$proset.their`>>
''Possessive:'' //Don't take this book, it's ''theirs''.//
<<textbox "_theirs" `$proset.theirs`>>
''Reflexive:'' //They want to keep it for ''themself''.//
<<textbox "_themself" `$proset.themselves`>>
</center>
\
//What verb tense do your pronouns use?//
* <label><<radiobutton "_plural" true autocheck>> Plural (they ''are'')</label>
* <label><<radiobutton "_plural" false autocheck>> Singular (<<print either("she","he","ae","e")>> ''is'')</label>
<center><<button "Confirm">>
<<set
$proset.they to _they.toLowerCase(),
$proset.them to _them.toLowerCase(),
$proset.their to _their.toLowerCase(),
$proset.theirs to _theirs.toLowerCase(),
$proset.themselves to _themself.toLowerCase(),
$mc.pronouns to _they.toLowerCase() + "/" + _them.toLowerCase(),
$proset.plural to _plural
>>
<<replace "#mc-pro">>$mc.pronouns<</replace>>
<<run Dialog.close()>>
<</button>></center>
/*
~ Notes:
I've ensured the pronouns as all in lowercases by default. For Capitalised or Uppercase version, you can create either a widget or set a new variable for each pronoun.
You should make sure you are using all pronouns defined (they, them, their, theirs, themselves). If you are not, you might as well not define the ones left unused.
*/<<set _agerange to ["Early 20s", "Mid 20s", "Late 20s", "Early 30s", "Mid 30s", "Late 30s", "Early 40s", "Mid 40s", "Late 40s", "Early 50s", "Mid 50s", "Late 50s", "Technically dead..."]>>\
Your current age is $mc.age.
If you want to change it, please choose one of the options below:
//What is your age?//
* <<linkappend "I can give a general bracket">>:
> Your age: <<listbox "_agelist">><<optionsfrom _agerange>><</listbox>> <<button "Confirm">>
<<set $mc.age to _agelist>>
<<replace "#mc-age">>$mc.age<</replace>>
<<run Dialog.close()>>
<</button>>
<</linkappend>>
* <<linkappend "I'll be specific">>:
> First Name: <<numberbox "_agenumber" 18 autofocus>> <<button "Confirm">>
<<set $mc.age to _agenumber>>
<<replace "#mc-age">>$mc.age<</replace>>
<<run Dialog.close()>>
<<set $mc.age to _agenumber>>
<</button>>
<</linkappend>>
* <<link "I'd rather not share my age">>
<<set $mc.age to "{/}">>
<<replace "#mc-age">>$mc.age<</replace>>
<<run Dialog.close()>>
<</link>>
/*
Yup, I just reused the same code as the main trait setter :P
The same comments from the other passage apply here as well!
*/<<set _eyecolours = ["white","grey","golden","green","blue","maroon","brown","black","red","pink","purple","lime","seafoam","cream"]>>
Your eyes are currently $mc.eyes.
If you would like to change their colours, please click on the links below:
Do your eyes have <<link "the same colour">><<set _heterochromia to false>><<redo "eyesc">><</link>> or <<link "different colours">><<set _heterochromia to true>><<redo "eyesc">><</link>>?
<<do tag "eyesc">>\
<<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">>
<<replace "#mc-eyes">>$mc.eyes<</replace>>
<<run Dialog.close()>>
<</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">>
<<set $mc.eyes to _eyesleft + " and " + _eyesright>>
<<replace "#mc-eyes">>$mc.eyes<</replace>>
<<run Dialog.close()>>
<</button>>
<</if>>\
<</do>>
/*
This is the same code as with the [CC-Eyes] passage, except with the [<<replace>>] macro.
*/<<HairOptions>><<if $hair is "bald">>You are $hair.<<else>>You have $hair.length $hair.texture $hair.colour hair <<if $hair.uniform isnot "Yes">>($hair.uniform)<</if>>.
<<if $hair.bangs isnot "No">>You have $hair.bangs. <</if>><<if $hair.shave isnot "No">>Your hair is shaved $hair.shave. <</if>> Your hair is styled in a $hair.do way.<</if>>
If you want to edit this trait, please interact with the elements below!
//Does hair grow on your head?//
<<nobr>>
<<button "Yes, I have hair.">><<addclass ".hair" "visible">><<set _hair to true>><</button>>
|
<<button "No, I am bald.">><<removeclass ".hair" "visible">><<set _hair to false>><</button>>
<</nobr>>
<span class="hair">
//What is your natural hair texture?// <<listbox "_texture">>
<<optionsfrom _hairtexture>>
<</listbox>>
//How long is your natural hair?// <<listbox "_length">>
<<optionsfrom _hairlength>>
<</listbox>>
//What is your natural hair colour?// <<listbox "_colour">>
<<optionsfrom _haircolour>>
<</listbox>>
Is your natural hair colour uniform? <<listbox "_uniform">>
<<optionsfrom _hairuniform>>
<</listbox>>
//Do you have bangs?// <<listbox "_bangs">>
<<optionsfrom _bangs>>
<</listbox>>
//Is your hair (or part of it) shaved?// <<listbox "_shave">>
<<optionsfrom _shavedhair>>
<</listbox>>
//How is your hair styled?// <<listbox "_do">>
<<optionsfrom _hairdo>>
<</listbox>>
</span>
<<button "Confirm">>
<<if _hair is false>>
<<set $hair to "bald">>
<<else>>
<<set $hair to {},
$hair.texture to _texture,
$hair.length to _length,
$hair.colour to _colour,
$hair.uniform to _uniform,
$hair.bangs to _bangs,
$hair.shave to _shave,
$hair.do to _do
>>
<</if>>
<<replace "#mc-hairnat">>
<<if $hair is "bald">>
You are $hair.
<<else>>
You have $hair.length $hair.texture $hair.colour hair
<<if $hair.uniform isnot "Yes">>($hair.uniform)<</if>>.
<<if $hair.bangs isnot "No">>You have $hair.bangs. <</if>>
<<if $hair.shave isnot "No">>Your hair is shaved $hair.shave. <</if>> Your hair is styled in a $hair.do way.
<</if>>
<</replace>>
<<run Dialog.close()>>
<</button>><<FacialFeaturesPicked>>\
You currently have the following features: $facefeatures.
If you want to edit this trait, please check or uncheck the relevant options below:
//What facial features are applicable to you?//
* <label><<checkbox "_moustache" false true autocheck>> a moustache</label>
* <label><<checkbox "_goatee" false true autocheck>> a goatee</label>
* <label><<checkbox "_fullbeard" false true autocheck>> a full beard</label>
* <label><<checkbox "_sideburns" false true autocheck>> some sideburns</label>
* <label><<checkbox "_shadow" false true autocheck>> shadow</label>
* <label><<checkbox "_patch" false true autocheck>> soul patch</label>
* <label><<checkbox "_handlebar" false true autocheck>> a handle bar</label>
* <label><<checkbox "_wrinkes" false true autocheck>> wrinkles</label>
* <label><<checkbox "_mole" false true autocheck>> a mole</label>
* <label><<checkbox "_brow" false true autocheck>> a unibrow</label>
* <label><<checkbox "_thickbrow" false true autocheck>> thick brows</label>
* <label><<checkbox "_thinbrow" false true autocheck>> thin brows</label>
* <label><<checkbox "_noeyelash" false true autocheck>> no eye lashes</label>
* <label><<checkbox "_pointedear" false true autocheck>> pointed ears</label>
* <label><<checkbox "_smallears" false true autocheck>> small ears</label>
* <label><<checkbox "_largeears" false true autocheck>> large ears</label>
* <label><<checkbox "_buttonnose" false true autocheck>> a Button nose</label>
* <label><<checkbox "_romannose" false true autocheck>> a Roman nose</label>
* <label><<checkbox "_crooked" false true autocheck>> a Crooked nose</label>
* <label><<checkbox "_widenose" false true autocheck>> a Wide nose</label>
* <label><<checkbox "_hawknose" false true autocheck>> a Hawk nose</label>
* <label><<checkbox "_pointchin" false true autocheck>> a pointy chin</label>
* <label><<checkbox "_roundchin" false true autocheck>> a rounded chin</label>
* <label><<checkbox "_squarejaw" false true autocheck>> a square jaw</label>
* <label><<checkbox "_pronouncedcheeks" false true autocheck>> pronounced cheeks</label>
* <label><<checkbox "_bm" false true autocheck>> a beauty mark</label>
* <label><<checkbox "_freckles" false true autocheck>> freckles</label>
* <label><<checkbox "_facehair" false true autocheck>> fluff hair</label>
* <label><<checkbox "_fangs" false true autocheck>> fangs</label>
* <label><<checkbox "_toothgap" false true autocheck>> tooth gap</label>
* <label><<checkbox "_acne" false true autocheck>> acne</label>
<<button "Confirm">>
<<set $facefeatures to []>>
<<AllThisInAnArray>>
<<replace "#mc-ffeat">>$facefeatures<</replace>>
<<run Dialog.close()>>
<</button>><<PopupSkinChecker>>Your skin is currently $skin.satmut $skin.undertone $skin.color, with $skin.features.
To change this trait, interact with the elements below:
Your skin colour is <<SkinColourCycle>>, with a <<SkinSatMutCycle>> <<SkinToneCycle>> undertone.
//Does your skin have any notable features?//
* <label><<checkbox "_vitiligo" false true autocheck>> Viligo</label>
* <label><<checkbox "_freckles" false true autocheck>> Freckles</label>
* <label><<checkbox "_eczema" false true autocheck>> Eczema</label>
* <label><<checkbox "_beatymarks" false true autocheck>> Beauty Marks</label>
* <label><<checkbox "_albinism" false true autocheck>> Albinism</label>
<<button "Confirm">>
<<set
$skin.color to _color,
$skin.satmut to _satmut,
$skin.undertone to _undertone,
$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>>
<<replace "#mc-skin">>$skin.satmut $skin.undertone $skin.color
$skin.features<</replace>>
<<run Dialog.close()>>
<</button>>
/*
You could make the checkbox autochecked here, as well as have the cycles start at the first chosen value if wanted.
*/<<PopupBodyBuild>>\
You are currently $mc.bodyheight, with a $mc.bodyweight a $mc.bodymusc body.
To change this trait, please interact with the elements below. If you'd like to keep some traits as is, keep the listbox on the //--// option.
//How tall are you?// <<listbox "_heightbox">><<optionsfrom _height>><</listbox>>
//What id your body type?// <<listbox "_weightbox">><<optionsfrom _type>><</listbox>>
//How muscular are you?// <<listbox "_muscbox">><<optionsfrom _muscle>><</listbox>>
<<button "Confirm">>
<<if _heightbox isnot "--">>
<<set $mc.bodyheight to _heightbox>>
<</if>>
<<if _weightbox isnot "--">>
<<set $mc.bodyweight to _weightbox>>
<</if>>
<<if _muscbox isnot "--">>
<<set $mc.bodymusc to _muscbox>>
<</if>>
<<replace "#mc-build">>Height: $mc.bodyheight
Type: $mc.bodyweight
Musculature: $mc.bodymusc<</replace>>
<<run Dialog.close()>>
<</button>>You are currently $mc.personality
If you want to edit this trait, please interact options below:
<center>\
//What term do you use to describe your personality?//
* <label><<radiobutton "$mc.personality" "adventerous" >> Adventurous</label>
* <label><<radiobutton "$mc.personality" "friendly">>Friendly</label>
* <label><<radiobutton "$mc.personality" "good">>Good</label>
* <label><<radiobutton "$mc.personality" "evil">>Evil</label>
</center>
<<button "Confirm">>
<<set $mc.personality to _personality>>
<<replace "#mc-perso">> $mc.personality<</replace>>
<<run Dialog.close()>>
<</button>><h1>List of Traits</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 = "sex-position">
Sex Position
<<button[[Choose|CC-sexPreference]]>><</button>>
</div>
<div id = "kinks">
Kinks
<<button[[Choose|CC-Kinks]]>><</button>>
</div>
</div>
<<button [[Review Choices|CC-Check]]>><</button>>
<<CheckIfDone>>
Editor Note: Change RO Gender is currently broken, might remove later.
<h1>Is this Correct?</h1>
Please review the character page below and confirm the traits chosen are correct.
If you would like to change an option, please click the button //Change option//.
<h2>Basic Info</h2>
<table>
<tr id="name">
<th>First Name:</th>
<td id="mc-name">$mc.name</td>
<td><<button "Change First Name">><<PopupNameChange>><</button>></td>
</tr>
<<if $mc.nickname>>
<tr id="nickname">
<th>Nickname:</th>
<td id="mc-nick">$mc.nickname</td>
<td><<button "Change Nickname">><<PopupNickNameChange>><</button>></td>
</tr>
<</if>>
<tr id="surname">
<th>Surname:</th>
<td id="mc-surb">$mc.surname</td>
<td><<button "Change Surname">><<PopupSurNameChange>><</button>></td>
</tr>
<tr id="gender">
<th>Gender Identity:</th>
<td id="mc-identity">
Gender: $mc.gender<br>
Sexuality: $mc.sexu
</td>
<td><<button "Change Gender">><<PopupGenderChange>><</button>></td>
</tr>
<tr id="pronouns">
<th>Pronouns:</th>
<td id="mc-pro">$mc.pronouns</td>
<td><<button "Change Pronouns">><<PopupPronounChange>><</button>></td>
</tr>
<tr id="age">
<th>Age:</th>
<td id="mc-age">$mc.age</td>
<td><<button "Change Age">><<PopupAgeChange>><</button>></td>
</tr>
<tr id="age">
<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>
<td><<button "Change Species">><<PopupSpeciesChange>><</button>></td>
</tr>
</table>
<h2>Physical Traits:</h2>
<h3>Face and Hair:</h3>
<table>
<tr id="eyes">
<th>Eyes:</th>
<td id="mc-eyes">$mc.eyes</td>
<td><<button "Change Eye Colour(s)">><<PopupEyesChange>><</button>></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 is "bald">>
You are $hair.
<<else>>
You have $hair.length $hair.texture $hair.colour hair
<<if $hair.uniform isnot "Yes">>($hair.uniform)<</if>>
<<if $hair.bangs isnot "No">>You have $hair.bangs. <</if>>
<<if $hair.shave isnot "No">>Your hair is shaved $hair.shave. <</if>>
Your hair is styled in a $hair.do way.
<</if>>
</span>
</td>
<td><<button "Change Your Hair">><<PopupHairChange>><</button>></td>
</tr>
<</if>>
<<if $facefeatures>>
<tr id="facial-features">
<th>Facial Features:</th>
<td id="mc-ffeat">$facefeatures</td>
<td><<button "Change Features">><<PopupFaceFeatChange>><</button>></td>
</tr>
<</if>>
</table>
<h3>Body</h3>
<table>
<tr id="skin-colour">
<th>Skin:</th>
<td id="mc-skin">$skin.satmut $skin.undertone $skin.color $skin.features</td>
<td><<button "Change Skin Colour">><<PopupSkinColourChange>><</button>></td>
</tr>
<tr id="body-build">
<th>Build:</th>
<td id="mc-build">
Height: $mc.bodyheight<br>
Type: $mc.bodyweight<br>
Musculature: $mc.bodymusc
</td>
<td><<button "Change Build">><<PopupBuildChange>><</button>></td>
</tr>
</table>
<h2>Personality</h2>
<table>
<tr id="perso">
<th>Personality:</th>
<td id="mc-perso">$mc.personality</td>
<td><<button "Change Personality">><<PopupPersoChange>><</button>></td>
</tr>
</table>
<h2>NSFW Options</h2>
<table class="nsfw">
<tr>
<th>Genitals:</th>
<td id="mc-genitals">$mc.genitals</td>
<td></td>
</tr>
<<if $mc.genitals is "Penis">>
<tr>
<th>Genital type:</th>
<td id="mc-genitaltype">$mc.genitaltype</td>
<td><<button "Change Genitals">><<PopupGenitalsChange>><</button>></td>
</tr>
<</if>>
</table>
<div>
<<button "YES!">><<goto "CC-Confirm">><</button>>
</div>
<h1>Hi $mc.name!</h1>\
<h2>You're adventure is about to start...</h2>
[[Beginning]]/*
~ Notes: ~
You don't *have to* set variables ahead of time. I've only done it here for a handful of them, because of the way I've coded this template. You should however, ensure that a minimum of variables are coded here, especially if they are used before the player interact with them (i.e. included in the Autoname code, setup variables, etc...).
Also, I rely heavily on objects and arrays here (and in general), to organise the player information, since this template is pretty extensive. However, you can use basic single variables, if you prefer those. This is just how I (personally) organise my stuff (and I don't even bother setting sub-objects...).
*/
/* General MC/PC characteristics */
<<set $characterTemplate = {
name: "",
nickname: "",
surname: "",
species: "",
gender: "",
sexu: "",
genitals: "",
genitaltype: "",
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)>>
<<set $mc =
$proset to {},
$face to {},
$skin to {},
$body to {}
>>
/* This last one is only for practicality */
<<set $pages to {}>>
<<set $anthroColors = ["Black","Brown","Grey","White","Golden","Red","Blue","Green"]>>
<<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"]>>
<<button "Lexicon">><<PopupLexicon>><</button>>
<<button "Credits">><<PopupCredits>><</button>>
<<button "Statistics">><<PopupStats>><</button>><h1>Welcome to Jinx Hentai Studios!</h1>\
(Name is a inside joke with my friends.)
<h3 style="font-weight: normal;">This game is meant to simulate DnD mechanics and have a very thourough character customization. Also include the option to use a preset character or randomize your features.
Check statistics to see your information. It is advised to already put information in before you check.
</h3>\
<center><<button [[Use the Randomiser|CC-Check]]>><<Randomiser>><</button>> | <<button [[Use the Pre-Set|CC-Check]]>><<PreSet>><</button>>
<<button [[Use the Other Preset|CC-Check]]>><<Kevin>><</button>>
</center>
<center><<button [[Create Character|Index-CC]]>><</button>></center>IF = Interactive Fiction
PC = Player Character
NPC = Non Player Character
RO = Romance Option
Species:
Human- Plain humanoid
Furry- Any mammals
Avian- Any Species of bird
Scalie- Any reptile
Shellie- any crab or shell creature
Auquarian- Any ocean dwelling
Slimies- Any Amphibious creature<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="gender">
<th>Gender Identity:</th>
<td id="mc-identity">Gender: $mc.gender<br>Sexuality: $mc.sexu</td>
</tr>
<tr id="pronouns">
<th>Pronouns:</th>
<td id="mc-pro">$mc.pronouns</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>
</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.length $hair.texture $hair.colour hair
<<if $hair.uniform isnot "Yes">> ($hair.uniform)<</if>>
<<if $hair.bangs isnot "No">> You have $hair.bangs. <</if>>
<<if $hair.shave isnot "No">> Your hair is shaved $hair.shave. <</if>>
Your hair is styled in a $hair.do way.
<</if>>
</span>
</td>
</tr>
<</if>>
<<if $facefeatures>>
<tr id="facial-features">
<th>Facial Features:</th>
<td id="mc-ffeat">$facefeatures</td>
</tr>
<</if>>
</table>
<h3>Body</h3>
<table class="stats-table">
<colgroup><col style="width:220px"><col style="width:auto"></colgroup>
<tr id="skin-colour">
<th>Skin:</th>
<td id="mc-skin">$skin.satmut $skin.undertone $skin.color $skin.features</td>
</tr>
<tr id="body-build">
<th>Build:</th>
<td id="mc-build">
Height: $mc.bodyheight<br>
Type: $mc.bodyweight<br>
Musculature: $mc.bodymusc
</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.genitals is "Penis">>
<tr>
<th>Genital type:</th>
<td id="mc-genitaltype">$mc.genitaltype</td>
</tr>
<</if>>
</table>
The ''Character Creator Template'' was created by manonamora on Twine 2/Tweego with SugarCube (2.37.3).
Credit to KevinSnowpaw on Inkbunny for his oc to be a preset.
<<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","Bird","Chicken"]
}>>
<<set $anthroColors = $anthroColors or ["Black","Brown","Grey","White","Golden","Red","Blue","Green"]>>
<<set $anthroPatterns = $anthroPatterns or ["Solid","Striped","Spotted","Patterned"]>>
<<set $anthroTailTypes = $anthroTailTypes or ["None","Short","Long","Bushy","Reptilian","Avian"]>>
<<set $anthroEarTypes = $anthroEarTypes or ["None","Canine","Feline","Lagomorph","Bear","Pointed","Rounded"]>>
<<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 "Furry">>
<<set $mc.anthro.subtype = $mc.anthro.subtype or "Canine">>
<<set $mc.anthro.color = $mc.anthro.color or "Brown">>
<<set $mc.anthro.pattern = $mc.anthro.pattern or "Solid">>
<<set $mc.anthro.tail = $mc.anthro.tail or "None">>
<<set $mc.anthro.ears = $mc.anthro.ears or "None">>
/* 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>>
<</button>>
<div id="anthro-dynamic"><<RenderAnthroDynamic>></div>
<label>Pattern</label>
<<listbox "$mc.anthro.pattern">><<optionsfrom $anthroPatterns>><</listbox>>
<label>Tail</label>
<<listbox "$mc.anthro.tail">><<optionsfrom $anthroTailTypes>><</listbox>>
<label>Ears</label>
<<listbox "$mc.anthro.ears">><<optionsfrom $anthroEarTypes>><</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>>
<!-- moved into dynamic region so it re-renders on group change -->
<<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>>
<<listbox "$mc.anthro.color">><<optionsfrom $anthroColors>><</listbox>>
<</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>>
/***************************
SET PRONOUNS WIDGETS
***************************/
<<widget "PronounsSet">>
<<if $mc.pronouns is "She/Her">>
<<set
$proset.they to "she",
$proset.them to "her",
$proset.their to "her",
$proset.theirs to "hers",
$proset.themselves to "herself",
$proset.plural to false
>>
<<elseif $mc.pronouns is "He/Him">>
<<set
$proset.they to "he",
$proset.them to "him",
$proset.their to "his",
$proset.theirs to "his",
$proset.themselves to "himself",
$proset.plural to false
>>
<<elseif $mc.pronouns is "They/Them (singular)">>
<<set
$proset.they to "they",
$proset.them to "them",
$proset.their to "their",
$proset.theirs to "theirs",
$proset.themselves to "themself",
$proset.plural to false
>>
<<elseif $mc.pronouns is "They/Them (plural)">>
<<set
$proset.they to "they",
$proset.them to "them",
$proset.their to "their",
$proset.theirs to "theirs",
$proset.themselves to "themselves",
$proset.plural to true
>>
<<elseif $mc.pronouns is "Ae/Aer">>
<<set
$proset.they to "ae",
$proset.them to "aer",
$proset.their to "aer",
$proset.theirs to "aers",
$proset.themselves to "aerself",
$proset.plural to false
>>
<<elseif $mc.pronouns is "E/Em">>
<<set
$proset.they to "e",
$proset.them to "em",
$proset.their to "eir",
$proset.theirs to "eirs",
$proset.themselves to "emself",
$proset.plural to false
>>
<</if>>
<</widget>>
<<widget "PronounsCustomSet">>
<<if _pronouns is "She/Her">>
<<set $mc.pronouns to "She/Her">>
<<elseif _pronouns is "He/Him">>
<<set $mc.pronouns to "He/Him">>
<<elseif _pronouns is "They/Them (singular)">>
<<set $mc.pronouns to "They/Them (singular)">>
<<elseif _pronouns is "They/Them (plural)">>
<<set $mc.pronouns to "They/Them (plural)">>
<<elseif _pronouns is "Ae/Aer">>
<<set $mc.pronouns to "Ae/Aer">>
<<elseif _pronouns is "E/Em">>
<<set $mc.pronouns to "E/Em">>
<</if>>
<<PronounsSet>>
<</widget>>
/***************************
HAIR WIDGET
***************************/
<<widget "HairOptions">>
<<set
_hairtexture to ["--", "Straight", "Wavy", "Curly (loose)", "Curly (tight)", "Coily"],
_hairlength to ["--", "Buzzcut", "Short", "Ear-Length", "Chin-Length", "Shoulder-Length", "Long", "Waist-Length", "Hip-Length", "Knee-Length", "Floor-Length"],
_haircolour to ["--", "Black", "Brown", "Auburn", "Red", "Blond", "White"],
_hairuniform to ["Yes", "Graying", "White Streaks"],
_shavedhair to ["No", "Completely", "Undercut", "Shaved Left Side", "Shaved Right Side", "Mohawk"],
_bangs to ["No", "Curtain Bangs", "Bottleneck Bangs", "Blunt Bangs", "Curly Bangs", "Side-Swept Bangs", "Layered Bangs", "Choppy Bangs", "Braided Bangs", "Wispy Bangs", "Wavy Bangs", "Micro Bangs", "Shaggy Bangs", "Piecey Bangs", "Clip-In Bangs"],
_hairdo to ["Natural", "Covered", "Up do", "Braided", "Ponytail", "Buns", "Unstyled"],
_hairaccess to ["Headwrap", "Cap", "Clips", "Extensions", "Hairband", "Barrette", "Pins"]
>>
<</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 _pointedear>><<run $facefeatures.push("pointed ears")>><</if>>
<<if _smallears>><<run $facefeatures.push("small ears")>><</if>>
<<if _largeears>><<run $facefeatures.push("large ears")>><</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 _facehair>><<run $facefeatures.push("fluff hair")>><</if>>
<<if _fangs>><<run $facefeatures.push("fangs")>><</if>>
<<if _toothgap>><<run $facefeatures.push("tooth gap")>><</if>>
<<if _acne>><<run $facefeatures.push("acne")>><</if>>
<</widget>>
/***************************
SKIN COLOURS WIDGETS
***************************/
<<widget "SkinColourCycle">>
<<cycle "_color" autoselect>>
<<option "white">>
<<option "pink">>
<<option "beige">>
<<option "brown">>
<<option "black">>
<<option "blue">>
<<option "green">>
<<option "purple">>
<</cycle>>
<</widget>>
<<widget "SkinSatMutCycle">>
<<cycle "_satmut" autoselect>>
<<option "muted">>
<<option "saturated">>
<</cycle>>
<</widget>>
<<widget "SkinToneCycle">>
<<cycle "_undertone" autoselect>>
<<option "warm">>
<<option "neutral">>
<<option "cold">>
<</cycle>>
<</widget>>
/***************************
BUILD WIDGET
***************************/
<<widget "BodyBuild">>
<<set
_height to ["Very Short", "Short", "Average", "Tall", "Very Tall"],
_type to ["Thin", "Slender", "Average", "Curvy", "Chubby", "Fat"],
_muscle to ["Ripped", "Muscular", "Athletic", "Toned", "Lean", "Soft"]
>>
<</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"),
$mc.surname to either("Bartlett", "Kerr", "Silva"),
$mc.gender to either("female", "male"),
$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(6, 78),
$heterochromia to either(true, false),
_bald to either(true, false),
$skin.color to either("white", "pink", "beige", "brown", "black"),
$skin.satmut to either("muted", "saturated"),
$skin.undertone to either("warm", "neutral", "cold"),
$mc.bodyheight to either("Very Short", "Short", "Average", "Tall", "Very Tall"),
$mc.bodyweight to either("Thin", "Slender", "Average", "Curvy", "Chubby", "Fat"),
$mc.bodymusc to either("Ripped", "Muscular", "Athletic", "Toned", "Lean", "Soft"),
$mc.personality to either("Friendly", "Shy", "Confident", "Curious", "Sarcastic", "Serious", "Optimistic", "Pessimistic", "Caring", "Aggressive", "Lazy", "Energetic", "Intelligent", "Naive", "Funny", "Calm", "Anxious", "Rebellious", "Loyal", "Greedy")
>>
<<PronounsSet>>
<<AgeGroupSet>>
<<setGenitals>>
<<if $mc.genitals is "Penis">>
<<set $mc.genitaltype to either("cut", "uncut")>>
<</if>>
<<if $heterochromia>>
<<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>>
<<if _bald>>
<<set $hair to "bald">>
<<else>>
<<set
$hair to {},
$hair.texture to either("Straight", "Wavy", "Curly (loose)", "Curly (tight)", "Coily"),
$hair.length to either("Buzzcut", "Short", "Ear-Length", "Chin-Length", "Shoulder-Length", "Long", "Waist-Length", "Hip-Length", "Knee-Length", "Floor-Length"),
$hair.colour to either("Black", "Brown", "Auburn", "Red", "Blond", "White"),
$hair.uniform to either("Yes", "Graying", "White Streaks"),
$hair.bangs to either("No", "Curtain Bangs", "Bottleneck Bangs", "Blunt Bangs", "Curly Bangs", "Side-Swept Bangs", "Layered Bangs", "Choppy Bangs", "Braided Bangs", "Wispy Bangs", "Wavy Bangs", "Micro Bangs", "Shaggy Bangs", "Picey Bangs", "Clip-In Bangs"),
$hair.shave to either("No", "Completely", "Undercut", "Shaved Left Side", "Shaved Right Side", "Mohawk"),
$hair.do to either("Natural", "Covered", "Up do", "Braided", "Ponytail", "Buns", "Unstyled")
>>
<</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 $skin.color>>
<<addclass "#skin" "green">>
<</if>>
<<if $mc.bodyheight>>
<<addclass "#build" "green">>
<</if>>
<<if $pages.perso>>
<<addclass "#perso" "green">>
<</if>>
<<if $mc.genitals and $mc.genitals != "None">>
<<addclass "#genitals" "green">>
<</if>>
<</done>>
<</widget>>
/********************************
CHANGE POPUP WIDGETS
********************************/
<<widget "PopupNameChange">>
<<run Dialog.create("Change Your Name").wikiPassage("Popup-Name").open();>>
<</widget>>
<<widget "PopupNickNameChange">>
<<run Dialog.create("Change Your Nickname").wikiPassage("Popup-NickName").open();>>
<</widget>>
<<widget "PopupSurNameChange">>
<<run Dialog.create("Change Your Surname").wikiPassage("Popup-SurName").open();>>
<</widget>>
<<widget "PopupGenderChange">>
<<run Dialog.create("Change Your Gender").wikiPassage("Popup-Gender").open();>>
<</widget>>
<<widget "PopupPronounChange">>
<<run Dialog.create("Change Your Pronouns").wikiPassage("Popup-Pronouns").open();>>
<</widget>>
<<widget "IfPronounsIsCustom">>
/*
This is to check which option was selected, especially if it was custom, and autocheck the relevant radiobutton.
All of this use temporary variables so it doesn't override the actual variable if the dialog box is closed without actually confirming the change.
*/
<<if !$proset.custom>>
<<if $mc.pronouns is "She/Her">>
<<set _pronouns to "She/Her">>
<<elseif $mc.pronouns is "He/Him">>
<<set _pronouns to "He/Him">>
<<elseif $mc.pronouns is "They/Them (singular)">>
<<set _pronouns to "They/Them (singular)">>
<<elseif $mc.pronouns is "They/Them (plural)">>
<<set _pronouns to "They/Them (plural)">>
<<elseif $mc.pronouns is "Ae/Aer">>
<<set _pronouns to "Ae/Aer">>
<<elseif $mc.pronouns is "E/Em">>
<<set _pronouns to "E/Em">>
<</if>>
<<else>>
<<set _pronouns to "custom">>
<</if>>
<</widget>>
<<widget "PopupAgeChange">>
<<run Dialog.create("Change Your Age").wikiPassage("Popup-Age").open();>>
<</widget>>
<<widget "PopupSpeciesChange">>
<<run Dialog.create("Change Your Species").wikiPassage("Popup-Species").open();>>
<</widget>>
<<widget "PopupEyesChange">>
<<run Dialog.create("Change Your Eye").wikiPassage("Popup-Eye").open();>>
<</widget>>
<<widget "PopupHairChange">>
<<run Dialog.create("Change Your Hair").wikiPassage("Popup-Hair").open();>>
<</widget>>
<<widget "PopupFaceFeatChange">>
<<run Dialog.create("Change Your Features").wikiPassage("Popup-FaceFeat").open();>>
<</widget>>
<<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("pointed ears")>><<set _pointedear to true>><</if>>
<<if $facefeatures.includes("small ears")>><<set _smallears to true>><</if>>
<<if $facefeatures.includes("large ears")>><<set _largeears 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 "PopupSkinColourChange">>
<<run Dialog.create("Change Your Skin Colour").wikiPassage("Popup-Skin").open();>>
<</widget>>
<<widget "PopupSkinChecker">>
<<set
_undertone to $skin.undertone,
_color to $skin.color,
_satmut to $skin.satmut
>>
<<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 "PopupBuildChange">>
<<run Dialog.create("Change Your Build").wikiPassage("Popup-Build").open();>>
<</widget>>
<<widget "PopupBodyBuild">>
<<set
_height to ["--", "Very Short {below 5’1”/155cm}", "Short {5’1”–5’7”/155-170cm}", "Average {5’7”–6’/170-185cm}", "Tall {6’–6’5”/185-195cm}", "Very Tall {above 6’5”/195cm}"],
_type to ["--", "Thin", "Slender", "Average", "Curvy", "Chubby", "Fat"],
_muscle to ["--", "Ripped", "Muscular", "Athletic", "Toned", "Lean", "Soft"]
>>
<</widget>>
<<widget "PopupPersoChange">>
<<run Dialog.create("Change Your Personality").wikiPassage("Popup-Perso").open();>>
<<set _personality to $personality>>
<</widget>>
<<widget "PopupGenitalsChange">>
<<run Dialog.create("Change your genitals").wikiPassage("Popup-Genitals").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 "PreSet">>
<<set
$mc.name to "Jinx",
$mc.nickname to "sexy",
$mc.surname to "Vanilla",
$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 "bald",
$facefeatures to ["a mole"],
$skin.color to "white",
$skin.satmut to "muted",
$skin.undertone to "cold",
$skin.features to [],
$mc.bodyheight to "Very Short {below 5’1”/155cm}",
$mc.bodyweight to "Thin",
$mc.bodymusc to "Soft",
$mc.personality to "Kind",
$mc.genitals to "Penis",
$mc.genitaltype to "Cut"
>>
<<AgeGroupSet>>
<</widget>>
<<widget "Kevin">>
<<set
$mc.name to "Kevin",
$mc.nickname to "Kevy",
$mc.surname to "Snowpaw",
$mc.species to "Anthro",
$mc.anthro to $mc.anthro or {},
$mc.anthro.group to "Furry",
$mc.gender to "male",
$mc.trans to "cisgender",
$mc.sexu to "Bisexual",
$mc.pronouns to "He/Him (singular)",
$mc.age to 8,
$heterochromia to false,
$mc.eyes to "blue",
$hair to {},
$facefeatures to "{/}",
$body.height to "Very Short {below 5’1”/155cm}",
$body.weight to "Thin",
$body.musc to "Soft",
$personality to "Kind",
$mc.genitals to "Penis",
$mc.genitaltype to "uncut"
>>
<<AgeGroupSet>>
<</widget>>
End of game so far.
More to be added later.
To be added:
More customization for anthro characters
Dialogue affected by character traits.
etc.
<<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>>
Please answer the question above.<<EnsureSpeciesData>>
<h1>Let's Talk Species!</h1>
Your species defines you in many ways — choose wisely.
<<listbox "$mc.species">>
<<option "Human">>
<<option "Anthro">>
<</listbox>>
<<button "Show options for selected species">>
<<replace "#anthro-ui">><<RenderAnthroUI>><</replace>>
<</button>>
<div id="anthro-ui"><<RenderAnthroUI>></div>
<span id="cover"></span>
<<button "Confirm">>
<<set $pages.species = true>>
<<replace "#mc-species">>
<<if $mc.species is "Anthro">>
Anthro — <<= $mc.anthro.group >> / <<= $mc.anthro.subtype >>
, Color: <<= $mc.anthro.color >>, Pattern: <<= $mc.anthro.pattern >>
, Tail: <<= $mc.anthro.tail >>, Ears: <<= $mc.anthro.ears >>
<<if $mc.anthro.wings>>, Wingspan: <<= $mc.anthro.wingspan >><</if>>
<<else>>
<<= $mc.species >>
<</if>>
<</replace>>
<<run Dialog.close()>>
<<goto "CC-Check">>
<</button>>
Decide your genitals
<<if $mc.gender is "male">>
Because you chose male you have a penis. Is it cut or uncut?
*<label><<radiobutton "$mc.genitaltype" "cut" checked>> Cut</label>
* <label><<radiobutton "$mc.genitaltype" "uncut">> Uncut</label>
<<set $mc.genitals to "Vagina">>
<<elseif $mc.gender is "female">>
Because you chose female you have a vagina
Unfortunately the author of this game does not know what choices to add for different vaginas.
<<set $mc.genitals to "Vagina">>
<<set $mc.genitaltype to "Placeholder">>
<</if>>
<<button "Confirm">>
<<goto "Index-CC">>
<</button>>
<<CheckIfDone>>:: Decide-Genitals
Decide your genitals
<<if $mc.gender is "male">>
Because you chose male you have a penis. Is it cut or uncut?
* <label><<radiobutton "$mc.genitaltype" "Cut" checked>> Cut</label>
* <label><<radiobutton "$mc.genitaltype" "Uncut">> Uncut</label>
<<set $mc.genitals to "Penis">>
<<elseif $mc.gender is "female">>
Because you chose female you have a vagina.
Unfortunately the author of this game does not know what choices to add for different vaginas.
<<set $mc.genitals to "Vagina">>
<</if>>
<<button "Confirm">>
/* update the review table cells (they must exist in the base page) */
<<replace "#mc-genitals">>$mc.genitals<</replace>>
<<replace "#mc-genitaltype">>$mc.genitaltype<</replace>>
<<run Dialog.close()>>
<</button>>
/* already designated NPC's will have their information stored here. */
/*Kevin Snowpaw */
<<set
$mc.name to "Kevin",
$mc.nickname to "Kevy",
$mc.surname to "Snowpaw",
$mc.species to "Anthro",
$mc.anthro to $mc.anthro or {},
$mc.anthro.group to "Furry",
$mc.gender to "male",
$mc.trans to "cisgender",
$mc.sexu to "Bisexual",
$mc.pronouns to "He/Him (singular)",
$mc.age to 8,
$heterochromia to false,
$mc.eyes to "blue",
$hair to {},
$hair.length to "short",
$hair.texture to "straight",
$hairuniform to "No",
$hair.colour to "white",
$facefeatures to "{/}",
$skin.color to "white",
$skin.satmut to "muted",
$skin.undertone to "cold",
$skin.features to [""],
$body.height to "Very Short",
$body.weight to "Thin",
$body.musc to "Soft",
$personality to "Kind",
$mc.genitals to "Penis",
$mc.genitaltype to "uncut"
>>/*
* genitals, penis (cut or uncut), vagina.
* Age group (Kid, Teen, Adult)
* Breast size
*Fur, scales, or feathers.
* Sexual position (Bottom, Versatile, Top)
*Virgin
*Kinks
Species:
Human
Furry- Any mammals
Avian- Any Species of bird
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.
*/Empty for nowEmpty for now