Dev:SDK/Core - XML Events - Statements

From Slavemaker Wiki
Jump to: navigation, search
<<first <prev SDK/Core - XML Events - Statements next> last>>


Statements note: all these statements tags and attributes are case-insensitive

eg

<AddText>This is to be shown</AddText>

is the same as

<addtext>This is to be shown</addtext>

Generall all these statments are almost the same as an equivallently named SDK function. There will be slight differences as xml needed some simplifications, and for clarity in some cases.

Some attributes and statement names have variants to allow for typos and for regional differences so generally colour and color can be used interchangably. Similarly for armour/armor. These variants can be listed like

OwnArmour | SetArmourOwned | OwnArmor | SetArmorOwned


Contents

Example statement[edit]

Black text is from the documentation below, green is explanatory text

<AddText>
this is the statement to use

<AddText>text</AddText>

  • a general prototype of the statement,

mandatory parts are listed, optional are omitted

  • text - means you supply a string, generally to be read by the person playing the game
  • number - a constant number like 2 or 7
  • expression - a numerical expression like -1 * constitution, or just a constant number
  • event - a special case of text, the name or

number of an event

  • boolean - the value true or false
actionscript version: AddText()
this is the equivallent statement you would

use in actionscript

Appends text to the output window(s). - a description of the effect of the statement

attributes[edit]

before (OPTIONAL)
after (OPTIONAL)
These are numbers that define a number of line feeds to add before or

after the text

these are the attributes that can be used

eg

<AddText before='1'>Hi there</AddText>

OPTIONAL - means the attribute or data can be omitted and a default value will be supplied. If an attribute is not noted as optional and you omit it then generally the statement will do nothing.

element data[edit]

The text to display in the general and larger text fields
this is what to encode in the node

ie what is in bold below

<AddText>This is the element data</AddText>

Common Attribute Values[edit]

The attributes for many statements use common values or similar structures

Gender[edit]

Whenever gender is referred to in an attribute or element data, the following values may be used. Note spaces are optional. Values separated by commas are alternate values that can be used

none, neutral
(0) a person who has no gender
male
(1) a man
female
(2) a female
dickgirl, hermaphrodite
(3) a hermaphrodite, with the genitals of both genders
male twins
(4) two males, not necessarily related
female twins
(5) two females, not necessarily related
dickgirl twins,hermaphrodite twins
(6) two hermaphrodites, , not necessarily related
twins
(4, 5, 6) any gender that are twins

eg

  • 'none'
  • 'Male Twins'
  • 'dickgirltwins'

Slave[edit]

Where the game refers to a slave or person the following are acceptable values

slavemaker
your slave maker
assistant
your current assistant
name
the name of the slave, preferably the simlest form, like 'Kasumi' not

'Cumslut Kasumi'

Person

An extension of the above, including the NPCs in the game, like Miss.N, Lady Okyanu. In this case use their name, spaces and punctuation are optional. The values are case insensitive eg

  • 'miss.n'
  • 'ladyokyanu'
  • 'Lady Farun'

In all cases here you may also specify the person number, see Core - People.rtf eg

  • '8' for the Lord

<AddText>[edit]

<AddText>text</AddText>

actionscript version: AddText()

Appends text to the output window(s).

attributes[edit]

before (OPTIONAL)
after (OPTIONAL)
These define a number of line feeds to add before or after the text

element data[edit]

The text to display

eg <AddText>This is to be shown</AddText> shows This is to be shown in the output window.

eg

<AddText before="2">This is to be shown</AddText>

shows

This is to be shown

in the output window.

All text here has standard macros applied, see Core - Functions - Text.rtf

All leading and trailing whitespace (spaces, tabs) are stripped and not shown. All tab characters are always stripped from the text to allow text like

<AddText>#slave is walking along.
        A person taps #slavehimher on the shoulder</AddText>

to be shown reasonably and allow better layout of the xml files

SetText[edit]

<SetText>text</SetText>

actionscript version: SetText()

All text is erased in the output window and then the text in this node's element data is shown. Otherwise the same as <AddText>

BlankLine[edit]

<BlankLine/>

actionscript version: BlankLine()

Adds 2 line feeds (1 blank line) to the output window

No attributes or element data.

eg

<BlankLine/>

Note: same as

<AddText>\r\r</AddText>

or

AddText("\r\r");

PersonSpeak[edit]

<PersonSpeak person='person' start='true' end='true'>text</PersonSpeak>

actionscript version: PersonSpeak() or PersonSpeakStart() or PersonSpeakEnd() or SlaveSpeak()/ServantSpeak() versions

Shows text as if a person is speaking

attributes[edit]

person
the person to speak to. Use the name of number of an NPC or
  • slave
  • assistant
  • assistanta
  • assistantb
  • slavea
  • slaveb
start
(OPTIONAL) equivalent to using PrsonSpeakStart
end
(OPTIONAL)equivalent to using PrsonSpeakEnd, ignored if start is used

element data[edit]

The text they speak. All standard macros apply as do \r\n. " and ' are

fine to use if needed, but the speech is already automatically enclosed in ""

eg

<PersonSpeak person="Lady Farun">Hi there</PersonSpeak>
<PersonSpeak person="slave">Hello Lady Farun</PersonSpeak>

If/IfNot/IfOr[edit]

<if>
<ifor>
<ifnot>
<else>

<if> applies a series of conditional test, AND'ing all the statements together, and if the total result is true then all statements in the <i> are performed, until an <else> node is encountered or all statements in the else are complete.

<ifor> as for <if> but the statements are OR'd together

<ifnot> as for <if> but each conditional is NOT'd, ie the <ifnot> is applied if all terms are false.

<else> if the <if> conditionals are not true, processing skips to any <else> statement and then performs all statements after the else. NOT statements inside the <else> node

Note, <if> statements can be nested.

eg

<if supervise='slavemaker'><AddText>You start</AddText>
<else>if</else><AddText>#assistant starts</AddText>
</if>
<if currentframe="1">
        <if supervise="true">
                <SetText>You explain how the slaves will have to learn to accept life as
a slave. They are now slaves and life can be good and
pleasurable.</SetText>
        <else>if</else>
                <SetText>You explain how the slaves will have a harsh time initially as
they are punished for their crimes, but they will become normal slaves.
Life as a slave can be good and pleasurable and it seems they will be
quite popular as they are fit and attractive.</SetText>
        </if>
<else>if</else>
        <if supervise="true">
                <SetText>#super explains how the slaves will have to learn to accept
life as a slave. They are now slaves and must accept that.</SetText>
        <else>if</else>
                <SetText>#super explains how the slaves will have a harsh time initially
as they are punished for their crimes, but they will become normal
slaves. Most likely sex slaves as they are fit and attractive.</SetText>
        </if>
</if>

Points[edit]

<Points>Charisma, Sensibility, Refinement, Intelligence, Morality, Constitution, Cooking, Cleaning, Conversation, BlowJob, Fuck, Temperament, Nymphomania, Obedience, Lust, Reputation, Fatigue, Joy, Love, Special</Points>

actionscript version: Points() or PointsIndexed()

Changes the stats for a slave. Each statistic value is an evaluated expression, so you can pass terms like constitution / 10 for instance.

attributes[edit]

slave
(OPTIONAL) the slave whose stats are to be updated. Defaults to the

current slave in training special value 'allparticipants'

element data[edit]

comma delimited list of the value to be added to each stat

