Skip to main content

Character

The Character class is used to create and manipulate characters.

id: String

name: String

description: String

naked: bool

dick: bool

outfit: Outfit

outfits: Object

scale: float = 1.0

experience: float

totalFucked: int

fuckedToday: int

hp: float

sp: float

unlocked: bool

# res://characters/Queen.gd
extends Character

func _init().("Queen", "Queen"):
age = "26"
height = "5'5'' (165cm)"
description = "Queen started her career as a waitress, but learned early on that customers would give her more tips if she let them touch her body. Queen was the reason why boys would come to the restaurant she worked in, until she was caught by her boss and fired. Now, she runs her own brothel. Queen excels in giving blowjobs and titfucks because they were the easiest positions for her to do while working as a waitress."
setBaseStats(
{
"hp": 30,
"defense": 10,
"damage": 7,
"attackRate": 1,
"recovery": 0.7,
"throat": 80,
"tits": 30,
"pussy": 15,
"anal": 10,
}
)

addOutfit("University", "University Uniform", "A uniform for Easthollow University, which has been slightly modified to have a shorter skirt.", false, "newGame", 300)
addOutfit("Basketball", "Basketball Jersey", "A jersey for the Easthollow University basketball team. Go Cocks!", false, "queenBasketballTellCassie", 100)
addOutfit("Art", "Art Teacher", "An outfit for when Queen needs to help Jada's art class.", false, "queenArtClassGetOutfit", 200)
addOutfit("Forest", "Greenhaven", "An outfit made based off of the design of the Greenhaven folk.", false, "hornyBorisBossBattle", 150)
addOutfit("Mud1", "Mud", "An 'outfit' made to help fit in with the goblins.", false, "findMushroomsBossBattle", 250)
addOutfit("Maid", "Maid", "An outfit for when you need to clean. Or for when you want to pretend you're cleaning.", false, "cleanUpCrewGetOutfits", 250)
addOutfit("Princess", "Princess", "An outfit to wear when visiting royalty in Avia.", false, "princessOfAviaRecruitScarlett", 400)
# res://characters/Abigail.gd
extends Character

func _init().("Abigail", "Abigail"):
pass;
extends Character

func _init().("Darren", "Darren"):
setDick(true);
addOutfit('Basketball');
addOutfit('University');
warning

Do not replace existing character .gd scripts unless you know what you are doing. It is better to create a separate script that will modify existing characters.

_init(idValue, nameValue)

The _init() function is a Godot script function that is called as soon as you create the object using .new(). The Character class will automatically create the character's default outfit in the _init() function so make sure you call it by:

# res://characters/MyCharacter.gd
extends Character

func _init().("MyCharacter", "MyCharacter"):
pass;

addOutfit(outfitID, o_name?, o_description?, unlockedByDefault?, shopCondition?, gold?): Outfit

warning

This function REQUIRES you to store character assets in the res://assets/dialogue/character/ folder.

This function will create a new Outfit class for you and add it to outfits This function will automatically search through your character's assets and find outfit variants.

The parameters after the outfit ID are not required. Having a name and description is best practice for main character outfits because the name and description is shown in the house.

If you want an outfit to be given to the player after a quest is complete, only set the outfitID, o_name, and o_description.

QB.character.getCharacter("Queen").addOutfit("Maid", "Slutty Maid", "A slutty maid outfit.", false, "myMaidQuest", 300)
QB.character.getCharacter("Cassie").addOutfit("Leotard")
QB.character.getCharacter("Suki").addOutfit("Bikini", "Very Revealing Bikini", "She's practically wearing nothing!")

outfitID: String

ID for the outfit.

o_name: String = ""

The name for the outfit.

o_description: String = ""

The description for hte outfit.

unlockedByDefault: bool = false

If the outfit should be unlocked automatically. If true the outfit will be available in the house without having to buy or earn it.

shopCondition: String = ""

A quest ID. If set, the outfit will not be available in Cassie's shop until the quest is complete.

gold: int = 0

How much gold this outfit will cost.

equipOutfit(outfitID)

