Player: Difference between revisions

From SkyCorp Global
Jump to navigation Jump to search
No edit summary
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Public Methods ==
== Static Methods ==


=== static Player getInstance() ===
=== static Player getInstance() ===
Get the instance of the Player class.
Get the instance of the Player class.
== Public Methods ==


=== string getDickSizeString() ===
=== string getDickSizeString() ===
Line 16: Line 17:
Player's dick size, in inches.  0 = no dick
Player's dick size, in inches.  0 = no dick


=== deleteItem ===
=== void deleteItem([[Entity]] entityToDelete) ===
Deletes a held item.


=== getName ===
=== string getName() ===
Gets player's name.


=== isInInventory ===
=== boolean isInInventory([[Entity]] entityToCheck) ===
Is entityToCheck in player's inventory currently?


=== number getVaginaSize() ===
=== number getVaginaSize() ===
Line 70: Line 74:
Sets dick size (in inches), with no text output to screen
Sets dick size (in inches), with no text output to screen


=== location getLocation() ===
=== [[Location]] getLocation() ===
Returns players current location
Returns players current location


=== boolean pickupItem(entity entityToPickUp) ===
=== void setLocation([[Location]] location) ===
Sets players new location.  Note that no transition is displayed to player, nor does this (currently) fire any room transition events to inform entities that the player just entered this location.
 
(Added in r26)
 
=== boolean pickupItem([[Entity]] entityToPickUp) ===
This is the main function to call to try adding an item to the player's inventory.  
This is the main function to call to try adding an item to the player's inventory.  


Line 80: Line 89:
Returns if item was picked up
Returns if item was picked up


=== void forcePickupItemSilent(entity entityToPickUp) ===
=== void forcePickupItemSilent([[Entity]] entityToPickUp) ===
Forces an item into inventory -- ignores inventory size limit, pickup restrictions, etc.
Forces an item into inventory -- ignores inventory size limit, pickup restrictions, etc.


=== void pickupItemOrDropToGround(entity entityToPickup) ===
=== void pickupItemOrDropToGround([[Entity]] entityToPickup) ===
Attempts to add item to player inventory.  If it can't be added, then the item drops to ground at player's feet
Attempts to add item to player inventory.  If it can't be added, then the item drops to ground at player's feet


Line 89: Line 98:
How many items player is carrying -- does NOT include clothing/worn items.
How many items player is carrying -- does NOT include clothing/worn items.


=== void dropAllInventoryToMapRoom(string mapName, int mapRoomID) ===
=== void dropAllInventoryToMapRoom(string mapName, int mapRoomID, [bool removeTattoosAndPiercings]) ===
Drops ALL items in the player's inventory into the target map room ID
Drops ALL items in the player's inventory into the target map room ID.
 
In r38+, an optional third parameter is available to set whether tattoos and piercings should also be removed.


=== boolean isInInventoryString(entity entityToCheck) ===
=== boolean isInInventoryString(string entityName) ===
Is the target object in player inventory currently?
Is the target object in player inventory currently?


=== entity getInventoryItemByString(string entityName) ===
=== [[Entity]] getInventoryItemByString(string entityName) ===
Return the named item (or null, if item name is not in inventory)
Return the named item (or null, if item name is not in inventory)


Line 101: Line 112:
Delete by item's title in inventory
Delete by item's title in inventory


=== boolean dropItem(entity entityToDrop) ===
=== boolean dropItem([[Entity]] entityToDrop) ===
This is the main function to call to try dropping an item out of the player's inventory.  
This is the main function to call to try dropping an item out of the player's inventory.  


Line 108: Line 119:
A message will be shown to the player describing the success or failure
A message will be shown to the player describing the success or failure


=== causeDamage ===
=== boolean dropItemForceSilent([[Entity]] entityToDrop) ===
Will silently drop the target item to ground -- regardless of cursed status.
 
=== void causeDamage(int damageAmount) ===
Cause damage to player of damageAmount
 
=== int getPlayerAttackDamagePhysical() ===
How much damage the player causes to monsters.  You probably don't need to access this -- usually let existing monster mod system handle combat.
 