eg

<AddText>Everyone looks much prettier after Narry's lesson</AddText>
<Points >charisma / 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0</Points>
<Points slave="assistant">5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0</Points>
<Points slave="Narry">5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0</Points>

SMPoints[edit]

<SMPoints>attack, defence, arousaldef, constitution, conversation, lust, corrupt, renown, dominance, charisma, refinement, nymphomania, tiredness</SMPoints>

actionscript version: SMPoints()

Change your slavemakers statistics. Each statistic value is an evaluated expression, so you can pass terms like constitution / 10 for instance

attributes[edit]

no attributes

element data[edit]

comma delimited list of the value to be added to each stat

eg

<AddText>You learn a forbidden attack maneouver</AddText>
<SMPoints>1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0</SMPoints>

Money[edit]

<Money>expression</Money>

actionscript version: Money()

Add or remove money from your training money. Does not increase your Slave Maker's money for Guild Members, use SMMoney for that.

attributes[edit]

quiet
(OPTIONAL) make no sound (normally maked the coin noise)
nodebt
(OPTIONAL) do not go into debt, ie pay as much as you can

element data[edit]

An expression, the amount of money to add

eg

<Money quiet="true">constitution + charisma</Money>
<Money>-50</Money>

SMMoney[edit]

<SMMoney>expression</SMMoney>

actionscript version: SMMoney()

Add or remove money from your Slave Maker's money. For Guild Members this works identically to calling <Money>. For freelancers it increases the slave makers personal gold.

attributes[edit]

quiet
(OPTIONAL) make no sound (normally maked the coin noise)
nodebt
(OPTIONAL) do not go into debt, ie pay as much as you can

element data[edit]

An expression, the amount of money to add

eg

<SMMoney quiet="true">smconstitution + smcharisma</SMMoney>
<SMMoney>-50</SMMoney>

OwnItem[edit]

<OwnItem>number</OwnItem>

actionscript version: SetItemOwned(item)

Set a standard item as owned by the slave, Same as the actionsctipt function SetItemOwned

attributes[edit]

no attributes

element data[edit]

the item number

eg

<OwnItem>1</OwnItem>

WearItem[edit]

<WearItem>number</WearItem>

actionscript version: EquipItem(item)

Equip a standard item as worn by the slave, Same as the actionsctipt function WearItem

attributes[edit]

no attributes

element data[edit]

the item number

eg

<WearItem>1</WearItem>

RemoveItem[edit]

<RemoveItem>number</RemoveItem>

actionscript version: UnEquipItem(item)

UnEquip a standard item so it is not worn by the slave, Same as the actionsctipt function RemoveItem

attributes[edit]

no attributes

element data[edit]

the item number

eg

<RemoverItem>1</RemoveItem>

OwnWeapon | SetWeaponOwned[edit]

<OwnWeapon>number</OwnWeapon>

actionscript version: SetWeaponOwned(weapon)

Set a standard weapon as owned by the slave maker, Same as the actionsctipt function SetWeaponOwned

attributes[edit]

no attributes

element data[edit]

the weapon number

eg

<OwnWeapon>1</OwnWeapon>

OwnArmour | SetArmourOwned | OwnArmor | SetArmorOwned[edit]

<OwnArmour>number</OwnArmour>

actionscript version: SetArmourOwned(weapon)

Set a standard armour as owned by the slave maker, Same as the actionsctipt function SetArmourOwned

attributes[edit]

no attributes

element data[edit]

the armour number

eg

<OwnArmour>1</OwnArmour>

SetFlags[edit]

<SetFlags attributes>sv</SetFlags>

actionscript version: multiple functions

Use this function to set the various flags for the game, slavemaker, a slave, a person, a place or an event.

ClearFlags[edit]

<ClearFlags attributes>sv</ClearFlags>

actionscript version: multiple functions

Use this function to reset the various flags for the game, slavemaker, a slave, a person, a place or an event. Only really meaningful for bit type flags, but for other flags will set them to a value of 0

ShowDress[edit]

<ShowDress/>

actionscript version: ShowDress()

Show your slave wearing their current dress, in the main window, or small person window.

attributes[edit]

place
(OPTIONAL) 0 or 1, same as used in ShowMovie(), defaults to 1

no element data

eg

<ShowDress/>
<ShowDress place='0'/>

HideDress | HideDresses[edit]

<HideDress/>

actionscript version: HideDresses()

Hide the current dress image of your slave

No attributes or element data.

PickActImage[edit]

<PickActImage act='text'/>

actionscript version ShowActImage(act);

Intended for XML slaves that use <Images> nodes to specify the images for the various trainings. This allows you to select a particular image for the act. This can be used by other slaves but you must still have an <Images> node specified and images to show, it will not use the actionscript Showxxxxx() functions.

Basically used to change the randomly selected image to pick a specific one based on slave specific events or settings.

attributes[edit]

act
(OPTIONAL) the number of the act to show. Defaults to the current

training being done. If no training is being done, the statement has no effect

frame
(OPTIONAL) particular image to select, defaults to 1

no element data

eg

<PickActImage frame="1"/>

eg Break act, select the second image

<PickActImage act='1017' frame="2"/>

eg from Mihoshi, when doing Lesbian sex and Kiyone is her partner, select an image featuring Kiyone act attribute is not selected as we are doing an act, so defaults to 11

<Lesbian>
        <if usegeneric="false" currframe="2+" partner="Kiyone">
                <PickActImage frame="1"/>
        </if>
</Lesbian>

ShowMovie[edit]

<ShowMovie movie='text'/>

actionscript version ShowMovie(image, 1, 1);

Show a selected MovieClip image.

attributes[edit]

movie
(OPTIONAL) the name of the movieclip to show. If it is not specified then

this will re-show the last shown movieclip

submovie
(OPTIONAL) the name of a child movieclip to show, of the movieclip

specified in movie above

slave
(OPTIONAL) show movie as movieclip from your current slave girl, same as

movie='SlaveMovie' submovie='movie'

place
(OPTIONAL) the location to show the item. See ShowMovie(), defaults to 1
special values can be used for simplicity
'main'
show in the main window, same as place='1'
'person'
show in the small person window, same as place='0'
align
(OPTIONAL) the positioning of the item in the selected area, see

ShowMovie(), defaults to 1

special values can be used for simplicity
'left'
align to the left of the window, same as align='2'
'right'
align to the right of the window, same as align='3'
'center'
align to the center of the window, same as align='1'
'fill'
resize the image to fill the window, same as align='0'
frame
(OPTIONAL) the particular frame of the movie clip to show, defaults to 1
delay
(OPTIONAL) a delay in milliseconds to delay before showing the movie.

Defaults to 0

no element data

eg

<ShowMovie movie='WalkForest' submovie='BEForest' place='1' align='0'
frame='2'/>

eg

<ShowMovie movie='WalkForest' submovie='BEForest' place='main' align='0'
frame='left'/>

ShowImage[edit]

<ShowImage image='text'/>

actionscript version AutoLoadAndShowMovie(image, 1, 1);

As for <ShowMovie> but loads an external image file and shows it. Supports files of the extensions

  • .jpg
  • .png
  • .gif
  • .swf

attributes[edit]

image
the filename of the image to show. The path is relative to the file

SlaveMaker3.exe

place
(OPTIONAL) the location to show the item. See ShowMovie(), defaults to 1,

also uses special values like 'main'