Equip an outfit onto the character. The outfit must exist in outfits using addOutfit.

QB.character.getCharacter("Suki").equipOutfit("Leotard")

outfitID: String

ID of the outfit.

getExp(): float

Returns experience

QB.character.getCharacter("Queen").getExp()

setExp(value)

Sets the experience variable. If you want to increase the girl's experience, you should use gainExp instead.

QB.character.getCharacter("Queen").setExp(100)

value: float

A float is a number that can have a decimal point.

getOutfit(outfitID?)

Returns the current outfit. If a outfitID is given, will return that instead.

QB.character.getCharacter("Queen").getOutfit()
QB.character.getCharacter("Suki").getOutfit("Leotard")

outfitID: String = null

ID of the outfit. Optional parameter.

setDick(value)

Sets the character's dick variable. If true, the character's dick will show when they are naked. This works on any character, and for best practice we recommend drawing dicks for all of your custom characters. If you want a character to have a dick by default, make sure to setDick(true) on initialization.

QB.character.getCharacter("Queen").setDick(true)
QB.character.getCharacter("Suki").setDick(false)

Set a character's dick property at script initialization:

extends Character


func _init().("MyCharacter", "My Character"):
setDick(true)

getDick(): bool

Returns true or false based on the dick property.

if QB.character.getCharacter("Queen").getDick():
QB.character.getCharacter("Queen").cumOn("dick")
else:
QB.character.getCharacter("Queen").cumOn("hips")

setNaked(value)

Hides or shows the character's outfit when the character is visible.

value: bool

true or false

getNaked(): bool

Returns true or false based on the naked property.

setScale(value)

Character canvases are 1000x1080 image files by default. Sometimes 1000 pixels are not enough to fit the whole character. You can draw your character smaller to fit into the 1000 pixel width, and then increase the in-game scale to make them look normal. Characters have a scale, but their outfits can also have a scale that will override the character scale.

Notable examples of this are:

  • Daniel - 0.9
  • Dathea - 0.7
  • Gnoz - 0.8
  • Jord - 0.8
  • Zaags - 0.8
  • King - 1.5
# Queen's size is cut in half, by default
QB.character.getCharacter("Queen").setScale(0.5)
# But if she's wearing the 'Maid' outfit, her scale is set to normal
QB.character.getCharacter("Queen").getOutfit("Maid").setScale(1.0)

value: float

1.0 by default.

getScale(): float

if QB.character.getCharacter("Queen").getScale() > 1.0:
print("She's huge!")
else:
print("She is smol.")

Returns scale

cumOn(bodyPart, amount?)

Cum on a character's body part. You may only use the following strings: face, chest, hips and dick. An amount of 4 is only needed to plaster face, chest or hips. dick only requires an amount of 1 to show cum.

QB.character.getCharacter("Suki").cumOn("dick", 1)
QB.character.getCharacter("Queen").cumOn("face", 4)
QB.character.getCharacter("Queen").cumOn("tits")

bodyPart: String

face, chest, hips, or dick are the only strings you can use.

amount: int = 1

An optional parameter. 1 by default. For best practice, use a number between 1 and 4.

clearCum()

Clears the cum off of the character, but does not fix messy hair and makeup smears.

QB.character.getCharacter("Queen").clearCum()

clearFucked()

Clears the amount of clients the girl has fucked today. This will fix messy hair and makeup smears.

QB.character.getCharacter("Queen").clearFucked()

clean()

Calls clearCum(), clearFucked() and setNaked(false) all at once.

QB.character.getCharacter("Queen").clean()

getAssets(outfitID?): Array<String>

Gets the asset file paths needed to display the character on the screen. The array is filled automatically because character assets should be in res://assets/dialogue/character/.

QB.character.getCharacter("Queen").getAssets()
QB.character.getCharacter("Queen").getAssets("Maid")

outfitID: String

An optional parameter if you want to get the assets for an outfit that is not currently equipped.

gainExp(amount)

Adds the amount to experience.

amount: float

A float is a number that can have a decimal point.