=== int getPlayerAttackDamageLust() ===
How much damage the player causes to monsters.  You probably don't need to access this -- usually let existing monster mod system handle combat.
 
=== int getAcceptance() ===
Returns player's current acceptance level
 
=== void setAcceptance(int newAcceptanceLevel) ===
Sets player's acceptance level to something new.
 
=== void incAcceptance(int amount) ===
Increases player's acceptance by amount


=== getPlayerAttackDamagePhysical ===
=== void decAcceptance(int amount) ===
Decreases player's acceptance by amount


=== getPlayerAttackDamageLust ===
=== boolean isCovered(string clothingSlot) ===
Checks to see if the target clothing slot is covered with an article of clothing that will conceal TFs


=== getAcceptance ===
Some clothing does NOT conceal TFs (like Lizland bindings)


=== setAcceptance ===
=== int getExposure() ===
How exposed is player?
* < 30 totally safe
* 30 ~ 100 suspicious, will catch looks but is still (currently) safe in public overworld areas
* > 100 guaranteed exposure


=== incAcceptance ===
=== boolean getTotallyHuman() ===
Is player 100% human?


=== decAcceptance ===
=== void setTotallyHuman() ===
Become human - no text output to screen


=== isCovered ===
=== void setToStartingCharacteristics() ===
Silently reset player to their starting characteristics, including human and body type


=== getExposure ===
=== void setMaleSilent() ===
Player silently becomes male


=== getTotallyHuman ===
=== boolean tfMakeVagina() ===
Attempts TF.  Returns true if player is given a vagina, otherwise player already has one


=== setTotallyHuman ===
=== boolean tfVaginaSmaller() ===
Attempts TF.  Returns true if player's vagina size decreases, otherwise already has no vagina.


=== setToStartingCharacteristics ===
=== boolean tfVaginaLarger(bool silent=false) ===
Attempts TF.  Returns true if player's vagina size increases, otherwise already has max size vagina.


=== setMaleSilent ===
Silent parameter will make the transformation not display any output on screen.


=== tfMakeVagina ===
=== void setVaginaSize(int vaginaSize) ===
Silently set vagina to target size