align
(OPTIONAL) the positioning of the item in the selected area, see

ShowMovie(), defaults to 1, also uses valued like 'left'

delay
(OPTIONAL) a delay in milliseconds to delay before showing the movie.

Defaults to 0

imgno
(OPTIONAL) a numeric suffix added to the filename, generally used for

standard act images or to show variant images. No default.

no element data

eg

<ShowImage image='Images/Walk Palace - Latex Slave.png' place='1' align='3'/>

eg show either of the images "Images/Walk Farm - New Slaves For The Market 1.jpg" or "Images/Walk Farm - New Slaves For The Market 2.jpg"

<ShowImage image='Images/Walk Farm - New Slaves For The Market' place='1'
align='1' imgno='random2'/>

eg

<ShowImage image='Images/Walk Palace - Latex Slave.png' place='main'
align='center'/>

ShowPerson[edit]

<ShowPerson person='text'/>

actionscript version ShowPerson();

Show the image of a standard NPC (Lady Farun for instance).

attributes[edit]

person
the name or number of the person to show
place
(OPTIONAL) the location to show the item. See ShowMovie(), defaults to 1,

also uses special values like 'main'

align
(OPTIONAL) the positioning of the item in the selected area, see

ShowMovie(), defaults to 1, also uses special values like 'left'

frame
(OPTIONAL) the particular image to show, for items with multiple images,

defaults to 1

no element data

eg

<ShowPerson person='Lady Farun'/>

eg

<ShowPerson person='8' place='1' align='3'/>

eg

<ShowPerson person='miss.n'/>

HidePerson[edit]

<HidePerson person='text'/>

actionscript version: HidePerson()

attributes[edit]

person
the name or number of the person to hide

no element data

eg

<HidePerson person='8'/>
<HidePerson person='Lady Farun"'/>

Backgrounds | Background[edit]

<Backgrounds attributes/>

actionscript versions: Backgrounds.ShowBackground(text), or HideBackgrounds(), or ShowOverlay(0xnnnnnn)

Hide or show a background image or colour in the main window.

Note the attributes place and colour are mutually exclusive. hide may be used with either, in which case the backgrounds are hidden first.

attributes[edit]

place
Show a background image in the main window, valid values are
  • alley
  • arena
  • armoury
  • bar
  • bedroom
  • bath
  • beach
  • beachrocks
  • cave
  • cellar
  • cemetary
  • circus
  • deepforest
  • diningroom
  • docks
  • dungeon
  • farm
  • festival
  • forest
  • garden
  • grass
  • hallway
  • outside
  • kitchen
  • lake
  • library
  • livingroom
  • night
  • onsen
  • other
  • palace
  • potions
  • restaurant
  • temple
  • sakura
  • salon
  • school
  • ship
  • shop
  • sky
  • slavemarket
  • slavemakerroom
  • slavepens
  • slums
  • stables
  • sunset
  • tailors
  • temple
  • towncenter
  • tentacles
  • tunnels
  • tunnelschamber
  • housing
frame
the particular frame of the background image.
flip
reverse the image left to right
colour
show a solid background colour in the main window.
attributes place, frame, flip are ignored. Use RGB hex notation.
hide
hide the background image/colour, may be used with place or colour

element data[edit]

no element data

eg

 <Backgrounds hide='true'/>
<Backgrounds place='Town Center'/>
<Backgrounds hide='true' place='Slums'/>
note: in most cases using hide='true' is not needed as the previous
background is automatically hidden
<Backgrounds colour='0xFF0000'/>

CumSplatter[edit]

<CumSplatter movie='text'/>

actionscript version DoCumSplatter();

After a pause, show a splatter of cum over the main window, or show an image of a cock cumming internally. Most attributes are the same as <ShowMovie>

Note: at this time this does not support the frame attribute with images loaded using <ShowImage> or using the XM Slave internal system.

attributes[edit]

delay
(OPTIONAL) a delay in milliseconds to delay before showing the cum.

Defaults to 0

movie
(OPTIONAL) the name of the movieclip to show when the cum is shown, say a

more 'wet' version of the first image.

submovie
(OPTIONAL) the name of a child movieclip to show, of the movieclip

specified in movie above

slave
(OPTIONAL) show movie as movieclip from your current slave girl, same as

movie='SlaveMovie' submovie='movie'

align
(OPTIONAL) the positioning of the above movie (if specified), see

ShowMovie(), defaults to 1

frame
(OPTIONAL) the particular frame of the movieclip to show (if specified),

defaults to 1

internal
(OPTIONAL) show a cock cumming internally, default false

no element data

eg show the splatter after 1 second, no other image changes than the cum effects

<CumSplatter delay='1000'/>

eg show the splatter immediately, showing the internal version

<CumSplatter internal='true'/>

eg show the movieclip from the slave's swf file (actually it will try the core game, then the slaves), right aligned, frame 5 in the movieclip

<CumSplatter movie='GangBangClip' align='3' frame='5'/>

eg same as above, but explicitly only checks the slave's swf file

<CumSplatter slave='true' movie='GangBangClip' align='3' frame='5'/>

ShowSupervisor[edit]

<ShowSupervisor/>

actionscript version ShowSupervisor();

Shows the image of the current supervisor (your slave maker or assistant) in the small person window

No attributes or element data.

ShowSlaveMaker[edit]

<ShowSlaveMaker/>

actionscript version ShowSlaveMaker();

Shows the image of your slave maker in the small person window.

No attributes or element data.

ShowItem[edit]

<ShowItem item='number'/>

actionscript version: ShowItem(item, true, 1, 1);

Show the image of an item in the main/person window of the game.

attributes[edit]

item
the number of the item to hide
place
(OPTIONAL) the location to show the item. See ShowMovie(), defaults to 0
align
(OPTIONAL) the positioning of the item in the selected area, see

ShowMovie(), defaults to 1

frame
(OPTIONAL) the particular image to show, for items with multiple images,

defaults to 1

no element data

eg

<ShowItem item='1'/>

eg

<ShowItem item='2' place='1' align='3'/>

HideItem[edit]

<HideItem item='number'/>

actionscript version: HidePerson()

Hides the image of a selected item.

attributes[edit]

item
the number of the item to hide

no element data

eg

<HideItem item='8'/>

AskQuestions[edit]

<AskQuestions>
        <Question event='event'>string</Question>
        ...
</AskQuestions>

actionscript version: several functions, ResetQuestions(), AddQuestion(), ShowQuestions();


attributes for <AskQuestions>[edit]

caption
(OPTIONAL) text that appears above the questions, normally a question

being asked.

main
(OPTIONAL) if true show the questions in the main window, otherwise show

in the text areas below the last shown text. Defaults to false.

element data[edit]

a series of <Question> nodes. Each has an attribute event to specify the event to be done when the question answer is chosen. It's element data is the text of the question. Each event must be in the same parent node as the currently executing event. Standard core game events that use numbers can also be triggered by this, just specify the number here.

eg

<AskQuestions caption='What should #slave do in the meantime?'>
        <Question event='BEForestRest'>Rest a little</Question>
        <Question event='BEForestDrink'>Drink water from the lake</Question>
        <Question event='BEForestEat'>Eat one of the unknown fruits</Question>
        <Question event='BEForestLeave'>Wait for morning &amp; leave the
valley</Question>
</AskQuestions>

YesNoQuestion[edit]

<YesNoQuestion event='event'>text</YesNoQuestion>

