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.