=== tfVaginaSmaller ===
=== boolean getMonsterVagina() ===
Does player have a monstrously sized vagina?  (With a monster vagina, players can't climax without receiving monster-sized dick)


=== tfVaginaLarger ===
=== void resetLust() ===
Reset lust, display message


=== setVaginaSize ===
=== void resetLustSilent() ===
Reset lust, don't display message


=== monsterVagina ===
=== void resetLustButNotMilk() ===
Reset lust, display message


=== resetLust ===
=== int getLust() ===
Returns player lust level


=== resetLustSilent ===
=== void incLust(int amount, bool silent=false) ===
Increases player lust by amount


=== resetLustButNotMilk ===
Silent parameter (optional) will make the transformation not display any output on screen.


=== getLust ===
=== void decLust(int amount) ===
Decreases player lust by amount


=== incLust ===
=== string getSomethingToPlayWith() ===
Gets an action that player or another character could perform against player, depending on what bits they have.


=== decLust ===
examples:
* "brushing up against your average B-cup boobs"
* "rubbing your large member"
Fairly limited set of generated actions, so use sparingly.


=== getSomethingToPlayWith ===
=== boolean hasArms() ===
Does the player have arms?


=== hasArms ===
=== boolean hasLegs() ===
Does the player have legs?


=== hasLegs ===
=== boolean hasUselessHands() ===
The player has hands, but they're useless (ie, cow hoof hands)


=== hasUselessHands ===
=== void incBellyFat(int amount, bool hyper=false) ===
Increases player's overweightedness, outputs appropriate description text.  Outputs one line of text, no newlines.  May not output anything if change was not dramatic enough.


=== incOverweight ===
Intended for use with weight TF, pregnancy TF should use pregnancy functions!


=== decOverweight ===
Optional hyper mode will allow overweight to increase beyond normal limits, which can cause player to get stuck.


=== getOverweight ===
=== void decBellyFat(int amount) ===
Decreases player's overweightedness, outputs appropriate description text.  Outputs one line of text, no newlines.  May not output anything if change was not dramatic enough.
 
Intended for use with weight TF, pregnancy TF should use pregnancy functions!
 
=== int getBellyFat() ===
Gets how many pounds of weight on player's belly is caused by fat / how heavy the belly is due to fat.  This is independent of any preg (usually you should use getBellyTotalWeight!)  0 = perfectly thin, 100 or more = huge.
 
Note that while only belly fat is tracked, it's considered representative of the overall overweightedness of a character.  So increasing belly fat will cause arms to get flabby, etc.


=== incBellyPreg ===
=== incBellyPreg ===
''(introduced in r35)''
Increases size of player's belly, outputs appropriate description text (due to pregnancy).  Outputs one line of text, no newlines.
Does not actually cause player to become pregnant if they are not already.


=== setBellyPreg ===
=== setBellyPreg ===
''(introduced in r35)''
Sets belly size.  One line text description of the TF, no newlines.
Does not actually cause player to become pregnant if they are not already.
=== int getBellyTotalWeight() ===
Gets how heavy the belly is over a normal weight.  0 thin-100 overweight (or more!)
This is typically the function it is recommended to use when checking player's weight (ex: mobility flavor text, etc)
Usually, this will get the larger of players fat (bellyFat) value or their pregnancy weight value.  However, players MAY have enabled to combine these two numbers for added difficulty.  To check only fat, use getBellyFatOnly()
=== string getBellyDescription() ===
A few word description of the player's belly (includes both preg & weight factors)
ex: "20 lb noticeably bulging belly"
=== int getBellyPreg() ===
0<->100 size of belly due to pregnancy.  0 = perfectly thin.  100=huge.  Also an indication of stage of preg.
(usually when checking player belly size, you should use getCombinedBellySize!)
=== int getHP() ===
Returns health points.  0 = dead
=== int getHPMax() ===
Returns the highest player HP can reach.  Increases on level up.
=== void heal(int amount) ===
Heal player by amount.  Won't go over HP Max
=== int getLevel() ===
Returns player's current level
=== int getCash() ===
Returns player's available cash
=== void addCash(int amount) ===
Outputs a note that cash was added, and adds cash
=== boolean removeCash(int amount) ===
Deducts amount cash if the player has it and returns true, else returns false. 
This can be useful for shops, transactions, etc (only deducts if whole amount is there)
=== string getHeightString() ===
example: 6' 1"
=== boolean tfHeightTaller(int amount) ===
Increase height by number of inches
Returns true if any TF took place
=== boolean tfHeightShorter(int amount) ===
Decrease height by number of inches
Returns true if any TF took place
=== boolean tfHeightTowards(int targetHeightInches) ===
Shortcut function to move player's height towards a desired height


=== getCombinedBellySize ===
Returns true if any TF took place


=== getBellyDescription ===
=== void incMilkProduction(number amount) ===
Increases milk production, as long as player is not at max


=== getBellyPreg ===
Will do nothing if player has neither breasts nor udder


=== getHP ===
Will output text to player describing increase (no newline)


=== getHPMax ===
=== void decMilkProduction(number amount) ===
Decreases milk production


=== heal ===
Will do nothing if player has neither breasts nor udder


=== getLevel ===
Will output text to player describing decrease (no newline)


=== getCash ===
=== number getMilkProduction() ===
Amount of milk to produce every tick(0~20).  More than 10 is considered overdrive.


=== addCash ===
=== string getUdderDescription() ===
Descriptive text of udder (indicates size)


=== removeCash ===
Ex: "large basketball-sized udder"


=== getHeightString ===
=== number getUdderMilk() ===
0 = no udder, 1 = no milk <-> 100 = totally full of milk


=== tfHeightTaller ===
=== boolean hasUdder() ===
Does player have an udder?


=== tfHeightShorter ===
=== void createUdder() ===
If player does not already have an udder, create one for them along with a small basic amount of milk production.  Output relevant text.


=== tfHeightTowards ===
=== void removeUdder() ===
Removes udder from player along with a note.


=== incMilkProduction ===
=== void resetMilkSilent() ===
If lactating, reset ALL milk so player doesn't immediately have to give milk.  It will re-fill over time if player has milk production.  This is called after losing a fight, etc).


=== decMilkProduction ===
=== void resetBreastMilkSilent() ===
If lactating, reset milk so player doesn't immediately have to give milk (breast).  It will re-fill over time if player has milk production.


=== getMilkProduction ===
=== void resetUdderMilkSilent() ===
If lactating, reset milk so player doesn't immediately have to give milk (udder).  It will re-fill over time if player has milk production.


=== getUdderDescription ===
=== number getBreastMilk() ===
0 or 1 = no milk <-> 100 = totally full of milk


=== getUdderMilk ===
=== boolean isAbleToExercise() ===
Player can exercise once per day (too much is tiring)


=== hasUdder ===
=== boolean attemptExercise(int decreaseOverweightBy) ===
If player has not yet exercised today, they can attempt an exercise activity.


=== createUdder ===
=== void resetExercise() ===
Call after rest to allow for exercising


=== removeUdder ===
=== boolean isAbleToWatchTV() ===
TVs and similar activities can be useful to help player reduce acceptance.  Player can watch TV once per day.


=== resetMilkSilent ===
=== void setIsAbleToWatchTV(boolean isAbletoWatchTV) ===
TVs and similar activities can be useful to help player reduce acceptance.  Player can watch TV once per day.


=== resetBreastMilkSilent ===
=== void setBreastRows(int breastRows) ===
Immediately change # of breast rows without outputing additional text.  1 is normal for both male & female


=== resetUdderMilkSilent ===
=== boolean tfIncBreastRows() ===
Add a row of breasts and output appropriate descriptive text (does not include linebreak)


=== getBreastMilk ===
=== boolean tfDecBreastRows() ===
Remove a row of breasts and output appropriate descriptive text (does not include linebreak)


=== isAbleToExercise ===
=== boolean getInHeat() ===
Returns true if player is a species type which can go into heat and they are currently in heat.


=== attemptExercise ===
=== boolean getIsAllFours() ===
Is player moving around on all fours/eights (horizontal walking instead of upright/standing walk)?


=== resetExercise ===
Generally this is due to the leg joints of the player changing


=== isAbleToWatchTV ===
=== void triggerInseminationChance() ===
Should be called whenever the player receives sperm vaginally.  Depending on player's fertility / species, they may get knocked up from this call.


=== setIsAbleToWatchTV ===
=== boolean getWristsBound() ===
Are the players wrists bound?  This will limit options such as pick-up, drop, and masturbate.


=== setBreastRows ===
=== boolean hasAlternateVoice() ===
With a non-human voice, players will have difficulty communicating with humans.


=== tfIncBreastRows ===
This indicates a voice that is so distorted, that it is impossible to understand (not just vocal modifiers)


=== tfDecBreastRows ===
=== string getAlternateVocal() ===
If the player has a non-human voice, what kind of noise do they make when trying to communicate?


=== getInHeat ===
=== void setHeightSilent(int height) ===
Sets new player height, in inches.  No text output to screen, and does not perform normal bounds checking.


=== getIsAllFours ===
=== boolean hasClothing(string slot) ===
''(Introduced in r25)''


=== checkPlayerMobile ===
Is player wearing anything in that clothing slot?


=== triggerInseminationChance ===
=== [[Clothing]] getClothing(string slot) ===
''(Introduced in r25)''


=== getWristsBound ===
Get what player wearing anything in that [[clothing slot]].  May be null


=== hasAlternateVoice ===
=== void resetPregnancySilent() ===
(Introduced in r35)


=== getAlternateVocal ===
If pregnant, scale back pregnancy a little so we don't immediately have to lay eggs (Call after losing a fight, etc)


== Example Code ==
== Example Code ==
[[Dick Size Increaser]]
[[Dick Size Increaser]]
[[Category:LUA Class Reference]]
[[Category:LUA Class Reference]]

Latest revision as of 05:26, 22 June 2024

Static Methods

static Player getInstance()

Get the instance of the Player class.

Public Methods

string getDickSizeString()

Get string representation of player's dick size

void tfDickLarger()

Increase the size of player's dick. This outputs text to screen.

number getHeight()

Player's height, in inches

number getDickSize()

Player's dick size, in inches. 0 = no dick

void deleteItem(Entity entityToDelete)

Deletes a held item.

string getName()

Gets player's name.

boolean isInInventory(Entity entityToCheck)

Is entityToCheck in player's inventory currently?

number getVaginaSize()

In inches. 0 = no vagina

string getVaginaSizeString()

A string representation of the player's vagina, ie: "large slit"

If no vagina (size 0), returns ""

Sizes 7+ are monstrous vaginas -- can check this via getMonsterVagina()

number getWeight()

Returns weight where 0 thin-100 obese.

Will get the larger of either players 'overweight' value (fat) or their pregnancy weight value

string getWeightString()

ie, "lean", "heavy", "obese", etc

This ONLY refers to fat.

int getBreastRows()

Number of rows.  1 is normal for male and female

int getBreastSize()

0 = none, 1 = AA, 2 = A, 3= B, 4=C, 5=D, ...

string getBreastSizeString

String representation of player's breast size, ie "large D-cup hooters"

No breasts will return ""

void tfBreastsLarger(boolean silent)

Increases size of breasts.

silent: If true, does not output TF text to screen.

void tfBreastsSmaller()

Decreases size of breasts.  Outputs TF text to screen.

void tfDickLarger()

Increases size of dick (max size via this function is 13).  Outputs TF text to screen.  Player's lust increases by 20.

void tfDickSmaller()

Decreases size of dick (down to no dick).  Outputs TF text to screen.

void setDickSize (int dickSize)

Sets dick size (in inches), with no text output to screen

Location getLocation()

Returns players current location

void setLocation(Location location)

Sets players new location. Note that no transition is displayed to player, nor does this (currently) fire any room transition events to inform entities that the player just entered this location.

(Added in r26)

boolean pickupItem(Entity entityToPickUp)

This is the main function to call to try adding an item to the player's inventory.

Attempts adding a particular item to the player's inventory.  Will fail if inventory is full or there is already a clothing item in the particular slot.  A message will be shown to the player describing the success or failure

Returns if item was picked up

void forcePickupItemSilent(Entity entityToPickUp)

Forces an item into inventory -- ignores inventory size limit, pickup restrictions, etc.

void pickupItemOrDropToGround(Entity entityToPickup)

Attempts to add item to player inventory. If it can't be added, then the item drops to ground at player's feet

int getCurrentInventorySize()

How many items player is carrying -- does NOT include clothing/worn items.

void dropAllInventoryToMapRoom(string mapName, int mapRoomID, [bool removeTattoosAndPiercings])

Drops ALL items in the player's inventory into the target map room ID.

In r38+, an optional third parameter is available to set whether tattoos and piercings should also be removed.

boolean isInInventoryString(string entityName)

Is the target object in player inventory currently?

Entity getInventoryItemByString(string entityName)

Return the named item (or null, if item name is not in inventory)

void deleteInventoryString(string entityName)

Delete by item's title in inventory

boolean dropItem(Entity entityToDrop)

This is the main function to call to try dropping an item out of the player's inventory.

Will fail if item is nonexistent, or item's check function fails (ie: cursed).

A message will be shown to the player describing the success or failure

boolean dropItemForceSilent(Entity entityToDrop)

Will silently drop the target item to ground -- regardless of cursed status.

void causeDamage(int damageAmount)

Cause damage to player of damageAmount

int getPlayerAttackDamagePhysical()

How much damage the player causes to monsters. You probably don't need to access this -- usually let existing monster mod system handle combat.

int getPlayerAttackDamageLust()

How much damage the player causes to monsters. You probably don't need to access this -- usually let existing monster mod system handle combat.

int getAcceptance()

Returns player's current acceptance level

void setAcceptance(int newAcceptanceLevel)

Sets player's acceptance level to something new.

void incAcceptance(int amount)

Increases player's acceptance by amount

void decAcceptance(int amount)

Decreases player's acceptance by amount

boolean isCovered(string clothingSlot)

Checks to see if the target clothing slot is covered with an article of clothing that will conceal TFs

Some clothing does NOT conceal TFs (like Lizland bindings)

int getExposure()

How exposed is player?

  • < 30 totally safe
  • 30 ~ 100 suspicious, will catch looks but is still (currently) safe in public overworld areas
  • > 100 guaranteed exposure

boolean getTotallyHuman()

Is player 100% human?

void setTotallyHuman()

Become human - no text output to screen

void setToStartingCharacteristics()

Silently reset player to their starting characteristics, including human and body type

void setMaleSilent()

Player silently becomes male

boolean tfMakeVagina()

Attempts TF. Returns true if player is given a vagina, otherwise player already has one

boolean tfVaginaSmaller()

Attempts TF. Returns true if player's vagina size decreases, otherwise already has no vagina.

boolean tfVaginaLarger(bool silent=false)

Attempts TF. Returns true if player's vagina size increases, otherwise already has max size vagina.

Silent parameter will make the transformation not display any output on screen.

void setVaginaSize(int vaginaSize)

Silently set vagina to target size

boolean getMonsterVagina()

Does player have a monstrously sized vagina? (With a monster vagina, players can't climax without receiving monster-sized dick)

void resetLust()

Reset lust, display message

void resetLustSilent()

Reset lust, don't display message

void resetLustButNotMilk()

Reset lust, display message

int getLust()

Returns player lust level

void incLust(int amount, bool silent=false)

Increases player lust by amount

Silent parameter (optional) will make the transformation not display any output on screen.

void decLust(int amount)

Decreases player lust by amount

string getSomethingToPlayWith()

Gets an action that player or another character could perform against player, depending on what bits they have.

examples:

  • "brushing up against your average B-cup boobs"
  • "rubbing your large member"

Fairly limited set of generated actions, so use sparingly.

boolean hasArms()

Does the player have arms?

boolean hasLegs()

Does the player have legs?

boolean hasUselessHands()

The player has hands, but they're useless (ie, cow hoof hands)

void incBellyFat(int amount, bool hyper=false)

Increases player's overweightedness, outputs appropriate description text.  Outputs one line of text, no newlines.  May not output anything if change was not dramatic enough.

Intended for use with weight TF, pregnancy TF should use pregnancy functions!

Optional hyper mode will allow overweight to increase beyond normal limits, which can cause player to get stuck.

void decBellyFat(int amount)

Decreases player's overweightedness, outputs appropriate description text.  Outputs one line of text, no newlines.  May not output anything if change was not dramatic enough.

Intended for use with weight TF, pregnancy TF should use pregnancy functions!

int getBellyFat()

Gets how many pounds of weight on player's belly is caused by fat / how heavy the belly is due to fat. This is independent of any preg (usually you should use getBellyTotalWeight!) 0 = perfectly thin, 100 or more = huge.

Note that while only belly fat is tracked, it's considered representative of the overall overweightedness of a character. So increasing belly fat will cause arms to get flabby, etc.

incBellyPreg

(introduced in r35)

Increases size of player's belly, outputs appropriate description text (due to pregnancy).  Outputs one line of text, no newlines.

Does not actually cause player to become pregnant if they are not already.

setBellyPreg

(introduced in r35)

Sets belly size.  One line text description of the TF, no newlines.

Does not actually cause player to become pregnant if they are not already.

int getBellyTotalWeight()

Gets how heavy the belly is over a normal weight. 0 thin-100 overweight (or more!)

This is typically the function it is recommended to use when checking player's weight (ex: mobility flavor text, etc)

Usually, this will get the larger of players fat (bellyFat) value or their pregnancy weight value. However, players MAY have enabled to combine these two numbers for added difficulty. To check only fat, use getBellyFatOnly()

string getBellyDescription()

A few word description of the player's belly (includes both preg & weight factors)

ex: "20 lb noticeably bulging belly"

int getBellyPreg()

0<->100 size of belly due to pregnancy.  0 = perfectly thin.  100=huge.  Also an indication of stage of preg.

(usually when checking player belly size, you should use getCombinedBellySize!)

int getHP()

Returns health points. 0 = dead

int getHPMax()

Returns the highest player HP can reach. Increases on level up.

void heal(int amount)

Heal player by amount. Won't go over HP Max

int getLevel()

Returns player's current level

int getCash()

Returns player's available cash

void addCash(int amount)

Outputs a note that cash was added, and adds cash

boolean removeCash(int amount)

Deducts amount cash if the player has it and returns true, else returns false. 

This can be useful for shops, transactions, etc (only deducts if whole amount is there)

string getHeightString()

example: 6' 1"

boolean tfHeightTaller(int amount)

Increase height by number of inches

Returns true if any TF took place

boolean tfHeightShorter(int amount)

Decrease height by number of inches

Returns true if any TF took place

boolean tfHeightTowards(int targetHeightInches)

Shortcut function to move player's height towards a desired height

Returns true if any TF took place

void incMilkProduction(number amount)

Increases milk production, as long as player is not at max

Will do nothing if player has neither breasts nor udder

Will output text to player describing increase (no newline)

void decMilkProduction(number amount)

Decreases milk production

Will do nothing if player has neither breasts nor udder

Will output text to player describing decrease (no newline)

number getMilkProduction()

Amount of milk to produce every tick(0~20). More than 10 is considered overdrive.

string getUdderDescription()

Descriptive text of udder (indicates size)

Ex: "large basketball-sized udder"

number getUdderMilk()

0 = no udder, 1 = no milk <-> 100 = totally full of milk

boolean hasUdder()

Does player have an udder?

void createUdder()

If player does not already have an udder, create one for them along with a small basic amount of milk production.  Output relevant text.

void removeUdder()

Removes udder from player along with a note.

void resetMilkSilent()

If lactating, reset ALL milk so player doesn't immediately have to give milk. It will re-fill over time if player has milk production. This is called after losing a fight, etc).

void resetBreastMilkSilent()

If lactating, reset milk so player doesn't immediately have to give milk (breast). It will re-fill over time if player has milk production.

void resetUdderMilkSilent()

If lactating, reset milk so player doesn't immediately have to give milk (udder). It will re-fill over time if player has milk production.

number getBreastMilk()

0 or 1 = no milk <-> 100 = totally full of milk

boolean isAbleToExercise()

Player can exercise once per day (too much is tiring)

boolean attemptExercise(int decreaseOverweightBy)

If player has not yet exercised today, they can attempt an exercise activity.

void resetExercise()

Call after rest to allow for exercising

boolean isAbleToWatchTV()

TVs and similar activities can be useful to help player reduce acceptance. Player can watch TV once per day.

void setIsAbleToWatchTV(boolean isAbletoWatchTV)

TVs and similar activities can be useful to help player reduce acceptance. Player can watch TV once per day.

void setBreastRows(int breastRows)

Immediately change # of breast rows without outputing additional text. 1 is normal for both male & female

boolean tfIncBreastRows()

Add a row of breasts and output appropriate descriptive text (does not include linebreak)

boolean tfDecBreastRows()

Remove a row of breasts and output appropriate descriptive text (does not include linebreak)

boolean getInHeat()

Returns true if player is a species type which can go into heat and they are currently in heat.

boolean getIsAllFours()

Is player moving around on all fours/eights (horizontal walking instead of upright/standing walk)?

Generally this is due to the leg joints of the player changing

void triggerInseminationChance()

Should be called whenever the player receives sperm vaginally. Depending on player's fertility / species, they may get knocked up from this call.

boolean getWristsBound()

Are the players wrists bound?  This will limit options such as pick-up, drop, and masturbate.

boolean hasAlternateVoice()

With a non-human voice, players will have difficulty communicating with humans.

This indicates a voice that is so distorted, that it is impossible to understand (not just vocal modifiers)

string getAlternateVocal()

If the player has a non-human voice, what kind of noise do they make when trying to communicate?

void setHeightSilent(int height)

Sets new player height, in inches. No text output to screen, and does not perform normal bounds checking.

boolean hasClothing(string slot)

(Introduced in r25)

Is player wearing anything in that clothing slot?

Clothing getClothing(string slot)

(Introduced in r25)

Get what player wearing anything in that clothing slot.  May be null

void resetPregnancySilent()

(Introduced in r35)

If pregnant, scale back pregnancy a little so we don't immediately have to lay eggs (Call after losing a fight, etc)

Example Code

Dick Size Increaser