actionscript version: DoYesNoEvent(text);

Show the Yes/No buttons and when it is pressed the selected event will be done. If you specify an event FightMonster then if you press the Yes button the event FightMonsterYes is performed. Similarly for the No button. Note a line feed/new line is always output to the general text window by the statement.

attributes[edit]

event
the name of the event that will be performed, with a Yes or No suffix.

The yes/no event must be in the same parent node as the currently executing event. Standard core game events that use numbers can also be triggered by this, just specify the number here.

element data[edit]

(OPTIONAL) a string output in the general text window, generally the

question being asked that you are to respond yes/no to

eg

<YesNoQuestion event='FightMonster>Will you fight the
monster?</YesNoQuestion >

eg

<YesNoQuestion event='140'>Will you submit to the tentacles?YesNoQuestion >

DoEvent[edit]

<DoEvent>event</DoEvent>

actionscript version: DoEvent(string);

Show the Next button and when it is pressed the selected event will be done.

attributes[edit]

now
(OPTIONAL) the next button is not shown, instead the event is immediately

done. Useful to have a common event that can be triggered from several places and you wish to just vary some initial text for instance.

element data[edit]

the event name (or number) to trigger

eg

<DoEvent>LamiaEscape</DoEvent>
eg trigger standard core event
<DoEvent>9800</DoEvent>

Alternatives[edit]

<Alternatives>
        <Alternative></Alternative>
</Alternatives>

actionscript version: if/switch

This is a simple version of nested if statement or a variation of a switch statement. This is intended to have a list of variations in a event and the game will pick one at random to be processed. All nodes are given an equal chance to happen by default, but this can be overridden with attributes.

The nodes may be named as Alternative or Alternate.

attributes[edit]

altchance
(OPTIONAL) a percentage chance to this node to happen, intended to

override the standard equal distribution.

xml conditionals
(OPTIONAL) you can also just specify standard conditionals. These enable

or disable the node. If these are true then the node may be selected randomly. If they are false then the node will not be randomly selected. See Core - XML - Comditionals & Variables.rtf

element data[edit]

the event statement to process

eg both equally likely

<Alternatives>
        <Alternative>
                <ShowImage image='Images/Lady Farun/Image 2.jpg' place='1' align='1'/>
                <AddText>You find the Lady Farun speaking with another Lady of the
Court. The Lady Farun looks enchantingly beautiful as she laughs at a
comment of the Lady she is with.\r\rThey notice you and Lady Farun
smiles and leans in and rather passionately kisses the woman. She breaks
the kiss and runs her hand tenderly along the Ladies face, and she
stands and walks over to speak with you.</AddText>
        </Alternative>
        <Alternative>
                <ShowImage image='Images/Lady Farun/Image' place='1' align='1'
frame="random3 + 4"/>
                <AddText>You find the Lady Farun speaking with minor nobleman, leaning
very close to him, their lips almost touching. The Lady Farun looks very
beautiful as she looks into the man&apos;s eyes. The nobleman is very
focused on her and clearly besotted with her.\r\rYou are about to leave
when Lady Farun notices you and she leans in and whispers in the
nobleman&apos;s ear. She pulls away from the nobleman, and she stands
and walks over to speak with you, the nobleman watching her as if there
was no-one else in the room.</AddText>
        </Alternative>
</Alternatives>

eg unicorns are rare so seen 10%, bear and deer 45%

<Alternatives>
        <Alternate altchance='10%'>
                <AddText>#slave sees a unicorn</AddText>
        </Alternate>

        <Alternate>
                <AddText>#slave sees a bear</AddText>
        </Alternate>

        <Alternate>
                <AddText>#slave sees a deer</AddText>
        </Alternate>
</Alternatives>

eg at night 33% of the time a dark elf is seen. In the day time 50% of the time an elf, 50% a woman

<Alternatives>
        <Alternate day='false>
                <AddText>#slave sees dark elf</AddText>
        </Alternate>

        <Alternate>
                <AddText>#slave sees an elf</AddText>
        </Alternate>

        <Alternate>
                <AddText>#slave sees a woman</AddText>
        </Alternate>
</Alternatives>

Choices[edit]

<Choices>
        <nodename></nodename>
</Choices>

actionscript version: switch

This is a simple version of nested if statement or a variation of a switch statement. Similar to <Alternatives> above but you supply conditionals to determin whic node is processed.

When processed the game checks each subnode sequentially and tests if it's conditional is true and if so it performs its statements and then finishes the Choices statment, no later nodes are checked.

If a subnode has no conditionals it is always performed, essentially a defaul clause.

Standardly name the nodes <Choice> for clarity, but they can have any name you like. If a node starts Day- then it in only checked in the daytime. If a node name starts Night- then is it only checked at night. This is the same as adding day='true' or day='false' respectively.

attributes[edit]

xml conditionals
see Core - XML - Comditionals & Variables.rtf

element data[edit]

the event statements to process

eg

<Choices>
        <Choice tiredness="30-">
                <AddText>#slave feels fine</AddText>
        </Choice>
        <Choice tiredness="60-">
                <AddText>#slave feels rather tired</AddText>
        </Choice>
        <Default>
                <AddText>#slave faints</AddText>
        </Default>
</Choices>
<Choices>
        <Day-Effect1 tiredness="30->
                <AddText>#slave feels fine</AddText>
        </Day-Effect1>
        <Day-Effect2 tiredness="60-">
                <AddText>#slave feels rather tired</AddText>
        </Day-Effect2>
        <Default>
                <AddText>#slave faints</AddText>
        </Default>
</Choices>

AlterSexuality[edit]

<AlterSexuality>expression</AlterSexuality>

actionscript version: AlterSexuality(val);

Changes the slave's sexuality by an expression

attributes[edit]

slave
(OPTIONAL) the slave/assistant to change. 'slavemaker' is not a valid

choice.

Defaults to your current slave

element data[edit]

an expression for the amount to change, negative values to decrease

eg

<AlterSexuality>-2</AlterSexuality>
<AlterSexuality slave='Tifa'>-1 * elapsed</AlterSexuality>

ChangeBustSize[edit]

<ChangeBustSize>expression</ChangeBustSize>

actionscript version: ChangeBustSize(val);

Changes the slaves bust size by a percentage value, 1.1 = 10% increase

attributes[edit]

slave
(OPTIONAL) the slave/slavemaker/assistant to change.
Defaults to your current slave

element data[edit]

an expression for the amount to change, values less than 1 decrease,

greater than 1 increase

eg

<ChangeBustSize>1.1</ChangeBustSize>
<ChangeBustSize slave='Tifa'>1.2</ChangeBustSize>

ChangeClitCockSize[edit]

<ChangeClitCockSize>expression</ChangeClitCockSize>

actionscript version: ChangeClitCockSize(val);

Changes the slaves clit or cock size by a percentage value, 1.1 = 10% increase

attributes[edit]

slave
(OPTIONAL) the slave/slavemaker/assistant to change.
Defaults to your current slave

element data[edit]

an expression for the amount to change, values less than 1 decrease,

greater than 1 increase

eg

<ChangeClitCockSize>1.1</ChangeClitCockSize>
<ChangeClitCockSize slave='Tifa'>1.2</ChangeClitCockSize>

ChangeMilkEffects[edit]

<ChangeMilkEffects attributes/>

actionscript version: ChangeMilkEffects(val);

Changes the slaves lactation rate, breast fixation, milkinfluence values.

attributes[edit]

slave
(OPTIONAL) the slave/assistant to change, value 'slavemaker' is not valid.
Defaults to your current slave
lactation
(OPTIONAL) the amount to change the slave's lactation rate
breastfixation
(OPTIONAL) the amount to change the slave's breast fixation
milkinfluence
(OPTIONAL) the amount to change the slave's milk drug influence

no element data

eg

<ChangeMilkEffects lactation="1"/>
<ChangeMilkEffects breastfixation='2' lactation="1"/>
<ChangeMilkEffects slave='Tifa' lactation="1"/>

Diary[edit]

<Diary>string</Diary>

actionscript version: Diary.AddEntry(string);

Adds an entry to the Training Log/Diary for the slave's training

attributes[edit]

tentacles
(OPTIONAL) true is this event associate with the tentacle creatures
winner
(OPTIONAL) did the slave win a contest, 1 = first place, 2 = second, 3 =

third

ownertesting
(OPTIONAL) is this entry to do with the slaves owner testing the slave

element data[edit]

the message to add

eg

<Diary>#slave was bitten by a Lamia</Diary>
<Diary tentacles='true'>#slave saw a tentacle shape in the shadows</Diary>

HideImages[edit]

<HideImages/>

actionscript version: several functions involved

Hides all currently shown images and people

Equivallent to calling the actionscript functions, leaves backgrounds as is

  • HideImages();
  • HideSlaveActions();
  • HideAllPeople();
  • HideItems();
  • HideEndings();

No attributes or element data.

GenderVersions[edit]

<GenderVersions>
</GenderVersions>

actionscript version: none

Similar to <Choices> this selects a node based on the slave/slavemaker/assistants gender

You build a set of nodes like

<GenderVersions>
        <Male>
                <SetText>Male slave ....</SetText>
        </Male>
        <Female>
                <SetText>Female slave ....</SetText>
        </Female>
        <Dickgirl>
                <SetText>Female slave ....</SetText>
        </Dickgirl>
        <Other>
                <SetText>Other gender, none or twins</SetText>
        </Other>
</GenderVersions>

Nodes can be named as the standard gender names (see the top on this document) except you must remove any spaces. The nodes are case insensitive.

attributes for GenderVersions[edit]

slavemaker
(OPTIONAL) true means to use your slave makers gender
assistant
(OPTIONAL) true, then use the assistants gender
Defaults to your slaves gender

no element data for GenderVersions

no attributes for individual gender nodes

element data for gender nodes like <Male>
The XML statements to process for the gender case

RepeatEvent[edit]

<RepeatEvent>event</RepeatEvent>

actionscript version: Forest.RepeatEvent("Centaur");

Allows an event to happen that had been prevented from happening via NoRepeatEvent (or actionscript version), some core events will reset for later slaves.

Note: only applies for events when doing the 'Take a Walk' action.

attributes[edit]

no attributes

element data[edit]

(OPTIONAL) event to enable, defaults to the current event

eg

<RepeatEvent>Centaur</RepeatEvent>

NoRepeatEvent[edit]

<NoRepeatEvent>event</NoRepeatEvent>

actionscript version: Forest.NoRepeatEvent("Centaur");

Prevents an event from happening again, some core events automatically repeat for each slave, but most stay reset for all slaves.

Note: only applies for events when doing the 'Take a Walk' action.

attributes[edit]

no attributes

element data[edit]

(OPTIONAL) event to disable, defaults to the current event

eg

<NoRepeatEvent>Centaur</NoRepeatEvent>

Combat[edit]

<Combat resethealth='true' startnow='true'>
        <StartMessage>You advance to help the guards fight the deformed
creature...</StartMessage>
        <RunawayEvent>FarunRescueGetHelpBattleWonNoHelp</RunawayEvent>
        <WinEvent>FarunRescueGetHelpBattleWon</WinEvent>
        <LoseDamageEvent>FarunRescueGetHelpBattleLost</LoseDamageEvent>
        <LoseLustEvent>FarunRescueGetHelpBattleLost</LoseLustEvent>
        <BonusAttack>10</BonusAttack>
        <BonusDefence>10</BonusDefence>
        <Monsters>
                <Generic attack="70" defence="30" health="80" speed="65" desc="Deformed
Ogre"/>

        </Monsters>
</Combat>

actionscript version: multiple functions are involved here.

Start a combat with your slaves maker and a monster.

attributes for Combat[edit]

resethealth
(OPTIONAL) true means your slave makers health is reset to full.

Otherwise their health stays the same from the last combat. Default true

startnow
(OPTIONAL) true, then the combat immediately starts, otherwise a Next

button is shown and the combat starts when it is pressed. Default false

element data for Combat[edit]

There are a series of subnodes detailing the events that happen after the combat and who is being fought, no actual element data.

<StartMessage>
a text string shown when the combat starts
<RunawayEvent>
if your slave maker flees this event is triggered
<WinEvent>
if your slave maker defeats the monster, this event is triggered
<LoseDamage>
if your slave maker fails due to health (ie hurt too much), this event is

triggered

<LoseLustEvent>
if your slave makers lust reaches maximum, this event is triggered
<BonusAttack>
a bonus added to your slave makers attack stat for this combat only
<BonusDefence>
a bonus added to your slave makers defence stat for this combat only
<Monsters>
A list is the monsters in the combat, valid nodes are
  • Tentacles
  • Demongirl
  • Zombie
  • Astrid
  • Generic
Each have attributes
attributes for monster types
attack
attack stat for the monster
defence
defence stat for the monster
health
health for the monster
speed
speed for the monster, lower the faster
desc
the name of the monster that appears during the combat

eg

<Combat resethealth='true' startnow='true'>
        <StartMessage>You advance to help the guards fight the deformed
creature...</StartMessage>
        <RunawayEvent>FarunRescueGetHelpBattleWonNoHelp</RunawayEvent>
        <WinEvent>FarunRescueGetHelpBattleWon</WinEvent>
        <LoseDamageEvent>FarunRescueGetHelpBattleLost</LoseDamageEvent>
        <LoseLustEvent>FarunRescueGetHelpBattleLost</LoseLustEvent>
        <BonusAttack>10</BonusAttack>
        <BonusDefence>10</BonusDefence>
        <Monsters>
                <Generic attack="70" defence="30" health="80" speed="65" desc="Deformed
Ogre"/>

        </Monsters>
</Combat>

ShowJob[edit]

<ShowJob>number</ShowJob>

actionscript version: ShowCustomJob(value);

Shows a custom job

attributes[edit]

no attributes

element data[edit]

job number 1, 2, 3

eg

<ShowJob>1</ShowJob>

HideJob[edit]

<HideJob>number</HideJob>

actionscript version: HideCustomJob(value);

Hides a custom job

attributes[edit]

no attributes

element data[edit]

job number 1, 2, 3

eg

<HideJob>1</HideJob>

ShowChore[edit]

<ShowChore>number</ShowChore>

actionscript version: ShowCustomChore(value);

Shows a custom chore

attributes[edit]

no attributes

element data[edit]

chore number 1, 2, 3

eg

<ShowChore>1</ShowChore>

HideChore[edit]

<HideChore>number</HideChore>

actionscript version: HideCustomChore(value);

Hides a custom chore

attributes[edit]

no attributes

element data[edit]

chore number 1, 2, 3

eg

<HideChore>1</HideChore>

ShowSchool[edit]

<ShowSchool>number</ShowSchool>

actionscript version: ShowCustomSchool(value);

Shows a custom school

attributes[edit]

no attributes

element data[edit]

school number 1, 2, 3

eg

<ShowSchool>1</ShowSchool>

HideSchool[edit]

<HideSchool>number</HideSchool>

actionscript version: HideCustomSchool(value);

Hides a custom school

attributes[edit]

no attributes

element data[edit]

school number 1, 2, 3

eg

<HideSchool>1</HideSchool>

ShowSex[edit]

<ShowSex>number</ShowSex>

actionscript version: ShowCustomSex(value);

Shows a custom sex act

attributes[edit]

no attributes

element data[edit]

sex number 1, 2

eg

<ShowSex>1</ShowSex>

HideSex[edit]

<HideSex>number</HideSex>

actionscript version: HideCustomSex(value);

Hides a custom sex act

attributes[edit]

no attributes

element data[edit]

sex act number 1, 2

eg

<HideSex>1</HideSex>

ChangeDate | UpdateDateAndItems[edit]

<ChangeDate>expression</ChangeDate>

actionscript version: UpdateDateAndItems(value);

Moves the game to the start of a later day, advancing by the noted number of days (1 for the next day).

attributes[edit]

no attributes

element data[edit]

number of days to advance

eg

<ChangeDate>1.5</ChangeDate>

ChangeTime[edit]

<ChangeTime>expression</ChangeTime>

actionscript version: AddTime(value);

Changes the time of day by the specified number of hours, or fraction there of.

attributes[edit]

no attributes

element data[edit]

number of hours to change, 0.5 = 30 minutes

eg

<ChangeTime>1.5</ChangeTime>

ShowCurrentFloor[edit]

<ShowCurrentFloor/>

actionscript version: HouseEvents.ShowCurrentFloor();

Shows the current floor map when exploring a building/location

no attributes or element data

HideCurrentFloor[edit]

<HideCurrentFloor/>

actionscript version: HouseEvents.HideCurrentFloor();

Hides the current floor map when exploring a building/location

no attributes or element data

StopExploring[edit]

<StopExploring/>

actionscript version: DoEvent(6999)

Shows the next button and stops the current exploration of a house/location. Planning will continue after

no attributes or element data

SetRoomExplored[edit]

<SetRoomExplored>expression</SetRoomExplored>

actionscript version: HouseEvents.SetRoomExplored(value);

Sets the specified room as explored and visible on the house map

attributes[edit]

no attributes

element data[edit]

room number to set as explored

eg

<SetRoomExplored>1</SetRoomExplored>

EnterRoom[edit]

<EnterRoom>expression</EnterRoom>

actionscript version: HouseEvents.EnterRoom(value);

Triggers the event associated with walking into the selected room, and then puts you into that room.

attributes[edit]

no attributes

element data[edit]

room number to enter

eg

<EnterRoom>1</EnterRoom>

SetCurrentRoom[edit]

<SetCurrentRoom>expression</SetCurrentRoom>

actionscript version: HouseEvents.SetCurrentRoom(value);

Teleports/puts you into the selected room. No events are tiggered, you are just there.

attributes[edit]

no attributes

element data[edit]

room number to now be in

eg

<SetCurrentRoom>1</SetCurrentRoom>

LockDoor[edit]

<LockDoor from='number' to='number'/>

actionscript version: HouseEvents.LockDoor(frm, to);

Locks a door between 2 rooms

attributes[edit]

from
the room the door leads from
to
to door the room leads to

element data[edit]

none

eg

<LockDoor from='1' to='2'/>

UnlockDoor[edit]

<UnlockDoor from='number' to='number'/>

actionscript version: HouseEvents.LockDoor(frm, to);

Unlocks a door between 2 rooms

attributes[edit]

from
the room the door leads from
to
to door the room leads to

element data[edit]

none

eg

<UnlockDoor from='1' to='2'/>

Exploration[edit]

<Exploration>
        <Room attributes/>
        <Door attributes/>
</Exploration>

actionscript version: multiple functions are involved here.

                var desc:String = "";
                var desc2:String = "";
                for (var attr:String in aNode.attributes) {
                        if (attr.toLowerCase() == "description") desc = aNode.attributes[attr];
                        else if (attr.toLowerCase() == "description2") desc2 =
aNode.attributes[attr];
                }
                HouseEvents.InitialiseExploration(desc, desc2);

                for (var dNode:XMLNode = aNode.firstChild; dNode != null; dNode =
dNode.nextSibling) {
                        str = dNode.nodeName.toLowerCase();
                        if (str == "room") {
                                type = 1;
                                xpos = 0;
                                ypos = 0;
                                rwidth = 60;
                                rheight = 60;
                                evt = undefined;
                                rot = 0;
                                desc = "";
                                for (var attr:String in dNode.attributes) {
                                        if (attr == "type") type = GetExpression(dNode.attributes[attr]);
                                        else if (attr == "xpos") xpos = GetExpression(dNode.attributes[attr]);
                                        else if (attr == "description") desc = dNode.attributes[attr];
                                        else if (attr == "ypos") ypos = GetExpression(dNode.attributes[attr]);
                                        else if (attr == "width") rwidth =
GetExpression(dNode.attributes[attr]);
                                        else if (attr == "height") rheight =
GetExpression(dNode.attributes[attr]);
                                        else if (attr == "event") evt = dNode.attributes[attr];
                                }
                                HouseEvents.AddRoomAndPosition(type, desc, evt, xpos, ypos, rwidth,
rheight, rot, false);

                        } else if (str == "door") {
                                xpos = 0;
                                rwidth = 5;
                                rheight = 20;
                                evt = undefined;
                                type = -1;
                                ypos = 0;
                                for (var attr:String in dNode.attributes) {
                                        if (attr == "from") xpos = GetExpression(dNode.attributes[attr]);
                                        else if (attr == "to") ypos = GetExpression(dNode.attributes[attr]);
                                        else if (attr == "dpos") type = GetExpression(dNode.attributes[attr]);
                                        else if (attr == "width") rwidth =
GetExpression(dNode.attributes[attr]);
                                        else if (attr == "height") rheight =
GetExpression(dNode.attributes[attr]);
                                        else if (attr == "event") evt = dNode.attributes[attr];
                                }
                                HouseEvents.AddDoorToRoom(xpos, ypos, type, rwidth, rheight, evt, false);
                        }
                }
                return true;

SetVar | SetVars[edit]

<SetVars attributes/>

actionscript version: multiple functions, but mainly just setting variables

ChangeVar | ChangeVars[edit]

<ChangeVars attributes/>

actionscript version: multiple functions, but mainly just setting variables

if (attr.substr(0, 3) == "var") {
        var idx:Number = Number(attr.substr(3));
        if (idx != NaN && idx != undefined && tempVars.length < idx) {
                for (var id:Number = tempVars.length; id < idx; id++) tempVars.push(0);
        }
        if (str == "setvar") tempVars[idx] = GetExpression(aNode.attributes[attr]);
        else tempVars[idx] += GetExpression(aNode.attributes[attr]);
} else if (attr == "idx") {
        var idx:Number = GetExpression(aNode.attributes[attr]);
        if (idx != NaN && idx != undefined && tempVars.length < idx) {
                for (var id:Number = tempVars.length; id < idx; id++) tempVars.push(0);
        }
        if (str == "setvar") tempVars[idx] = GetExpression(aNode.attributes[attr]);
        else tempVars[idx] += GetExpression(aNode.attributes[attr]);
} else {
                var val:Number = undefined;
                if (str == "changecustom" || str == "changevar"|| str == "changevars")
val = Number(GetStatSkill(attrl));
                if (val == undefined) val = 0;
                SetStatSkill(attrl, val + GetExpression(aNode.attributes[attr]),
aNode.attributes[attr]);
        }

AddParticipant[edit]

<AddParticipant attributes/>

actionscript version: multiple functions

ChangeParticipant[edit]

<ChangeParticipant attributes/>

actionscript version: multiple functions

var enable:Boolean = true;
        var owned:Boolean = false;
        var nm:String= GetXMLString("Name", statNode);

        for (var attr:String in aNode.attributes) {
                if (attr.toLowerCase() == "enable") enable =
aNode.attributes[attr].toLowerCase() == "true";
                else if (attr.toLowerCase() == "name") nm = aNode.attributes[attr];
                else if (attr.toLowerCase() == "owned") owned =
aNode.attributes[attr].toLowerCase() == "true";
        }
        if (nm == "") return;

        if (statNode == undefined) {
                statNode = aNode.firstChild;
                if (GetXMLString("Name", statNode) == "") statNode = GetMinorSlaveXML(nm);
        }

        var sdata:Slave = GetSlaveDetailsByName(nm);
        if (sdata == null) {
                sdata = new Slave(nm);
                sdata.SlaveIndex = SlavesArray.length;
                SpecialIndex = sdata.SlaveIndex;
                StartGameSlaveXML(statNode, sdata);
                SlavesArray.push(sdata);
        } else {
                if (sdata.SlaveType == -2 || sdata.SlaveType == -20) SpecialIndex =
sdata.SlaveIndex;
        }
        sdata.SlaveImage = GetXMLString("Image", statNode);
        if (owned) sdata.SlaveType = 0;
        else sdata.SlaveType = enable ? -20 : -2;
        sdata.ActInfoBase.LoadActImages(statNode);
        sdata.ActInfoBase.ActFolder = sdata.SlaveFolder;
        sdata.ActInfoCurrent = sdata.ActInfoBase;

ShowSpecialStat[edit]

<ShowSpecialStat>text</ShowSpecialStat>

actionscript version ShowSpecialStat("Femininity: ");

Show the custom/special stat for the slave so it is visible on the statistics screens

attributes[edit]

no attributes

element data[edit]

(OPTIONAL) the label of the special stat, it will default to the value

previously set, say in XML or by a previous call to this function.

eg

<ShowSpecialStat>Femininity: </ShowSpecialStat>

eg

<ShowSpecialStat/>

HideSpecialStat[edit]

<HideSpecialStat/>

actionscript version HideSpecialStat();

Hides the custom/special stat for the slave so it is not visible on the statistics screens. The stat can still be updated using <Points>

No attributes or element data.

EndEvent[edit]

<EndEvent/>

actionscript version: none

Stops all processing of an XML event. This is intended to simplify nesting in complex events. Once this statment is executed no further XML statements will be parsed.

attributes[edit]

handled
(OPTIONAL) The event will terminate and will be treated by the core game

as if the event had done the event. This is intended for limited cases where an XML event had done nothing except say <if> statements and you still wish to suppress the standard handling of a core game event. Rarely use with caution.

no element data

eg

<EndEvent'/>

ShowCustomHouse[edit]

<ShowCustomHouse>text</ShowCustomHouse>

actionscript version ShowCustomHouse();

Shows a custom house

attributes[edit]

no attributes

element data[edit]

the name of the house

eg

<ShowCustomHouse>Black Cave</ShowCustomHouse>

HideCustomHouse[edit]

<HideCustomHouse>text</HideCustomHouse>

actionscript version HideCustomContest();

Hides a custom house

attributes[edit]

no attributes

element data[edit]

the name of the house

eg

<HideCustomHouse>Black Cave</HideCustomHouse>

ShowCustomContest[edit]

<ShowCustomContest>boolean</ShowCustomContest>

actionscript version: ShowCustomContest();

Shows/Hides the custom contest for the slave

attributes[edit]

no attributes

element data[edit]

(OPTIONAL) true to show the contest, false to hide it. Defaults to true.

SetEnding[edit]

<SetEnding num='number'>text</SetEnding >

actionscript version: SetEnding(string, num);

During the end of training, sets the specific ending the slave gets

attributes[edit]

num
the ending number you wish to select, 30+ for custom endings

element data[edit]

The short description of the ending

eg

<SetEnding num='31'>Race Queen</SetEnding>

TrainingComplete[edit]

<TrainingComplete/>

actionscript version: SetEnding(string, num);

attributes[edit]

ending
(OPTIONAL) the ending number you wish to select, 30+ for custom endings
fulltime
(OPTIONAL) if true change the date to the scheduled end of training,

otherwise do not change

no element data

eg

<TrainingComplete full='false' ending='9003'/>

ChangeCombat[edit]

<ChangeCombat>expression</ChangeCombat>

actionscript version: ChangeCombat(value);

Changes the slave's custom combat skill

attributes[edit]

slave
(OPTIONAL) the slave/assistant to change. 'slavemaker' is not a valid

choice.

Defaults to your current slave

element data[edit]

amount to change

ChangeSwimming[edit]

<ChangeSwimming>expression</ChangeSwimming>

actionscript version: ChangeSwimming(value);

Changes the slave's skill in swimming

attributes[edit]

slave
(OPTIONAL) the slave/assistant to change. 'slavemaker' is not a valid

choice.

Defaults to your current slave

element data[edit]

amount to change

eg

<ChangeSwimming>0.1</ChangeSwimming>

ChangeCourtesan[edit]

<ChangeCourtesan>expression</ChangeCourtesan>

actionscript version: ChangeCourtesan(value);

Changes the slave's skill in being a courtesan

attributes[edit]

slave
(OPTIONAL) the slave/assistant to change. 'slavemaker' is not a valid

choice.

Defaults to your current slave

element data[edit]

amount to change

eg

<ChangeCourtesan>0.1</ChangeCourtesan>

ChangeFairyXF[edit]

<ChangeFairyXF>expression</ChangeFairyXF>

actionscript version: ChangeFairyXF(value);

Changes the slave's transformation as a fairy

attributes[edit]

slave
(OPTIONAL) the slave/assistant to change. 'slavemaker' is not a valid

choice.

Defaults to your current slave

element data[edit]

amount to change

ChangeSeduction[edit]

<ChangeSeduction>expression</ChangeSeduction>

actionscript version: ChangeSeduction(value);

Changes the slave's skill at seduction

attributes[edit]

slave
(OPTIONAL) the slave/assistant to change. 'slavemaker' is not a valid

choice.

Defaults to your current slave

element data[edit]

amount to change

ChangeSinging[edit]

<ChangeSinging>expression</ChangeSinging>

actionscript version: ChangeSinging(value);

Changes the slave's skill at singing

attributes[edit]

slave
(OPTIONAL) the slave/assistant to change. 'slavemaker' is not a valid

choice.

Defaults to your current slave

element data[edit]

amount to change

ChangeDancing[edit]

<ChangeDancing>expression</ChangeDancing>

actionscript version: ChangeDancing(value);

Changes the slave's skill at dancing

attributes[edit]

slave
(OPTIONAL) the slave/assistant to change. 'slavemaker' is not a valid

choice.

Defaults to your current slave

element data[edit]

amount to change

ChangeCatTraining[edit]

<ChangeCatTraining>expression</ChangeCatTraining>

actionscript version: ChangeCatTraining(value);

Changes the slave's training as a cat girl

attributes[edit]

slave
(OPTIONAL) the slave/assistant to change. 'slavemaker' is not a valid

choice.

Defaults to your current slave

element data[edit]

amount to change

ChangePonyTraining[edit]

<ChangePonyTraining>expression</ChangePonyTraining>

actionscript version: ChangePonyTraining(value);

Changes the slave's training as a ponygirl

attributes[edit]

slave
(OPTIONAL) the slave/assistant to change. 'slavemaker' is not a valid

choice.

Defaults to your current slave

element data[edit]

amount to change

Impregnate[edit]

<Impregnate/>

actionscript version: Impregnate() or SMImpregnate()

Impregnates the selected slave with a type of offspring

attributes[edit]

slave
(OPTIONAL) the slave/slavemaker/assistant to change.
Defaults to your current slave
type
(OPTIONAL) the type of being who impregnated your slave, default 'Tentacle'
count
(OPTIONAL) an expression, the number of offspring that will be born,

defaults to 1

gestation
(OPTIONAL) an expression, the number of days until birth. For Tentacles

this is 28 + a random number from 0 to 4

add
(OPTIONAL) an expression, adds an additional number of offspring,

intended for later impregnations.

Not 'realistic' but intended for special cases

no element data

eg your slave will give birth to a single tentacle spawn in 28 to 32 days

<Impregnate/>

eg your slave is impregnated again with an additional tentacle child, gestation period is 5 days longer

<Impregnate add='1' gestation='pregnancygestation + 5'/>

eg your slave maker will give birth to 3 orc children in 15 days

<Impregnate person='slavemaker' type='Orc' gestation='15' count='3'/>

eg another orc fucks your slave maker and another offspring is impregnated, and gestation increases 2 days

<Impregnate person='slavemaker' add='1'
gestation='pregnancygestation-slavemaker + 2'/>

eg Tifa will give birth to dark elf twins in 13 to 25 days

<Impregnate slave='Tifa' type='Dark Elf' gestation='13 + random12'
count='2'/>

AddSpeechSuffix[edit]

<AddSpeechSuffix attributes/>

actionscript version: AddSpeechSuffix()

Adds a suffix to any text the slave says

attributes[edit]

slave
(OPTIONAL) the slave/assistant to change. 'slavemaker' is not a valid

choice.

Defaults to your current slave
chance
(OPTIONAL) the percentage chance the suffix is added, defaults to always

(100%)

element data[edit]

the suffix

eg

<AddSpeechSuffix chance='50%'>Desu</AddSpeechSuffix>

eg

<AddSpeechSuffix slave='Akane' chance='50%'>Idiot!</AddSpeechSuffix>

PlaySound[edit]

<PlaySound>text</PlaySound>

actionscript version: PlaySound(text)

Plays a sound effect, either a standard sound effect or an external mp3 sound file.

attributes[edit]

stop
(OPTIONAL) true and it will stop playing all sounds first
vol
(OPTIONAL) volume level for the sound, a percentage of the maximum value.

Defaults to 100

repeats
(OPTIONAL) repeat the sound effect this many times, does not apply for

mp3 sounds

count
(OPTIONAL) special value for 'fucking' and 'moaning' specifies how many

of aid effect play simultanously

delay
(OPTIONAL) a delay in milliseconds to delay before playing the sound effect

element data[edit]

(OPTIONAL) The name of the standard sound effect, or the filename of the

mp3 file to play. Only optional if you specify the stop attribute

eg

<PlaySound>Frying</PlaySound>
<PlaySound stop='true'>Sounds/Forest.mp3</PlaySound>
<PlaySound count='2'>Fucking</PlaySound>
<PlaySound stop='true'/>

For[edit]

<For>
</For>

actionscript version: for(var loop:Number=start; loop < end; loop += inc) { }

Performs a loop, using an index loop from start to end value, incrementing as selected. Please take care of creating infinite loops that will hang the game.

attributes[edit]

start
(OPTIONAL) the starting loop value. An expression, defaults to 0
end
(OPTIONAL) the ending loop value. An expression that the loop variable

will always be less than. This value will never be encountered in the loop, defaults to 0 eg

                 for(var loop:Number=start; loop < end; loop += inc) { }

for statements are only executed when loop is less than end

inc
(OPTIONAL) amount to increment the start value by, defaults to 1.

element data[edit]

The statements to execute in the loop

eg

<For start='0' end='#participanttotal'>
     <GetParticipantDetails/>
     <AddText>#person moves towards #slave....</AddText>
</For>

<syntaxhighlight lang="xml" enclose="div">
<For start='0' end='10' inc='2'>
         <AddText>Looping, current loop is #loop</AddText>
</For>

While[edit]

<While>
</While>

actionscript version: while

Loops, similar to the for loop above but loops based on an XML comditional. All attributes are the xml conditional that must evalulate to true for the loop to continue

eg

<While time='12-'>
        <AddText>Time passes, it is now #displaytime</AddText>
        <AddTime>0.5</AddTime>
</While>

GetParticipantDetails[edit]

<GetParticipantDetails>text</GetParticipantDetails>

actionscript version: GetParticipantDetails()

Sets the variables

  • PersonIndex
  • PersonName
  • PersonGender
  • PersonHeShe
  • PersonHimHer
  • PersonHisHer

and the macros

  • #person
  • #personheshe
  • #personhisher
  • #personhimher

based on the participant of the current sex act. You specify the 0 based index of the participant to set. If the value is not specified and you are calling this in a loop of a <For> or <While> statement, then participant matching the loop is selected

attributes[edit]

none

element data[edit]

(OPTIONAL) the participant, defaults to the loop index. If not in a loop

and it is omitted then nothing happens.

eg

<GetParticipantDetails>0</GetParticipantDetails>

eg

<For start='0' end='#participanttotal'>
     <GetParticipantDetails/>
     <AddText>#person moves towards #slave....</AddText>
</For>

SetPersonDetails[edit]

<SetPersonDetails>text</SetPersonDetails>

actionscript version: several functions involved

Sets various information for an NPC, like Lady Farun. Similar effects can be gained using <SetFlags>, notably for the smflag, custom1, custom2, personflag attributes.

attributes[edit]

person
the person to alter
met
(OPTIONAL) sets the person as having been met (or resets)
available
(OPTIONAL) the person is available
visited
(OPTIONAL) the person has been visited today, and cannot be visited again
doneinitialvisit
(OPTIONAL) the person has been visited for the first time
unavailable
(OPTIONAL) the person is unavailable to be visited or loaned to for this

many days, 0 to re-enable

smflag
(OPTIONAL) sets a value for the SMFlag property. Values are person dependent
custom1
(OPTIONAL) sets a value for the Custom1 property. Values are person

dependent

custom2
(OPTIONAL) sets a value for the Custom2 property. Values are person

dependent

personflag
(OPTIONAL) sets a value for the PersonFlag property.
Values are person dependent, but commonly is the amount of reputation

gained by visiting them

no element data

eg

<SetPersonDetails person="ladyfarun" met='true'/>


<<first <prev SDK/Core - XML Events - Statements next> last>>