Welcome to Astral Lust’s documentation!

Useful Links
Get Started - Astral Lust Modding
Welcome to Astral Lust modding tutorial! In here I’ll explain how to create your own mod. I’ll show how to start, make your own card, character, and a simple animated dream.
Step 1. Preparation for modding
To get started with modding AL (Astral Lust) you don’t need programming knowledge, you don’t even need to know basics about Ren'Py
.
Of course to do more advanced stuff, you’ll need to know them, but there are many things you can do by following this documentation, without any other requirements.
You should start by downloading RenPy. It’s needed to compile your mod, in other words - make it work. Once you launch RenPy it’ll ask you for text editor, I personally use Atom, you can check in google what they look like, and choose the one that you like the most.
You’ll need to select RenPy’s projects folder, and you need to put Astral Lust to the folder you’ve chosen. Before launching the project you need to decompile vanilla script with Un.rpyc, otherwise game won’t start.
Next thing to download is AL Mod Toolkit, it enables console and developer tools in-game, you need to put it into:
Windows/Linux:
AstralLust\
Mac:
AstralLust\Contents\Resources\autorun\
Great, now that you have everything ready you can start to make your own mod! (You can rename AstralLust folder to whatever name you want, this name will be shown in projects)
Step 2. Creating new mod
After you done all preparations, run RenPy. You’ll see something like this:

Under Edit File
tab chose script.rpy
, now you need to create your mod’s folder in game/mods
folder, as shown below:

Now using the same way we create a new file inside our folder, you can name it whatever you want, the important thing is to include .rpy
extension at the end. I’ll name my file sample_mod.rpy
. Now that you’ve your first file, open it by selecting it from file tree.

Step 3. Adding animated dream
What (arguably) is the most important thing in RenPy games? Events. So let’s make our own event, a dream to be exact.
We want to add animated background, so what we need is, well, a video. It can be .mp4 or .webm. We can put it into our mod folder.

So we have our movie, let’s define it in the script, it needs to be defined outside of a label (you’ll understand later).
It goes like this: image my_movie_name = Movie(play="mods/My Mod Name/my_movie.webm", loop = True, size = {gui.game_width, gui.game_height})

Now that we have our animation, let’s define a character that’ll speak in our label (also outside of a label). We can do this with
define our_character = Character("char_name")
. So I want my character to be a stickman. Don’t ask why, I just want.
After we define our character, it’s time to finally create a label. What is it? Label is a point in a story to which you can jump later on. label mylabelname:
For compatibility purpose you should add your unique prefix to label names so that there are never two label with the same name (it’ll throw an error).
Important thing to note is that dreams need special label name to autodetect (d_mydream_0
, starts with d_
, then your own dream (with prefix) name, and at the end dream type. _0
, 0 stands for normal or positive dream).
I’ll name my dream as d_Sample_Dream_0
, when dream name is converted to text _
is changed to empty space.
After all we are all set up.
Let’s finally use this movie, we can display it with show
or scene
statement.
What’s the difference? Scene removes previous images, it’s good to use it if we have image covering whole screen and we don’t want anything else to display.
Our movie covers the whole screen and we don’t want other images or movies on screen so let’s use scene my_movie_name
. You can add transiton with fade
or with dissolve
.

Alright, Now we need to write the scene, dialogue, choices, etc. This all is covered below.

Dream is ready!
Step 4. Adding a card
Now that we have a dream, it’s time to do something a little more complex. Let’s make a card.
We need to initialize a card at init time so we start by adding (outside of label) init 11 python:
.
As you might have noticed, when we use :
the lines below are indented.
Basically speaking it means that below code belongs to the thing with :
.
Indentation shows the code this belonging.
In python indentations are the key unlike in most other languages where they are just cosmetic.
Alright, enough about other things, other thing you should remember is that AL reserves init -999 to 10 & 995-999, so you should use init 11 to init 994. The higher the init the later it loads (and overwrites previous changes if needed). Unless you know what you’re doing, don’t use reserved init numbers.
Finally, after this sermon comes a time to create our card!
We need to start by defining class like this class OurClassName(Card):
of course change OurClassName to your name.
You can name it as class prefix_cardname(Card):
. More info on this in comments in example script down below.
As you probably noticed (or not) class definition ends with :
, so does it mean next line will be indented?
Of course it’ll be indented, didn’t you read my sermon? If it’s not we will see an error when we try to launch our game.
Now the indented code -> def __init__(self):
. def methodName():
is defining a method or function.
This is method commonly used in python as a constructor, it’ll assign attributes to our card.
You probably took note of :
at the end.
Does it mean there will be second indentation? Yes! Great, right? Indentations look neat.

So in def __init__(self):
we need to assign attributes to our class, or as you prefer variables.
When assigning and using these attributes within our class we need to type self.
before them.
Like this self.name = "MyCard"
.
Cards have those attributes:
name
- self explainingsp
- spirituality costca
- category:Offensive
Defensive
Ability
Power
Tarot
ra
- rarity:Ordinary
Extraordinary
Mythical
Angelic
Divine
tip
- card’s tooltip to display on hover (explained in example script)

So our card now can be created, but it still does nothing.
Let’s change that.
We need to create play()
method.
Like this def play(self, **kwargs):
.
Remember to return to indentation depth of class! In other words def play
needs to be at the same indentation as def __init__
.
Now you need to let your creativity take over. To attack use self.atk(dmg, enemy)
change damage to number you want, like this self.atk(5, enemy)
.
To change status effects use buff()
method. It works like this player.buff(buff, amt, minus = True)
.
By default status effect can be lowered below 0, to make it stop at 0 descrease effects with minus = False.
Let’s say you want to decrease enemy’s Vulnerable effect by 5, but you don’t want it to be below 0.
It works like that enemy.buff("Vulnerable", -5, False)
.
Important thing is you need to add return
at the end of method.
It signals the program that it’s the end of method.
You can use it like this return "exhaust"
if you want to exhaust a card, otherwise use just return
.
Example below.

We have a working card. Nice! One thing.. how do you get it?? It’s not like a dream, which happens randomly.
This is actually the easiest part of this tutorial. Just read the comments in the example below, nothing more is needed to be said.

Remember to create your card image! Check documentation’s Cards to get card templates and how to use them. Paint is enough to make a card, better programs (like free paint.net I’m using) are welcome, though. The best for a job like this would probably be Corel or PhotoShop.
Step 5. Test with console
Done!
Our card and dream were successfully created! Now what remains is to check them in-game.
Load your save and open the console by pressing SHIFT + O
To try our dream -> jump d_Sample_Dream_0 Change dream label to your label.
To add our card to hand -> inventory.cards.append(Sample_Slice()) Again, change Sample_Slice to your card’s class name
Congratulations! You’ve officially made your first mod for the Astral Lust! Even Grace is proud of you!
Now that you know how, you can add more, check the documentation for info how to do that. Remember - have fun! Will you be the first to change the Dragon images to Thomas the Tank Engine? ;) It was made already by Chuck.
Don’t hesitate to ask me questions on official Astral Lust Discord server. You can also post your mods there, in #mods-releases channel.
Next Step
While where you should go from now on depends on what you want to make, I would recommend Creation Guide to learn many basic things about Renpy’s working.
Final Script - Comments
The same code can be found in game/mods/Sample Mod/sample_mod.rpy
.
1# define the movie used in a dream, you need to define all movies, size = {gui.game_width, gui.game_height} makes the movie play fullscreen no matter of its size or game version, 4K or 1080p
2image sample movie = Movie(play="mods/Sample Mod/sample_movie.webm", loop = True, size = {gui.game_width, gui.game_height})
3
4# define new character with name Stickman and light blue colored name - Hex(#216ba2)
5define sample_stickman = Character("Stickman", who_color = "#216ba2")
6
7# label is a place in code, we can jump to
8label d_Sample_Dream_0:
9
10 # scene removes images/movies on screen and displays a new one
11 scene sample movie
12
13 # dialogue without character speaking is narration (without any name)
14 "Weird stickman dances before your eyes."
15
16 # me is the player, it'll display player's name as a speaker
17 me "What the hell?"
18
19 # using this will display Srickman as the one talking
20 sample_stickman "Go on, dance with me!"
21
22 me "..."
23 me "What is wrong with me to have a dream like that?"
24
25 sample_stickman "What are you waiting for?"
26
27 # menu statement allows us to display choices menu
28 menu:
29 # the first choice
30 "Dance":
31
32 # code to execute on this choice (Dance)
33 "You dance along with it."
34 th "What the hell I'm doing?"
35
36 # jump to a label d_Sample_Dream_0.part2
37 # .sublabel allows to define a few labels as a part of one label,
38 # this way you can make .part2 label for all events without worying about repeated names
39 jump .part2
40
41 # the second choice
42 "Stay put":
43 "You stay silent, not answering to any of it invites."
44 jump .part2
45
46# sublabel, you can jump to it by using it's name only inside label group, from other labels you need to use label.sublabel, eq. d_Sample_Dream_0.part2
47label .part2:
48
49 # dream_end label will end the dream and return you to the place you're sleeping in
50 jump dream_end
51
52# init means it loads on game launch, 11 is the load order, the higher the later it'll load, overwriting things if needed.
53# You shouldn't use init below 11, it is reserved for vanilla, it might cause incompatibility so unless you don't know what you're doing, don't do this.
54init 11 python:
55
56 # Your class, you can create cards by calling class name, remember class name needs to be unique or game will throw an error on lauch. You can add your unique prefix to make it much less likely.
57 # My prefix is Sample_
58 # It's important for card's class to have | (Card): | at the end, it's needed as it gives the cards their functionality
59 class Sample_Slice(Card):
60
61 # Init is a so called constructor, as the name suggests it's used to construct our card, so our card will be created with attributes given below.
62 def __init__(self):
63
64 # card name / .webp image name. This image needs to be put (for now) in game/images/Cards/ folder.
65 # In the future I'm going to add compatibility for adding custom paths.
66 # To make sure this card is compatible with other mods I've added !Sample! prefix to card name.
67 # Its image need to be | !Sample! Slice.webp | You should add your prefix (nickname) using !Prefix! like me, I plan to add some functionality to this.
68 # While !Sample! will show when destroying card, I'll change it later, so it's not shown.
69 self.name = "!Sample! Slice"
70
71 # spirituality cost
72 self.sp = 3
73
74 # Card category -> Offensive, Defensive, Ability, Power, Tarot
75 self.ca = "Offensive" # category
76
77 # Card rarity, from the lowest to the highest -> Ordinary, Extraordinary, Mythical, Angelic, Divine
78 # Special rarities -> Tarot, Unique (for advanced users)
79 self.ra = "Mythical"
80
81 # Card tooltip, you can write what you want in tooltip or use | self.tip = None | if there is no tooltip for your card.
82 # General formula is '> FirstBuff:\n'+str(player.eff["FirstBuff"][1]) + '\n\n> SecondBuff:\n'+str(player.eff["SecondBuff"][1])
83 # You can add next buffs by adding to the end this code | + '\n\n> NextBuff:\n'+str(player.eff["NextBuff"][1])
84 # Naturally you need to change FirstBuff, etc. to names of buffs, for all available buffs check documentation's Cards category
85 self.tip = '> Strength:\n'+str(player.eff["Strength"][1]) + '\n\n> Bleeding:\n'+str(player.eff["Bleeding"][1])
86
87 # It's a good practice to notify players the mod the card is from, that way if they encounter bugs they can notify you.
88 # self.tip += '' mean we want to add text to what is already in there.
89 # \n is a tag for a new line, so below text will add something like this:
90
91 # Bleeding:
92 # .... tip .....
93 #
94 # ________________
95 # From: Sample Mod
96 self.tip += '\n\n________________\n From: Sample Mod'
97
98 # That's what happens on using a card. Card won't be used if you have Forbid debuff making you unable to play cards of this type, or in case your spirituality is insuficient
99 def play(self, **kwargs):
100
101 # Gives player the effect effect - Strength, 2 Strength exactly. It raises damage dealt by x (x is 2 in this case), it falls by 1 every turn.
102 player.buff("Strength", 2)
103
104 # Gives enemy the status effect Bleeding, 3 stacks. So as you see it's simple to add status effects to the enemies. For more complex effects check Card category (docs).
105 enemy.buff("Bleeding", 3)
106
107 # Attack the enemy with base 12 damage, to deal damage to player, simply change enemy to player
108 self.atk(12, enemy)
109
110 # Needed, it signals that it's the end of method (play method), it returns what we write after it, if you want your card to exhaust on use, do this -> return "exhaust"
111 return
112
113 # Now that our card is created we need to add it to a lootlist, so that it drops from the enemies. List of lootlists can be found in Enemies category (docs).
114 # So I want this card to be dropped by all melee only bandits, I need to add this card to their lootlists one by one:
115 lootlist["bandits_melee"].append(Sample_Slice())
116
117 # Take note that we add (append) cards by using our card class name followed by (). In this case it's SampleSlice()
118 lootlist["bandit_melee"].append(Sample_Slice())
119 lootlist["bandit_melee_girl"].append(Sample_Slice())
120
121 # Remember to create your card image!
122 # Check documentation's Cards to get card templates and how to use them
123 # Paint is enough to make a card, better programs (like free paint.net I'm using) are welcome, though.
124 # The best for a job like this would probably be Corel or PhotoShop.
125
126 # Done!
127 # -----
128 # Our card and dream were succesfully created!
129 # Now what remains is to check them in-game.
130 #
131 # Load your save and open the console by pressing SHIFT + O
132 #
133 # To try our dream -> jump d_Sample_Dream_0
134 # Change dream label to your label
135 #
136 # To add our card to hand -> inventory.cards.append(Sample_Slice())
137 # Again, change Sample_Slice to your card's class name
138 #
139 # Congratulations!
140 # You've officialy made your first mod for the Astral Lust!
141 # Even Grace is proud of you!
142 #
143 # Now that you know how, you can add more, check the documentation for info how to do that.
144 # Remember - have fun! Will you be the first to change the Dragon images to Thomas the Tank Engine? ;)
145 #
146 # Don't hesitate to ask me questions on official Astral Lust Discord server. You can also post your mods there, in #mods-releases channel.
Final Script - Clean
1image sample movie = Movie(play="mods/Sample Mod/sample_movie.webm", loop = True, size = {gui.game_width, gui.game_height})
2
3define sample_stickman = Character("Stickman", who_color = "#216ba2")
4
5label d_Sample_Dream_0:
6 scene sample movie
7
8 "Weird stickman dances before your eyes."
9 me "What the hell?"
10 sample_stickman "Go on, dance with me!"
11 me "..."
12 me "What is wrong with me to have a dream like that?"
13 sample_stickman "What are you waiting for?"
14
15 menu:
16 "Dance":
17 "You dance along with it."
18 th "What the hell I'm doing?"
19
20 jump .part2
21
22 "Stay put":
23 "You stay silent, not answering to any of it invites."
24 jump .part2
25
26label .part2:
27
28 jump dream_end
29
30init 11 python:
31 class Sample_Slice(Card):
32 def __init__(self):
33 self.name = "!Sample! Slice"
34 self.sp = 3
35 self.ca = "Offensive"
36 self.ra = "Mythical"
37 self.tip = '> Strength:\n'+str(player.eff["Strength"][1]) + '\n\n> Bleeding:\n'+str(player.eff["Bleeding"][1])
38 self.tip += '\n\n________________\n From: Sample Mod'
39
40 def play(self, **kwargs):
41 player.buff("Strength", 2)
42 enemy.buff("Bleeding", 3)
43 self.atk(12, enemy)
44
45 return
46
47lootlist["bandits_melee"].append(Sample_Slice())
48lootlist["bandit_melee"].append(Sample_Slice())
49lootlist["bandit_melee_girl"].append(Sample_Slice())
Creation Guide
This guide shows how to create events in Renpy, it uses selected parts of Renpy’s documentation along with my own knowledge, and tips.
Characters
Ren’Py lets you define characters in advance. This lets you associate a short name with a character, and to change the color of the character’s name. Characters can have their own font, size, etc. (Check link below)
1define s = Character('Sylvie', color="#c8ffc8")
2define m = Character('Me', color="#c8c8ff")
3
4label start:
5
6 s "Hi there! How was class?"
7
8 m "Good..."
9
10 "I can't bring myself to admit that it all went in one ear and out the other."
11
12 s "Are you going home now? Wanna walk back with me?"
13
14 m "Sure!"
The first and second lines define characters.
The first line defines a character with the short name of s
, the long name Sylvie
, with a name that is shown in a greenish color.
(The colors are red-green-blue hex triples, as used in web pages.)
The second line creates a character with a short name m
, a long name Me
, with the name shown in a reddish color.
Other characters can be defined by copying one of the character lines, and changing the short name, long name, and color.
Images
A visual novel isn’t much of a visual novel without pictures. Here’s another scene from The Question
.
This also includes statements that show images to the player.
This can fully replace the previous section of script, if you want to try it out.
1define s = Character('Sylvie', color="#c8ffc8")
2define m = Character('Me', color="#c8c8ff")
3
4label start:
5
6 scene bg meadow
7
8 "After a short while, we reach the meadows just outside the neighborhood where we both live."
9
10 "It's a scenic view I've grown used to. Autumn is especially beautiful here."
11
12 "When we were children, we played in these meadows a lot, so they're full of memories."
13
14 m "Hey... Umm..."
15
16 show sylvie green smile
17
18 "She turns to me and smiles. She looks so welcoming that I feel my nervousness melt away."
19
20 "I'll ask her...!"
21
22 m "Ummm... Will you..."
23
24 m "Will you be my artist for a visual novel?"
25
26 show sylvie green surprised
27
28 "Silence."
This segment of script introduces two new statements.
The scene
statement on line 6 clears all images and displays a background image.
The show
statements on lines 16 and 26 display a sprite on top of the background, and change the displaying sprite, respectively.
In Ren’Py, each image has a name. The name consists of a tag, and optionally one or more attributes. Both the tag and attributes should begin with a letter, and contain letters, numbers, and underscores. For example:
In the scene statement on line 6, the tag is bg
, and the attribute is meadow.
By convention, background images should use the tag bg.
In the first show statement on line 16, the tag is sylvie
, and the attributes are green
and smile
.
In the second show statement on line 26, the tag is sylvie
, and the attributes are green
and surprised
.
Only one image with a given tag can be shown at the same time. When a second image with the same tag is show, it replaces the first image, as happens on line 26.
Ren’Py searches for image files in the images directory, which can be found by selecting images
in the Open Directory
section of the launcher.
Ren’Py expects character art to be an PNG or WEBP file, while background art should be a JPG, JPEG, PNG, or WEBP file.
The name of a file is very important – the extension is removed, the file name is forced to lowercase, and that’s used as the image name.
For example, the following files, placed in the images directory, define the following images.
“bg meadow.jpg” ->
bg meadow
“sylvie green smile.png” ->
sylvie green smile
“sylvie green surprised.png” ->
sylvie green surprised
Since the filenames are lowercase, the following also holds.
*”Sylvie Green Surprised.png” -> sylvie green surprised
Images can be placed in subdirectories (subfolders) under the images directory. The directory name is ignored and only the filename is used to define the image name.
Hide Statement
Ren’Py also supports a hide
statement, which hides the given image.
1label leaving:
2
3 s "I'll get right on it!"
4
5 hide sylvie
6
7 "..."
8
9 m "That wasn't what I meant!"
It’s actually pretty rare that you’ll need to use hide. Show can be used when a character is changing emotions, while scene is used when everyone leaves. You only need to use hide when a character leaves and the scene stays the same.
Image Statement
Sometimes, a creator might not want to let Ren’Py define images automatically.
This is what the image
statement is for.
It should be at the top level of the file (unindented, and before label start), and can be used to map an image name to an image file.
For example:
image logo = "renpy logo.png"
image eileen happy = "eileen_happy_blue_dress.png"
The image statement is run at init time, before label start and the rest of the game script that interacts with the player.
The image statement can also be used for more complex tasks.
Positions
By default, images are shown centered horizontally, and with their bottom edge touching the bottom of the screen. This is usually okay for backgrounds and single characters, but when showing more than one character on the screen it probably makes sense to do it at another position. It also might make sense to reposition a character for story purposes.
show sylvie green smile at right
To do this repositioning, add an at
clause to a show statement.
The at clause takes a position, and shows the image at that position.
Ren’Py includes several predefined positions: left
for the left side of the screen, right
for the right side, center
for centered horizontally (the default), and truecenter
for centered horizontally and vertically.
Creators can define their own positions, and event complicated moves, but that’s outside of the scope of this quickstart.
Transitions
In the script above, pictures pop in and out instantaneously. Since changing location or having a character enter or leave a scene is important, Ren’Py supports transitions that allow effects to be applied when what is being shown changes.
Transitions change what is displayed from what it was at the end of the last interaction (dialogue, menu, or transition – among other statements) to what it looks like after scene, show, and hide statements have run.
1label start:
2
3 scene bg meadow
4 with fade
5
6 "After a short while, we reach the meadows just outside the neighborhood where we both live."
7
8 "It's a scenic view I've grown used to. Autumn is especially beautiful here."
9
10 "When we were children, we played in these meadows a lot, so they're full of memories."
11
12 m "Hey... Umm..."
13
14 show sylvie green smile
15 with dissolve
16
17 "She turns to me and smiles. She looks so welcoming that I feel my nervousness melt away."
18
19 "I'll ask her...!"
20
21 m "Ummm... Will you..."
22
23 m "Will you be my artist for a visual novel?"
The with statement takes the name of a transition to use.
The most common one is dissolve
which dissolves from one screen to the next.
Another useful transition is fade
which fades the screen to black, and then fades in the new screen.
When a transition is placed after multiple scene, show, or hide statements, it applies to them all at once. If you were to write:
scene bg meadow
show sylvie green smile
with dissolve
Both the bg meadow
and sylvie green smile
images would be dissolved in at the same time.
To dissolve them in one at a time, you need to write two with statements:
scene bg meadow
with dissolve
show sylvie green smile
with dissolve
This first dissolves in the meadow, and then dissolves in sylvie. If you wanted to instantly show the meadow, and then show sylvie, you could write:
scene bg meadow
with None
show sylvie smile
with dissolve
Here, None is used to indicate a special transition that updates Ren’Py’s idea of what the prior screen was, without actually showing anything to the player.
End Event
You can end the event by running the return
statement, without having called anything.
".:. Good Ending."
return
Flags
While some events can be made by only using the statements given above, other games requires data to be stored and recalled later. For example, it might make sense for a game to remember a choice a player has made, return to a common section of the script, and act on the choice later. This is one of the reasons why Ren’Py has embedded Python support.
Here, we’ll show how to store a flag containing information about a choice the player has made.
To initialize the flag, use the default
statement, before label start.
# True if the player has decided to compare a VN to a book.
default book = False
label start:
s "Hi there! How was class?"
The book flag starts off initialized to the special value False
(as with the rest of Ren’Py, capitalization matters), meaning that it is not set.
If the book path is chosen, we can set it to True using a Python assignment statement.
label book:
$ book = True
m "It's like an interactive book that you can read on a computer or a console."
jump marry
Lines beginning with a dollar-sign are interpreted as Python statements. The assignment statement here assigns a value to a variable. Ren’Py has support for other ways of including Python, such as a multi-line Python statement, that are discussed in other sections of this manual. Ren’Py supports Python 2.7, though we strongly recommend you write Python that runs in Python 2 and Python 3.
To check the flag, use the if
statement:
if book:
"Our first game is based on one of Sylvie's ideas, but afterwards I get to come up with stories of my own, too."
If the condition is true, the block of script is run. If not, it is skipped. The if
statement can also take an else
clause, that introduced a block of script that is run if the condition is false.
if book:
"Our first game is based on one of Sylvie's ideas, but afterwards I get to come up with stories of my own, too."
else:
"Sylvie helped with the script on our first video game."
Python variables need not be simple True/False values. Variables can be used to store the player’s name, a points score, or for any other purpose. Since Ren’Py includes the ability to use the full Python programming language, many things are possible.
Music and Sound
Most Ren’Py games play music in the background.
Music is played with the play music
statement.
The play music statement takes a filename that is interpreted as an audio file to play.
Audio filenames are interpreted relative to the game directory.
Audio files should be in opus, ogg vorbis, or mp3 format.
For example:
play music "illurock.ogg"
When changing music, one can supply a fadeout
and a fadein
clause, which are used to fade out the old music and fade in the new music.
play music "illurock.ogg" fadeout 1.0 fadein 1.0
The queue music
statement plays an audio file after the current file finishes playing.
queue music "next_track.opus"
Music can be stopped with the stop music
statement, which can also optionally take a fadeout clause.
stop music
Sound effects can be played with the play sound
statement. Unlike music, sound effects do not loop.
play sound "effect.ogg"
Pause Statement
The pause
statement causes Ren’Py to pause until the mouse is clicked.
pause
If a number is given, the pause will end when that number of seconds have elapsed.
pause 3.0
Customize Astral Lust
Tweak variables
Here you’ll find easy to tweak game variables, this way you’ll make the game adhere to your preferences. To change the variables use:
init 11 python:
variable = value
Change/add journal tip
To change a tip we need to do this:
tips["story_name"][event_number] = "new_tip"
Story names are the same you see in the journal in-game. Remember to work on them in init time (inside init python:
statement)
1tips["Main Story"][1] = "Now first Main Story event will have this as a tip."
To add a new tip you can just pop()
the last story tip, then append()
to a story.
First the new tip then the last tip.
1tips["Lexi"].pop() # Remove last item
2tips["Lexi"].append("New tip.") # Add new tip
3tips["Lexi"].append("More coming soon.") # Add last tip, there needs to be one more tip than amount of events.
1tips = {
2 "Main Story": [ # Name of a story
3 "player.story", # [0], String, variable keeping story progress (which event you've completed)
4 # _("string") marks it as translatable in Ren'Py
5 _("I have a gut feeling that I would have a good dream."), # [1], Actual tips
6 _("Who knows what awaits me outside?"), # [2]
7 _("I need to take care of my mental health."), # [3]
8 _("Maybe someone can answer my questions out there."), # [4]
9 _("I wonder if I would turn insane if it spoke to me again.."), # [5]
10 _("Who knows what awaits me outside?"), # [6]
11 _("My dreams are becoming more disturbing as of late."), # [7]
12 _("More coming soon.") # [8], Last tip, you need one more tip than your events, if you want you can use "Completed" instead
13 ]
14}
Add story
We can add new story with very simple method:
1init 11 python:
2 tips.update({"My Story": [ # Name of a story
3 "my_story_progress_tracking_variable", # [0], String, variable keeping story progress (which event you've completed)
4 _("I have a gut feeling that I would have a good dream."), # [1], Actual tips, make as much as you need
5 _("More coming soon.") # Last tip, you need one more tip than your events, if you want you can use "Completed" instead
6 ]})
List of safe to tweak variables
dream_base_chance = 0.2
- Chance for a dream during sleepBase chance for card of given rarity to drop, player luck is added to it:
base_ordinary_chance = 60
base_extraordinary_chance = 25
base_mythical_chance = 10
base_angelic_chance = 3
base_divine_chance = 2
base_escape_chance = 0.2
- Base chance to escape combatagi_escape_chance = 0.02
- Chance to escape combat per agility pointescape_chance_cap = 0.65
- Maximum escape chanceterror_chance = 50
- Chance for beings in terror to skip turn, in %, deafult 50%base_gen_combat_chance = 0.45
- chance of generic combat event, 1.0 for 100% 0 for 0%, story mode disables random combat encounter without care for this settingsuccubus_base_lust = 50
- Lust that succubus start with, default 50succubus_lust_increase = 5
- Lust that succubus gain per day, default 5succubus_max_lust = 100
- Lust after which succubus come to us for sex, default 100succubus_lust_mult = 5
- Multiplier of lust succubus lose after H, default 5sleep_with_girl_cor_chance = 0.5
- Chance for corruption decrease during sleepoverjournal_color = "#45B6FE"
- Color of journal tips
In-game Console
When you do a mod, or simply want to cheat, you need to use in-game console, you can do almost everything with it, as it’s in fact a python console.
What you want to do the most is to change variables or jump to labels, here’s how to do that.
Console can be opened with SHIFT + O
.
To open the console you need AL Mod Toolkit.
You don’t know how to install it? Check Get Started.
Help! I’ve fucked up my game!
Sometimes you can do something that throws an error. I don’t mean error in the console after writing a wrong code, error you get outside of a console as a result of your code.
Don’t save the game! You should immediately load save file before this error, if in this save your changes are also present, then you need to undo them. If you can’t undo them, then use older save. None of them is clean? Sadly, you’ll need to start the game from the beginning.
You can always ignore the problem, but it’ll probably lead to corruption of save, or persistent data. If persistent data gets corrupted you won’t be able to launch your game without deleting it.
Sometimes the error might straight throw you to the desktop, and launching game again don’t work. Don’t panic, it happens probably because of developer mode turned on, it tries to immediately start where it crashed, making it crash again.
Simply move zzz_mod_toolkit.rpyc
and zzz_mod_toolkit.rpy
outside of Astral Lust folder and launch the game.
After it launches properly, exit the game normally. You should be able to enter the game again.
If that didn’t help, that means your persistent was corrupted. The only thing to do now is to delete persistent
in:
Windows -
C:\Users\UserName\AppData\Roaming\RenPy\AstralLust
Macintosh -
$HOME/Library/RenPy/AstralLust
Linux -
$HOME/.renpy/AstralLust
Save the game before playing with console!
Jump to a label
To jump to a label we simply need to use jump label_name
. We can get a list of all labels with renpy.get_all_labels()

We can alternatively use call, jump might sometimes lead to weird outcome if label you jumped to ends with return. Call ensures that’s not the case.

Change a variable
That’s simple -> variable = new_value

Why I’ve changed Lexi’s name to Arnold? I don’t know either. Some more examples:

Some variables changed this way might reset after exiting the game (like chances), do a mod for the changes to be permanent.
Check Customize and GUI for variables.
Add items to the inventory
inventory.materials
will show you all items you have, with their amount.
inventory.materials.update({"item": amount})
will make your inventory contain amount
of "item"
.

Cards
Add new cards
To add new cards you need to create your cards as a child of Card class. Action to be done on card use is to be contained in play()
method.
1class Take_Cover(Card):
2 def __init__(self):
3 # card name / .webp image name
4 self.name = "Take Cover"
5 # spirituality cost
6 self.sp = 2
7 # category: Offensive, Defensive, Ability, Power, Tarot
8 self.ca = "Defensive"
9 # rarity: Ordinary, Extraordinary, Mythical, Angelic, Divine, Unique, Tarot
10 self.ra = "Extraordinary"
11 # Help to be displayed when card is hovered
12 self.tip = '> Block:\n'+str(player.eff['Block'][1])+'\n\n> Dodge:\n' + str(player.eff['Dodge'][1])
13
14 def play(self, **kwargs):
15 self.block(amt = 10, target = player)
16 self.dodge(amt = 10, target = player)
17 return
Cards Images
Start by either creating your own or downloading vanilla card templates:
When using my template you should:
Put card art behind the template (so it’s visible in the middle)
Name the card at the top
Define card spirit cost to the right of card name
Choose correct card rarity & type from templates
Describe it’s effects below card type
Cards need to be:
Named like the card name attribute
Placed in
AstralLust\game\images\Cards\
directorySaved in
.webp
format, I recommend using Bulk Images to WebP Converter for Chrome with 90% qualityResolution should follow: 13:20 proportions. Default resolution for 4K is 650x1000, for 1080p 325x500. It’s not recommended to make cards above 4K default resolution for optimization reasons. You don’t need to make two sets of cards for 4K and 1080p, but low res cards will help optimization.
You can make cards in any image editor like paint, paint.net, gimp, photoshoot, etc.
Status Effects
Status effects are granted using buff()
, it takes three arguments:
buff
- required, name of status effect - string,amt
- required, status effect will be changed by this amount - depends on buff, either integer or boolean,minus
- if status effect can take negative value - boolean, defaultTrue
1 def play(self, **kwargs):
2 player.buff("Fire Immunity", True)
3 enemy.buff("Ressurect", 1)
4 return
Exhaust and Destroy
Cards can be destroyed with self.destroy()
. To exhaust a card you need to return “exhaust” with play()
. Take note that destroy()
removes card from your deck not hand/any pile, to make card disappear from combat return "exhaust"
.
1def play(self, **kwargs):
2 ... card action ...
3
4 self.destroy()
5 return "exhaust"
X card cost
Set card cost to 0 and execute your action x times, at the end set player.spirit
to 0:
1def play(self, **kwargs):
2 # Attack x times
3 self.atk(dmg = 4, target = enemy, times = player.spirit)
4
5 # Do something x times
6 for x in range(player.spirit):
7 ... action ...
8
9 # Set player spirit to 0
10 player.spirit = 0
11
12 return
Complex Effects
Returning “complex” with play() will skip using card cost and removing it from hand, it can be used with complex card effects that move/exhaust the card before return statement.
Other Card class methods
draw()
- draw x cards:amt
- required, amount of cards to drawmin
- minimum amount of cards to draw, default0
discard
- if discard hand before drawing cards, defaultFalse
skip_discarded
- if skip shuffling discard pile into draw pile if not enough cards, defaultTrue
steal()
- steal enemy status effects:times
- how many effects to steal, default1
enemy_intention()
- change enemy intention
List of all status effects
Integer:
Armor
-Each turn increase block by x.Critic
- Increase next damage dealt multiplied x times.Bleeding
- Each turn deals x damage. Damage doubled if target has Frail. Decreases by 1 every turn.Block
- Block up to x points of damage. Lasts till next turn.Dodge
- Gives x% to avoid damage. Lasts till next turn. Dodge chance capped at 80%.Burning
- Each turn deals 5 damage. Lasts x turns.Frail
- Gain x less block. Decreases by 1 every turn.Invulnerability
- Become immune to all damage. Lasts x turns.Life Steal
- Heal for x% damage dealt.Poison
- Each turn deals x damage. Damage doubled if target is bleeding. Decreases by 1 every turn.Regeneration
- Each turn heals x health. Decreases by 1 after taking damage.Resurrect
- Will resurrect with 50% of health after death.Strength
- Deal x more damage. Decreases by 1 every turn.Stun
- Unable to act for x turns.Thorns
- Deal x before being attacked. Lasts till next turn.Weak
- Deal 50% less damage. Lasts x turns.Vulnerable
- Receive 50% more damage. Lasts x turns.Empower
- Gain x strength every turn.Card Draw
- Draw x more cards each turn.Clarity
- Gain x spirituality each turn.Forbid Offensive
- Can’t play offensive cards for x turns.Forbid Defensive
- Can’t play defensive cards for x turns.Forbid Ability
- Can’t play ability cards for x turns.Forbid Power
- Can’t play power cards for x turns.Stealth
- Gain x% dodge each turn.Spikes
- Gain x thorns every turn.Forbid Tarot
- Can’t play tarot cards for x turns.Terror
- 45% chance to lose turn. Lasts for x turns.Fury
- Gain x strength on taking unblocked damage.
Boolean:
Poison Immunity
- Immune to poison.Bleeding Immunity
- Immune to bleeding.Stun Immunity
- Can’t be stunned.Burning Immunity
- Immune to burning.Freedom
- Free from corruption and madness.
Dreams
Add new dreams
Create new label consisting of three parts:
prefix
d_
- That’s required for dream to be recognize as a dreamname
My_Dream_Name
- Name of your dream, replace spaces with_
- suffix
_type
- Category of your dream: 0 - Normal / Positive - brings positive or no effect
1 - Nightmare - brings negative effect
2 - Wet - contains H scenes
3 - Other - special or complex effects, can’t be put in other category
- suffix
Code should look like this:
1label d_Light_0:
2 scene d 2 1 with fade
3 "You open your eyes only to see a light."
4 "The light illuminates the world."
5 "You float amidst the clouds and enjoy the light shining on you."
6 $player.corrupt(-3)
7 "You fell purified."
8 jump dream_end
1if True:
2 print("XD")
More label examples:
label d_First_Love_2:
label d_Deal_with_the_Devil_3:
label d_Reccuring_Nightmare_1:
Dreams should be ended with jump dream_end
- it’s a generic dream ending it blackens the screen and executes sleep method, you can end the dream other way if you know what you are doing:
1label d_end:
2 # Start to make the screen fade to darkness
3 show screen blacken(ilosc = "50") with dissolve
4 "You feel everything around fading away. You are awakening."
5 pause 0.25
6 show screen blacken(ilosc = "90") with dissolve
7 pause 0.25
8 show screen blacken(ilosc = "C0") with dissolve
9 pause 0.25
10 show screen blacken(ilosc = "FF") with dissolve
11 pause 0.25
12
13 # Restore player hp & sanity
14 $player.sleep()
15
16 # Stop all music and sound from dream
17 stop music2 fadeout 1.0
18 stop sound fadeout 1.0
19 stop music fadeout 1.0
20
21 # Play music depending on location
22 if "room_hotel" in player.location:
23 play music persistent.music_hotel fadein 1.0
24
25 # Return to the label
26 return
Change dream chance
To change the base dreams chance you need to change dream_base_chance
variable, like this:
init 11 python:
# Float, 1.0 for 100% chance, 0.0 for 0% chance.
dream_base_chance = 0.4
Images and wallpapers
Replace game images
To replace game image check .rpy files or use developer tools to find what name the image has,
now we only need to use image name = "path/image"
statements. As name we use the image’s you want to change name.
You should change it using code instead of just replacing images because after removing your mod the game will be vanilla again.
To change defined images (like animations) init offset = 1
is required.
init offset = 1
# Change player's room day image
image bg hotel player = "mods/MyMod/new hotel image.webp"
Add wallpaper
Warning! For now, removing the wallpaper images will cause error even if mod was removed, so don’t delete the wallpapers.
1init 11 python:
2 # This adds new wallpaper to our game
3 wallpapers_update.update({"My wallpaper name": [
4 None, # [0] Code
5 False, # [1] Unlocked, set to True to be unlocked from the start
6 False # [2] Movie, set true if you have animated version, not animated is still required
7 ]})
If you want your wallpaper to be unlockable with code, use a string with code’s hash, use this in python 2.7 online interpreter to get hash code:
x = hashlib.sha224(b"code").hexdigest() # change code to your own
print(x)
GUI Configuration
As you know, there are two official versions of the Astral Lust: 4K and 1080p.
You can change gui sizes using below code:
1init 11 python:
2
3 # Change 10 to amount of pixels you want,
4 # choose the size that would be in 4K version (even if you do it for 1080p version),
5 # game will automatically resize it according to game version.
6 gui.variable = int(math.ceil(10 / gui.game_mode))
List of all GUI variables
General
1## General
2## Example: define gui.game_ = int(math.ceil( / gui.game_mode))
3define gui.game_width = int(math.ceil(3840 / gui.game_mode))
4define gui.game_height = int(math.ceil(2160 / gui.game_mode))
5define gui.game_spacing_mini = int(math.ceil(10 / gui.game_mode))
6define gui.game_spacing_very_small = int(math.ceil(25 / gui.game_mode))
7define gui.game_spacing_small = int(math.ceil(30 / gui.game_mode))
8define gui.game_spacing = int(math.ceil(40 / gui.game_mode))
9define gui.game_spacing_plus = int(math.ceil(45 / gui.game_mode))
10define gui.game_spacing_wrap = int(math.ceil(50 / gui.game_mode))
11define gui.game_icons = int(math.ceil(128 / gui.game_mode))
12define gui.game_icons_small = int(math.ceil(64 / gui.game_mode))
13define gui.game_width_half = int(math.ceil(gui.game_width / 2))
14define gui.game_height_half = int(math.ceil(gui.game_height / 2))
Emoticons
1## Emoticons
2## Example: define gui.emo_ = int(math.ceil( / gui.game_mode))
3define gui.emo_x = int(math.ceil(32 / gui.game_mode))
4define gui.emo_y = int(math.ceil(32 / gui.game_mode))
5define gui.emo_posx = int(math.ceil(580 / gui.game_mode))
6define gui.emo_posy = int(math.ceil(180 / gui.game_mode))
Text sizes
1## Text sizes
2## Example: define gui.game_text_ = int(math.ceil( / gui.game_mode))
3define gui.game_text_very_small = int(math.ceil(30 / gui.game_mode))
4define gui.game_text_menu = int(math.ceil(36 / gui.game_mode))
5define gui.game_text_small = int(math.ceil(40 / gui.game_mode))
6define gui.game_text = int(math.ceil(46 / gui.game_mode))
7define gui.game_text_medium = int(math.ceil(55 / gui.game_mode))
8define gui.game_text_ind = int(math.ceil(60 / gui.game_mode))
Collectibles
1## Collectibles
2## Example: : [int(math.ceil( / gui.game_mode)), int(math.ceil( / gui.game_mode))],
3define gui.col = { # col nr: [xpos, ypos]
4 # player
5 0: [int(math.ceil(260 / gui.game_mode)), int(math.ceil(693 / gui.game_mode))],
6 1: [int(math.ceil(1747 / gui.game_mode)), int(math.ceil(310 / gui.game_mode))],
7 2: [int(math.ceil(3046 / gui.game_mode)), int(math.ceil(2123 / gui.game_mode))],
8 # lexi
9 3: [int(math.ceil(114 / gui.game_mode)), int(math.ceil(1138 / gui.game_mode))],
10 4: [int(math.ceil(1876 / gui.game_mode)), int(math.ceil(642 / gui.game_mode))],
11 5: [int(math.ceil(3600 / gui.game_mode)), int(math.ceil(1939 / gui.game_mode))],
12 # f1 (a & b)
13 6: [int(math.ceil(1277 / gui.game_mode)), int(math.ceil(958 / gui.game_mode))],
14 7: [int(math.ceil(1900 / gui.game_mode)), int(math.ceil(739 / gui.game_mode))],
15 8: [int(math.ceil(1341 / gui.game_mode)), int(math.ceil(608 / gui.game_mode))],
16 # grace
17 9: [int(math.ceil(2445 / gui.game_mode)), int(math.ceil(500 / gui.game_mode))],
18 10: [0, int(math.ceil(155 / gui.game_mode))],
19 11: [int(math.ceil(441 / gui.game_mode)), int(math.ceil(1476 / gui.game_mode))],
20 # alice
21 12: [int(math.ceil(3676 / gui.game_mode)), int(math.ceil(1146 / gui.game_mode))],
22 13: [int(math.ceil(1363 / gui.game_mode)), int(math.ceil(109 / gui.game_mode))],
23 14: [int(math.ceil(1755 / gui.game_mode)), int(math.ceil(2037 / gui.game_mode))],
24 # lobby
25 15: [int(math.ceil(3570 / gui.game_mode)), int(math.ceil(620 / gui.game_mode))],
26 16: [int(math.ceil(710 / gui.game_mode)), int(math.ceil(555 / gui.game_mode))],
27 17: [int(math.ceil(1752 / gui.game_mode)), int(math.ceil(236 / gui.game_mode))],
28 # library
29 18: [int(math.ceil(100 / gui.game_mode)), int(math.ceil(2066 / gui.game_mode))],
30 19: [int(math.ceil(3672 / gui.game_mode)), int(math.ceil(1086 / gui.game_mode))],
31 20: [int(math.ceil(3429 / gui.game_mode)), int(math.ceil(1144 / gui.game_mode))],
32 21: [int(math.ceil(1022 / gui.game_mode)), int(math.ceil(881 / gui.game_mode))],
33 22: [int(math.ceil(1668 / gui.game_mode)), int(math.ceil(411 / gui.game_mode))],
34 23: [int(math.ceil(2196 / gui.game_mode)), int(math.ceil(665 / gui.game_mode))],
35 24: [int(math.ceil(2411 / gui.game_mode)), int(math.ceil(647 / gui.game_mode))]
36}
Battle
1## Battle / Fight / Combat
2## Example: define gui.battle_ = int(math.ceil( / gui.game_mode))
3define gui.battle_pile_xsize = int(math.ceil(260 / gui.game_mode))
4define gui.battle_pile_ysize = int(math.ceil(400 / gui.game_mode))
5define gui.battle_card_xsize_small = int(math.ceil(390 / gui.game_mode))
6define gui.battle_card_ysize_small = int(math.ceil(600 / gui.game_mode))
7define gui.battle_card_yoffset_small = int(math.ceil(90 / gui.game_mode))
8define gui.battle_card_xsize_medium = int(math.ceil(520 / gui.game_mode))
9define gui.battle_card_ysize_medium = int(math.ceil(800 / gui.game_mode))
10define gui.battle_card_yoffset_medium = int(math.ceil(-65 / gui.game_mode))
11define gui.battle_spirit_size = int(math.ceil(260 / gui.game_mode))
12define gui.battle_enemy_hp_icon_size = int(math.ceil(260 / gui.game_mode))
13define gui.battle_hp_icon_size = int(math.ceil(150 / gui.game_mode))
14define gui.battle_effects_icons = int(math.ceil(128 / gui.game_mode))
15define gui.battle_end_turn_size = int(math.ceil(260 / gui.game_mode))
16define gui.battle_enemy_hp_bar_xsize = int(math.ceil(1200 / gui.game_mode))
17define gui.battle_enemy_hp_bar_ysize = int(math.ceil(100 / gui.game_mode))
18define gui.battle_enemy_hp_bar_ypos = int(math.ceil(40 / gui.game_mode))
19define gui.battle_enemy_hp_text_yoffset = int(math.ceil(-5 / gui.game_mode))
20define gui.battle_enemy_name_yoffset = int(math.ceil(80 / gui.game_mode))
21define gui.battle_enemy_hp_icon_ypos = int(math.ceil(-68 / gui.game_mode))
22define gui.battle_enemy_hp_icon_xoffset = int(math.ceil(-565 / gui.game_mode))
23define gui.battle_intention_ypos_expanded = int(math.ceil(140 / gui.game_mode))
24define gui.battle_intention_xoffset = int(math.ceil(750 / gui.game_mode))
25define gui.battle_intention_xmaximum = int(math.ceil(600 / gui.game_mode))
26define gui.battle_intention_ypos = int(math.ceil(50 / gui.game_mode))
27define gui.battle_enemy_effects_xmaximum = int(math.ceil(1200 / gui.game_mode))
28define gui.battle_enemy_effects_ypos = int(math.ceil(200 / gui.game_mode))
29define gui.battle_enemy_effects_spacing = int(math.ceil(20 / gui.game_mode))
30define gui.battle_enemy_effects_size = int(math.ceil(128 / gui.game_mode))
31define gui.battle_enemy_effects_text_ycenter = int(math.ceil(64 / gui.game_mode))
32define gui.battle_enemy_effects_text_xcenter = int(math.ceil(64 / gui.game_mode))
33define gui.battle_enemy_effects_text_yoffset = int(math.ceil(84 / gui.game_mode))
34define gui.battle_left_margin = int(math.ceil(80 / gui.game_mode))
35define gui.battle_draw_pile_xcenter = int(math.ceil(210 / gui.game_mode))
36define gui.battle_draw_pile_ycenter = int(math.ceil(1830 / gui.game_mode))
37define gui.battle_spirit_xcenter = int(math.ceil(210 / gui.game_mode))
38define gui.battle_spirit_ypos = int(math.ceil(1345 / gui.game_mode))
39define gui.battle_spirit_text_ypos = int(math.ceil(1425 / gui.game_mode))
40define gui.battle_effects_ymaximum = int(math.ceil(1200 / gui.game_mode))
41define gui.battle_effects_size = int(math.ceil(128 / gui.game_mode))
42define gui.battle_effects_text_ycenter = int(math.ceil(64 / gui.game_mode))
43define gui.battle_effects_text_xcenter = int(math.ceil(64 / gui.game_mode))
44define gui.battle_effects_text_xoffset = int(math.ceil(-90 / gui.game_mode))
45define gui.battle_effects_frame_xminimum = int(math.ceil(400 / gui.game_mode))
46define gui.battle_effects_frame_padding = int(math.ceil(20 / gui.game_mode))
47define gui.battle_effects_frame_xcenter = int(math.ceil(64 / gui.game_mode))
48define gui.battle_effects_frame_ypos = int(math.ceil(32 / gui.game_mode))
49define gui.battle_effects_frame_xoffset = int(math.ceil(300 / gui.game_mode))
50define gui.battle_discard_pile_xcenter = int(math.ceil(3630 / gui.game_mode))
51define gui.battle_discard_pile_ycenter = int(math.ceil(1830 / gui.game_mode))
52define gui.battle_turn_xcenter = int(math.ceil(3630 / gui.game_mode))
53define gui.battle_turn_ycenter = int(math.ceil(1480 / gui.game_mode))
54define gui.battle_tooltip_ypos = int(math.ceil(200 / gui.game_mode))
55define gui.battle_tooltip_xoffset = int(math.ceil(-20 / gui.game_mode))
56define gui.battle_tooltip_xmaximum = int(math.ceil(600 / gui.game_mode))
57define gui.battle_hp_xsize = int(math.ceil(260 / gui.game_mode))
58define gui.battle_hp_ysize = int(math.ceil(50 / gui.game_mode))
59define gui.battle_hp_xcenter = int(math.ceil(215 / gui.game_mode))
60define gui.battle_hp_ycenter = int(math.ceil(1290 / gui.game_mode))
61define gui.battle_hp_icon_xoffset = int(math.ceil(-120 / gui.game_mode))
62define gui.battle_tool_xmaximum = int(math.ceil(480 / gui.game_mode))
63define gui.battle_tool_padding = int(math.ceil(20 / gui.game_mode))
64define gui.battle_tool_xpos = int(math.ceil(350 / gui.game_mode))
65define gui.battle_tool_ypos = int(math.ceil(1345 / gui.game_mode))
66define gui.battle_turn_counter_spacing = int(math.ceil(30 / gui.game_mode))
67define gui.battle_turn_counter_ysize = int(math.ceil(100 / gui.game_mode))
68define gui.battle_hand_ycenter = int(math.ceil(1800 / gui.game_mode))
69define gui.battle_card_btn_small_yoffset = int(math.ceil(180 / gui.game_mode))
70define gui.battle_card_btn_medium_yoffset = int(math.ceil(-125 / gui.game_mode))
71define gui.battle_ind_p_xcenter = int(math.ceil(215 / gui.game_mode))
72define gui.battle_ind_p_ycenter = int(math.ceil(1290 / gui.game_mode))
73define gui.battle_ind_x = int(math.ceil(15 / gui.game_mode))
74define gui.battle_ind_y = int(math.ceil(30 / gui.game_mode))
75define gui.battle_ind_yoffset = int(math.ceil(-50 / gui.game_mode))
Interface
1## Interface
2## Example: define gui.inter_ = int(math.ceil( / gui.game_mode))
3define gui.inter_notify_ypos = int(math.ceil(380 / gui.game_mode))
4define gui.inter_notify_ypadding = int(math.ceil(10 / gui.game_mode))
5define gui.inter_notify_right_padding = int(math.ceil(160 / gui.game_mode))
6define gui.inter_loot_choices_ycenter = int(math.ceil(780 / gui.game_mode))
7define gui.inter_loot_tooltip_yoffset = int(math.ceil(500 / gui.game_mode))
8define gui.inter_loot_tooltip_xmaximum = int(math.ceil(600 / gui.game_mode))
9define gui.inter_loot_skip_yoffset = int(math.ceil(240 / gui.game_mode))
10define gui.inter_deck_display_xoffset = int(math.ceil(-1500 / gui.game_mode))
11define gui.inter_deck_display_yoffset = int(math.ceil(150 / gui.game_mode))
12define gui.inter_deck_card_xsize_small = int(math.ceil(325 / gui.game_mode))
13define gui.inter_deck_card_ysize_small = int(math.ceil(500 / gui.game_mode))
14define gui.inter_deck_card_xsize_medium = int(math.ceil(390 / gui.game_mode))
15define gui.inter_deck_card_ysize_medium = int(math.ceil(600 / gui.game_mode))
16define gui.inter_deck_card_yoffset = int(math.ceil(-50 / gui.game_mode))
17define gui.inter_deck_null_width = int(math.ceil(160 / gui.game_mode))
18define gui.inter_deck_null_height = int(math.ceil(10 / gui.game_mode))
19define gui.inter_deck_null2_height = int(math.ceil(130 / gui.game_mode))
20define gui.inter_deck_null2_width = int(math.ceil(3760 / gui.game_mode))
21define gui.inter_deck_exit_xcenter = int(math.ceil(3600 / gui.game_mode))
22define gui.inter_deck_exit_ycenter = int(math.ceil(64 / gui.game_mode))
23define gui.inter_vault_xoffset = int(math.ceil(600 / gui.game_mode))
24define gui.inter_save_width = int(math.ceil(768 / gui.game_mode))
25define gui.inter_save_height = int(math.ceil(432 / gui.game_mode))
26define gui.inter_notify_yoffset = int(math.ceil(100 / gui.game_mode))
27define gui.inter_char_tooltip_xoffset = int(math.ceil(550 / gui.game_mode))
28define gui.inter_char_tooltip_xmaximum = int(math.ceil(900 / gui.game_mode))
29define gui.inter_trade_yoffset = int(math.ceil(250 / gui.game_mode))
30define gui.inter_trade_yoffset_small = int(math.ceil(100 / gui.game_mode))
31define gui.inter_trade_yoffset_half = int(math.ceil(50 / gui.game_mode))
32define gui.inter_trade_margin = int(math.ceil(400 / gui.game_mode))
33define gui.inter_trade_margin_tb = int(math.ceil(200 / gui.game_mode))
34define gui.inter_trade_marginx2 = gui.inter_trade_margin * 2
35define gui.inter_trade_xoffset = int(math.ceil(380 / gui.game_mode))
36define gui.inter_trade_icon = int(math.ceil(gui.game_text_menu * 2.8 / gui.game_mode))
37define gui.inter_hollow_xsize = int(math.ceil(676 / gui.game_mode))
38define gui.inter_hollow_ypos = int(math.ceil(460 / gui.game_mode))
39define gui.inter_menu_spacing = int(math.ceil(200 / gui.game_mode))
Masks
1## Masks
2## Example: define gui.mask_ = [int(math.ceil( / gui.game_mode)), int(math.ceil( / gui.game_mode))] # [xpos, ypos]
3define gui.mask_lexi_door = [int(math.ceil(857 / gui.game_mode)), int(math.ceil(135 / gui.game_mode))]
4define gui.mask_lexi_document = [int(math.ceil(2889 / gui.game_mode)), int(math.ceil(670 / gui.game_mode))]
5define gui.mask_lexi_laptop = [int(math.ceil(3032 / gui.game_mode)), int(math.ceil(613 / gui.game_mode))]
6define gui.mask_lexi_pc = [int(math.ceil(2790 / gui.game_mode)), int(math.ceil(555 / gui.game_mode))]
7define gui.mask_lexi_sleep = [int(math.ceil(2025 / gui.game_mode)), int(math.ceil(961 / gui.game_mode))]
8define gui.mask_lexi_boxes = [int(math.ceil(1867 / gui.game_mode)), int(math.ceil(377 / gui.game_mode))]
9define gui.mask_lexi_sofa = [int(math.ceil(523 / gui.game_mode)), int(math.ceil(647 / gui.game_mode))]
10define gui.mask_mina_pc = [int(math.ceil(2797 / gui.game_mode)), int(math.ceil(548 / gui.game_mode))]
11define gui.mask_mina_sofa = [int(math.ceil(520 / gui.game_mode)), int(math.ceil(513 / gui.game_mode))]
12define gui.mask_mina_bed = [int(math.ceil(1867 / gui.game_mode)), int(math.ceil(815 / gui.game_mode))]
13define gui.mask_player_door = [int(math.ceil(850 / gui.game_mode)), int(math.ceil(88 / gui.game_mode))]
14define gui.mask_player_pc = [int(math.ceil(2267 / gui.game_mode)), int(math.ceil(401 / gui.game_mode))]
15define gui.mask_player_mirror = [int(math.ceil(1576 / gui.game_mode)), int(math.ceil(0 / gui.game_mode))]
16define gui.mask_player_bed = [int(math.ceil(1823 / gui.game_mode)), int(math.ceil(880 / gui.game_mode))]
17define gui.mask_player_cube = [int(math.ceil(3042 / gui.game_mode)), int(math.ceil(1822 / gui.game_mode))]
18define gui.mask_player_books = [int(math.ceil(3164 / gui.game_mode)), int(math.ceil(1931 / gui.game_mode))]
19define gui.mask_player_altar = [int(math.ceil(296 / gui.game_mode)), int(math.ceil(1092 / gui.game_mode))]
20define gui.mask_player_chest = [int(math.ceil(1816 / gui.game_mode)), int(math.ceil(875 / gui.game_mode))]
21define gui.mask_player_grey_cupboard = [int(math.ceil(2424 / gui.game_mode)), int(math.ceil(550 / gui.game_mode))]
22define gui.mask_player_white_cupboard = [int(math.ceil(2344 / gui.game_mode)), int(math.ceil(576 / gui.game_mode))]
23define gui.mask_player_wardrobe = [int(math.ceil(2912 / gui.game_mode)), int(math.ceil(153 / gui.game_mode))]
24define gui.mask_cat_pc = [int(math.ceil(2469 / gui.game_mode)), int(math.ceil(476 / gui.game_mode))]
25define gui.mask_cat_sleep = [int(math.ceil(2075 / gui.game_mode)), int(math.ceil(1004 / gui.game_mode))]
26define gui.mask_dog_sofa = [int(math.ceil(439 / gui.game_mode)), int(math.ceil(673 / gui.game_mode))]
27define gui.mask_dog_sleep = [int(math.ceil(1675 / gui.game_mode)), int(math.ceil(1215 / gui.game_mode))]
28define gui.mask_f1a_alice = [int(math.ceil(2273 / gui.game_mode)), int(math.ceil(179 / gui.game_mode))]
29define gui.mask_f1a_lexi = [int(math.ceil(2746 / gui.game_mode)), int(math.ceil(65 / gui.game_mode))]
30define gui.mask_f1a_grace = [int(math.ceil(1430 / gui.game_mode)), int(math.ceil(174 / gui.game_mode))]
31define gui.mask_f1a_f2 = [int(math.ceil(1805 / gui.game_mode)), int(math.ceil(76 / gui.game_mode))]
32define gui.mask_f1a_lobby = [int(math.ceil(1630 / gui.game_mode)), int(math.ceil(360 / gui.game_mode))]
33define gui.mask_f1a_f1b = [int(math.ceil(1850 / gui.game_mode)), int(math.ceil(550 / gui.game_mode))]
34define gui.mask_f1a_cupboard = [int(math.ceil(1203 / gui.game_mode)), int(math.ceil(607 / gui.game_mode))]
35define gui.mask_f1a_grace_clean = [int(math.ceil(2004 / gui.game_mode)), int(math.ceil(300 / gui.game_mode))]
36define gui.mask_f1b_grace = [int(math.ceil(2529 / gui.game_mode)), int(math.ceil(309 / gui.game_mode))]
37define gui.mask_f1b_alice = [int(math.ceil(912 / gui.game_mode)), int(math.ceil(243 / gui.game_mode))]
38define gui.mask_f1b_lexi = [int(math.ceil(1538 / gui.game_mode)), int(math.ceil(442 / gui.game_mode))]
39define gui.mask_f1b_player = [int(math.ceil(2223 / gui.game_mode)), int(math.ceil(454 / gui.game_mode))]
40define gui.mask_f1b_f2 = [int(math.ceil(480 / gui.game_mode)), int(math.ceil(1700 / gui.game_mode))]
41define gui.mask_f1b_lobby = [int(math.ceil(3000 / gui.game_mode)), int(math.ceil(1750 / gui.game_mode))]
42define gui.mask_f1b_f1a = [int(math.ceil(1842 / gui.game_mode)), int(math.ceil(1750 / gui.game_mode))]
43define gui.mask_f1b_cupboard = [int(math.ceil(2233 / gui.game_mode)), int(math.ceil(699 / gui.game_mode))]
44define gui.mask_f1b_grace_clean = [int(math.ceil(1598 / gui.game_mode)), int(math.ceil(504 / gui.game_mode))]
45define gui.mask_grace_door = [int(math.ceil(859 / gui.game_mode)), int(math.ceil(136 / gui.game_mode))]
46define gui.mask_grace_coffee = [int(math.ceil(2218 / gui.game_mode)), int(math.ceil(521 / gui.game_mode))]
47define gui.mask_grace_watering1 = [int(math.ceil(406 / gui.game_mode)), int(math.ceil(482 / gui.game_mode))]
48define gui.mask_grace_watering2 = [int(math.ceil(500 / gui.game_mode)), int(math.ceil(940 / gui.game_mode))]
49define gui.mask_grace_fox = [int(math.ceil(1467 / gui.game_mode)), int(math.ceil(270 / gui.game_mode))]
50define gui.mask_grace_sleep = [int(math.ceil(2715 / gui.game_mode)), int(math.ceil(1272 / gui.game_mode))]
51define gui.mask_alice_door = [int(math.ceil(728 / gui.game_mode)), int(math.ceil(136 / gui.game_mode))]
52define gui.mask_alice_tv = [int(math.ceil(2283 / gui.game_mode)), int(math.ceil(335 / gui.game_mode))]
53define gui.mask_alice_shelf = [int(math.ceil(2115 / gui.game_mode)), int(math.ceil(605 / gui.game_mode))]
54define gui.mask_alice_person_tv = [int(math.ceil(1601 / gui.game_mode)), int(math.ceil(551 / gui.game_mode))]
55define gui.mask_alice_clothes = [int(math.ceil(61 / gui.game_mode)), int(math.ceil(624 / gui.game_mode))]
56define gui.mask_alice_sleep = [int(math.ceil(2745 / gui.game_mode)), int(math.ceil(1131 / gui.game_mode))]
57define gui.mask_wc_f0 = [int(math.ceil(1600 / gui.game_mode)), int(math.ceil(1600 / gui.game_mode))]
58define gui.mask_f0_kitchen = int(math.ceil(3062 / gui.game_mode))
59define gui.mask_f0_wc = [int(math.ceil(2501 / gui.game_mode)), int(math.ceil(109 / gui.game_mode))]
60define gui.mask_f0_bath = [int(math.ceil(1438 / gui.game_mode)), int(math.ceil(111 / gui.game_mode))]
61define gui.mask_f0_dog = [int(math.ceil(1311 / gui.game_mode)), int(math.ceil(534 / gui.game_mode))]
62define gui.mask_bath_f0 = [int(math.ceil(1800 / gui.game_mode)), int(math.ceil(1700 / gui.game_mode))]
63define gui.mask_kitchen_f0 = [int(math.ceil(1800 / gui.game_mode)), int(math.ceil(1600 / gui.game_mode))]
64define gui.mask_kitchen_fridge = [int(math.ceil(2922 / gui.game_mode)), int(math.ceil(372 / gui.game_mode))]
65define gui.mask_kitchen_cat = [int(math.ceil(2095 / gui.game_mode)), int(math.ceil(195 / gui.game_mode))]
66define gui.mask_kitchen_cooking1 = [int(math.ceil(1309 / gui.game_mode)), int(math.ceil(186 / gui.game_mode))]
67define gui.mask_lobby_f0 = [int(math.ceil(1644 / gui.game_mode)), int(math.ceil(103 / gui.game_mode))]
68define gui.mask_lobby_door2 = [int(math.ceil(3025 / gui.game_mode)), int(math.ceil(92 / gui.game_mode))]
69define gui.mask_lobby_f1 = [int(math.ceil(2111 / gui.game_mode)), int(math.ceil(0 / gui.game_mode))]
70define gui.mask_lobby_door = [int(math.ceil(255 / gui.game_mode)), int(math.ceil(900 / gui.game_mode))]
71define gui.mask_lobby_counter = [int(math.ceil(1768 / gui.game_mode)), int(math.ceil(329 / gui.game_mode))]
72define gui.mask_lobby_cat = [int(math.ceil(3180 / gui.game_mode)), int(math.ceil(495 / gui.game_mode))]
73define gui.mask_lobby_dog = [int(math.ceil(1012 / gui.game_mode)), int(math.ceil(338 / gui.game_mode))]
74define gui.mask_lobby_clean_l = [int(math.ceil(1295 / gui.game_mode)), int(math.ceil(207 / gui.game_mode))]
75define gui.mask_vault_lobby = int(math.ceil(1762 / gui.game_mode))
76define gui.mask_vault_chest = [int(math.ceil(1807 / gui.game_mode)), int(math.ceil(721 / gui.game_mode))]
77define gui.mask_forge_create = [int(math.ceil(1055 / gui.game_mode)), int(math.ceil(805 / gui.game_mode))]
78define gui.mask_forge_upgrade = [int(math.ceil(2128 / gui.game_mode)), int(math.ceil(859 / gui.game_mode))]
79define gui.mask_forge_destroy = [int(math.ceil(1454 / gui.game_mode)), int(math.ceil(661 / gui.game_mode))]
80define gui.mask_gym_lobby = int(math.ceil(1806 / gui.game_mode))
81define gui.mask_gym_agi = [int(math.ceil(480 / gui.game_mode)), int(math.ceil(227 / gui.game_mode))]
82define gui.mask_gym_str = [int(math.ceil(1697 / gui.game_mode)), int(math.ceil(214 / gui.game_mode))]
83define gui.mask_gym_vit = [int(math.ceil(2080 / gui.game_mode)), int(math.ceil(262 / gui.game_mode))]
84define gui.mask_gym_alice = [int(math.ceil(2180 / gui.game_mode)), int(math.ceil(0 / gui.game_mode))]
85define gui.mask_lib_door = [int(math.ceil(3075 / gui.game_mode)), int(math.ceil(380 / gui.game_mode))]
86define gui.mask_lib_books_r = [int(math.ceil(1838 / gui.game_mode)), int(math.ceil(282 / gui.game_mode))]
87define gui.mask_lib_books_l = [int(math.ceil(1121 / gui.game_mode)), int(math.ceil(299 / gui.game_mode))]
88define gui.mask_kiara_desk = [int(math.ceil(1855 / gui.game_mode)), int(math.ceil(555 / gui.game_mode))]
89define gui.mask_lib_hotel = [int(math.ceil(3286 / gui.game_mode)), int(math.ceil(1675 / gui.game_mode))]
90define gui.mask_lib_mt_xpos = int(math.ceil(500 / gui.game_mode))
91define gui.mask_dungeon_playroom = [int(math.ceil(475 / gui.game_mode)), int(math.ceil(1478 / gui.game_mode))]
92define gui.mask_dungeon_cells = [int(math.ceil(1492 / gui.game_mode)), int(math.ceil(331 / gui.game_mode))]
RenPy gui.rpy
1################################################################################
2## GUI Configuration Variables
3################################################################################
4
5
6## Colors ######################################################################
7##
8## The colors of text in the interface.
9
10## An accent color used throughout the interface to label and highlight text.
11define gui.accent_color = '#99ccff'
12
13## The color used for a text button when it is neither selected nor hovered.
14define gui.idle_color = '#888888'
15
16## The small color is used for small text, which needs to be brighter/darker to
17## achieve the same effect.
18define gui.idle_small_color = '#aaaaaa'
19
20## The color that is used for buttons and bars that are hovered.
21define gui.hover_color = '#c1e0ff'
22
23## The color used for a text button when it is selected but not focused. A
24## button is selected if it is the current screen or preference value.
25define gui.selected_color = '#ffffff'
26
27## The color used for a text button when it cannot be selected.
28define gui.insensitive_color = '#8888887f'
29
30## Colors used for the portions of bars that are not filled in. These are not
31## used directly, but are used when re-generating bar image files.
32define gui.muted_color = '#3d5166'
33define gui.hover_muted_color = '#5b7a99'
34
35## The colors used for dialogue and menu choice text.
36define gui.text_color = '#ffffff'
37define gui.interface_text_color = '#ffffff'
38
39
40## Fonts and Font Sizes ########################################################
41
42## The font used for in-game text.
43define gui.text_font = "Commissioner-Regular.ttf"
44
45## The font used for character names.
46define gui.name_text_font = "Commissioner-Medium.ttf"
47
48## The font used for out-of-game text.
49define gui.interface_text_font = "Commissioner-Light.ttf"
50
51## The size of normal dialogue text.
52define gui.text_size = int(math.ceil(66 / gui.game_mode))
53
54## The size of character names.
55define gui.name_text_size = int(math.ceil(90 / gui.game_mode))
56
57## The size of text in the game's user interface.
58define gui.interface_text_size = int(math.ceil(66 / gui.game_mode))
59
60## The size of labels in the game's user interface.
61define gui.label_text_size = int(math.ceil(72 / gui.game_mode))
62
63## The size of text on the notify screen.
64define gui.notify_text_size = int(math.ceil(48 / gui.game_mode))
65
66## The size of the game's title.
67define gui.title_text_size = int(math.ceil(150 / gui.game_mode))
68
69
70## Main and Game Menus #########################################################
71
72## The images used for the main and game menus.
73define gui.main_menu_background = Movie(play="Anim/main_menu.webm")
74define gui.game_menu_background = "gui/game_menu.png"
75
76
77## Dialogue ####################################################################
78##
79## These variables control how dialogue is displayed on the screen one line at a
80## time.
81
82## The height of the textbox containing dialogue.
83define gui.textbox_height = int(math.ceil(555 / gui.game_mode))
84
85## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is
86## center, and 1.0 is the bottom.
87define gui.textbox_yalign = 1.0
88
89
90## The placement of the speaking character's name, relative to the textbox.
91## These can be a whole number of pixels from the left or top, or 0.5 to center.
92define gui.name_xpos = int(math.ceil(720 / gui.game_mode))
93define gui.name_ypos = 0
94
95## The horizontal alignment of the character's name. This can be 0.0 for left-
96## aligned, 0.5 for centered, and 1.0 for right-aligned.
97define gui.name_xalign = 0.0
98
99## The width, height, and borders of the box containing the character's name, or
100## None to automatically size it.
101define gui.namebox_width = None
102define gui.namebox_height = None
103
104## The borders of the box containing the character's name, in left, top, right,
105## bottom order.
106define gui.namebox_borders = Borders(5, 5, 5, 5)
107
108## If True, the background of the namebox will be tiled, if False, the
109## background of the namebox will be scaled.
110define gui.namebox_tile = False
111
112
113## The placement of dialogue relative to the textbox. These can be a whole
114## number of pixels relative to the left or top side of the textbox, or 0.5 to
115## center.
116define gui.dialogue_xpos = int(math.ceil(804 / gui.game_mode))
117define gui.dialogue_ypos = int(math.ceil(150 / gui.game_mode))
118
119## The maximum width of dialogue text, in pixels.
120define gui.dialogue_width = int(math.ceil(2232 / gui.game_mode))
121
122## The horizontal alignment of the dialogue text. This can be 0.0 for left-
123## aligned, 0.5 for centered, and 1.0 for right-aligned.
124define gui.dialogue_text_xalign = 0.0
125
126
127## Buttons #####################################################################
128##
129## These variables, along with the image files in gui/button, control aspects of
130## how buttons are displayed.
131
132## The width and height of a button, in pixels. If None, Ren'Py computes a size.
133define gui.button_width = None
134define gui.button_height = None
135
136## The borders on each side of the button, in left, top, right, bottom order.
137define gui.button_borders = Borders(int(math.ceil(12 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)))
138
139## If True, the background image will be tiled. If False, the background image
140## will be linearly scaled.
141define gui.button_tile = False
142
143## The font used by the button.
144define gui.button_text_font = gui.interface_text_font
145
146## The size of the text used by the button.
147define gui.button_text_size = gui.interface_text_size
148
149## The color of button text in various states.
150define gui.button_text_idle_color = gui.idle_color
151define gui.button_text_hover_color = gui.hover_color
152define gui.button_text_selected_color = gui.selected_color
153define gui.button_text_insensitive_color = gui.insensitive_color
154
155## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0
156## is right).
157define gui.button_text_xalign = 0.0
158
159
160## These variables override settings for different kinds of buttons. Please see
161## the gui documentation for the kinds of buttons available, and what each is
162## used for.
163##
164## These customizations are used by the default interface:
165
166define gui.radio_button_borders = Borders(int(math.ceil(54 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)))
167
168define gui.check_button_borders = Borders(int(math.ceil(54 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)))
169
170define gui.confirm_button_text_xalign = 0.5
171
172define gui.page_button_borders = Borders(int(math.ceil(30 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)), int(math.ceil(30 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)))
173
174define gui.quick_button_borders = Borders(int(math.ceil(30 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)), int(math.ceil(30 / gui.game_mode)), 0)
175define gui.quick_button_text_size = int(math.ceil(42 / gui.game_mode))
176define gui.quick_button_text_idle_color = gui.idle_small_color
177define gui.quick_button_text_selected_color = gui.accent_color
178
179## You can also add your own customizations, by adding properly-named variables.
180## For example, you can uncomment the following line to set the width of a
181## navigation button.
182
183# define gui.navigation_button_width = 250
184
185
186## Choice Buttons ##############################################################
187##
188## Choice buttons are used in the in-game menus.
189
190define gui.choice_button_width = int(math.ceil(2370 / gui.game_mode))
191define gui.choice_button_height = None
192define gui.choice_button_tile = False
193define gui.choice_button_borders = Borders(int(math.ceil(300 / gui.game_mode)), int(math.ceil(15 / gui.game_mode)), int(math.ceil(300 / gui.game_mode)), int(math.ceil(15 / gui.game_mode)))
194define gui.choice_button_text_font = gui.text_font
195define gui.choice_button_text_size = gui.text_size
196define gui.choice_button_text_xalign = 0.5
197define gui.choice_button_text_idle_color = "#cccccc"
198define gui.choice_button_text_hover_color = "#ffffff"
199define gui.choice_button_text_insensitive_color = "#444444"
200
201
202## File Slot Buttons ###########################################################
203##
204## A file slot button is a special kind of button. It contains a thumbnail
205## image, and text describing the contents of the save slot. A save slot uses
206## image files in gui/button, like the other kinds of buttons.
207
208## The save slot button.
209define gui.slot_button_width = int(math.ceil(828 / gui.game_mode))
210define gui.slot_button_height = int(math.ceil(618 / gui.game_mode))
211define gui.slot_button_borders = Borders(int(math.ceil(30 / gui.game_mode)), int(math.ceil(30 / gui.game_mode)), int(math.ceil(30 / gui.game_mode)), int(math.ceil(30 / gui.game_mode)))
212define gui.slot_button_text_size = int(math.ceil(42 / gui.game_mode))
213define gui.slot_button_text_xalign = 0.5
214define gui.slot_button_text_idle_color = gui.idle_small_color
215define gui.slot_button_text_selected_idle_color = gui.selected_color
216define gui.slot_button_text_selected_hover_color = gui.hover_color
217
218## The width and height of thumbnails used by the save slots.
219define config.thumbnail_width = 768
220define config.thumbnail_height = 432
221
222## The number of columns and rows in the grid of save slots.
223define gui.file_slot_cols = 3
224define gui.file_slot_rows = 2
225
226
227## Positioning and Spacing #####################################################
228##
229## These variables control the positioning and spacing of various user interface
230## elements.
231
232## The position of the left side of the navigation buttons, relative to the left
233## side of the screen.
234define gui.navigation_xpos = int(math.ceil(120 / gui.game_mode))
235
236## The vertical position of the skip indicator.
237define gui.skip_ypos = int(math.ceil(30 / gui.game_mode))
238
239## The vertical position of the notify screen.
240define gui.notify_ypos = int(math.ceil(135 / gui.game_mode))
241
242## The spacing between menu choices.
243define gui.choice_spacing = int(math.ceil(66 / gui.game_mode))
244
245## Buttons in the navigation section of the main and game menus.
246define gui.navigation_spacing = int(math.ceil(12 / gui.game_mode))
247
248## Controls the amount of spacing between preferences.
249define gui.pref_spacing = int(math.ceil(30 / gui.game_mode))
250
251## Controls the amount of spacing between preference buttons.
252define gui.pref_button_spacing = 0
253
254## The spacing between file page buttons.
255define gui.page_spacing = 0
256
257## The spacing between file slots.
258define gui.slot_spacing = int(math.ceil(30 / gui.game_mode))
259
260## The position of the main menu text.
261define gui.main_menu_text_xalign = 1.0
262
263
264## Frames ######################################################################
265##
266## These variables control the look of frames that can contain user interface
267## components when an overlay or window is not present.
268
269## Generic frames.
270define gui.frame_borders = Borders(int(math.ceil(12 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)), int(math.ceil(12 / gui.game_mode)))
271
272## The frame that is used as part of the confirm screen.
273define gui.confirm_frame_borders = Borders(int(math.ceil(120 / gui.game_mode)), int(math.ceil(120 / gui.game_mode)), int(math.ceil(120 / gui.game_mode)), int(math.ceil(120 / gui.game_mode)))
274
275## The frame that is used as part of the skip screen.
276define gui.skip_frame_borders = Borders(int(math.ceil(48 / gui.game_mode)), int(math.ceil(15 / gui.game_mode)), int(math.ceil(150 / gui.game_mode)), int(math.ceil(15 / gui.game_mode)))
277
278## The frame that is used as part of the notify screen.
279define gui.notify_frame_borders = Borders(int(math.ceil(48 / gui.game_mode)), int(math.ceil(15 / gui.game_mode)), int(math.ceil(120 / gui.game_mode)), int(math.ceil(15 / gui.game_mode)))
280
281## Should frame backgrounds be tiled?
282define gui.frame_tile = False
283
284
285## Bars, Scrollbars, and Sliders ###############################################
286##
287## These control the look and size of bars, scrollbars, and sliders.
288##
289## The default GUI only uses sliders and vertical scrollbars. All of the other
290## bars are only used in creator-written screens.
291
292## The height of horizontal bars, scrollbars, and sliders. The width of vertical
293## bars, scrollbars, and sliders.
294define gui.bar_size = int(math.ceil(75 / gui.game_mode))
295define gui.scrollbar_size = int(math.ceil(36 / gui.game_mode))
296define gui.slider_size = int(math.ceil(75 / gui.game_mode))
297
298## True if bar images should be tiled. False if they should be linearly scaled.
299define gui.bar_tile = False
300define gui.scrollbar_tile = False
301define gui.slider_tile = False
302
303## Horizontal borders.
304define gui_borders_size = int(math.ceil(12 / gui.game_mode))
305define gui.bar_borders = Borders(gui_borders_size, gui_borders_size, gui_borders_size, gui_borders_size)
306define gui.scrollbar_borders = Borders(gui_borders_size, gui_borders_size, gui_borders_size, gui_borders_size)
307define gui.slider_borders = Borders(gui_borders_size, gui_borders_size, gui_borders_size, gui_borders_size)
308
309## Vertical borders.
310define gui.vbar_borders = Borders(gui_borders_size, gui_borders_size, gui_borders_size, gui_borders_size)
311define gui.vscrollbar_borders = Borders(gui_borders_size, gui_borders_size, gui_borders_size, gui_borders_size)
312define gui.vslider_borders = Borders(gui_borders_size, gui_borders_size, gui_borders_size, gui_borders_size)
313
314## What to do with unscrollable scrollbars in the gui. "hide" hides them, while
315## None shows them.
316define gui.unscrollable = "hide"
317
318
319## History #####################################################################
320##
321## The history screen displays dialogue that the player has already dismissed.
322
323## The number of blocks of dialogue history Ren'Py will keep.
324define config.history_length = 250
325
326## The height of a history screen entry, or None to make the height variable at
327## the cost of performance.
328define gui.history_height = int(math.ceil(420 / gui.game_mode))
329
330## The position, width, and alignment of the label giving the name of the
331## speaking character.
332define gui.history_name_xpos = int(math.ceil(465 / gui.game_mode))
333define gui.history_name_ypos = 0
334define gui.history_name_width = int(math.ceil(465 / gui.game_mode))
335define gui.history_name_xalign = 1.0
336
337## The position, width, and alignment of the dialogue text.
338define gui.history_text_xpos = int(math.ceil(510 / gui.game_mode))
339define gui.history_text_ypos = int(math.ceil(6 / gui.game_mode))
340define gui.history_text_width = int(math.ceil(2220 / gui.game_mode))
341define gui.history_text_xalign = 0.0
342
343
344## NVL-Mode ####################################################################
345##
346## The NVL-mode screen displays the dialogue spoken by NVL-mode characters.
347
348## The borders of the background of the NVL-mode background window.
349define gui.nvl_borders = Borders(0, int(math.ceil(30 / gui.game_mode)), 0, int(math.ceil(60 / gui.game_mode)))
350
351## The maximum number of NVL-mode entries Ren'Py will display. When more entries
352## than this are to be show, the oldest entry will be removed.
353define gui.nvl_list_length = 6
354
355## The height of an NVL-mode entry. Set this to None to have the entries
356## dynamically adjust height.
357define gui.nvl_height = int(math.ceil(345 / gui.game_mode))
358
359## The spacing between NVL-mode entries when gui.nvl_height is None, and between
360## NVL-mode entries and an NVL-mode menu.
361define gui.nvl_spacing = int(math.ceil(30 / gui.game_mode))
362
363## The position, width, and alignment of the label giving the name of the
364## speaking character.
365define gui.nvl_name_xpos = int(math.ceil(1290 / gui.game_mode))
366define gui.nvl_name_ypos = 0
367define gui.nvl_name_width = int(math.ceil(450 / gui.game_mode))
368define gui.nvl_name_xalign = 1.0
369
370## The position, width, and alignment of the dialogue text.
371define gui.nvl_text_xpos = int(math.ceil(1350 / gui.game_mode))
372define gui.nvl_text_ypos = int(math.ceil(24 / gui.game_mode))
373define gui.nvl_text_width = int(math.ceil(1770 / gui.game_mode))
374define gui.nvl_text_xalign = 0.0
375
376## The position, width, and alignment of nvl_thought text (the text said by the
377## nvl_narrator character.)
378define gui.nvl_thought_xpos = int(math.ceil(720 / gui.game_mode))
379define gui.nvl_thought_ypos = 0
380define gui.nvl_thought_width = int(math.ceil(2340 / gui.game_mode))
381define gui.nvl_thought_xalign = 0.0
382
383## The position of nvl menu_buttons.
384define gui.nvl_button_xpos = int(math.ceil(1350 / gui.game_mode))
385define gui.nvl_button_xalign = 0.0
386
387## Localization ################################################################
388
389## This controls where a line break is permitted. The default is suitable
390## for most languages. A list of available values can be found at https://
391## www.renpy.org/doc/html/style_properties.html#style-property-language
392
393define gui.language = "unicode"
394
395
396################################################################################
397## Mobile devices
398################################################################################
399
400init python:
401
402 ## This increases the size of the quick buttons to make them easier to touch
403 ## on tablets and phones.
404 if renpy.variant("touch"):
405
406 gui.quick_button_borders = Borders(int(math.ceil(120 / gui.game_mode)), int(math.ceil(42 / gui.game_mode)), int(math.ceil(120 / gui.game_mode)), 0)
407
408 ## This changes the size and spacing of various GUI elements to ensure they
409 ## are easily visible on phones.
410 if renpy.variant("small"):
411
412 ## Font sizes.
413 gui.text_size = int(math.ceil(90 / gui.game_mode))
414 gui.name_text_size = int(math.ceil(108 / gui.game_mode))
415 gui.notify_text_size = int(math.ceil(75 / gui.game_mode))
416 gui.interface_text_size = int(math.ceil(90 / gui.game_mode))
417 gui.button_text_size = int(math.ceil(90 / gui.game_mode))
418 gui.label_text_size = int(math.ceil(102 / gui.game_mode))
419
420 ## Adjust the location of the textbox.
421 gui.textbox_height = int(math.ceil(720 / gui.game_mode))
422 gui.name_xpos = int(math.ceil(240 / gui.game_mode))
423 gui.text_xpos = int(math.ceil(270 / gui.game_mode))
424 gui.text_width = int(math.ceil(3300 / gui.game_mode))
425
426 ## Change the size and spacing of various things.
427 gui.slider_size = int(math.ceil(108 / gui.game_mode))
428
429 gui.choice_button_width = int(math.ceil(3720 / gui.game_mode))
430
431 gui.navigation_spacing = int(math.ceil(60 / gui.game_mode))
432 gui.pref_button_spacing = int(math.ceil(30 / gui.game_mode))
433
434 gui.history_height = int(math.ceil(570 / gui.game_mode))
435 gui.history_text_width = int(math.ceil(2070 / gui.game_mode))
436
437 gui.quick_button_text_size = int(math.ceil(60 / gui.game_mode))
438
439 ## File button layout.
440 gui.file_slot_cols = 2
441 gui.file_slot_rows = 2
442
443 ## NVL-mode.
444 gui.nvl_height = int(math.ceil(510 / gui.game_mode))
445
446 gui.nvl_name_width = int(math.ceil(915 / gui.game_mode))
447 gui.nvl_name_xpos = int(math.ceil(975 / gui.game_mode))
448
449 gui.nvl_text_width = int(math.ceil(2745 / gui.game_mode))
450 gui.nvl_text_xpos = int(math.ceil(1035 / gui.game_mode))
451 gui.nvl_text_ypos = int(math.ceil(15 / gui.game_mode))
452
453 gui.nvl_thought_width = int(math.ceil(3720 / gui.game_mode))
454 gui.nvl_thought_xpos = int(math.ceil(60 / gui.game_mode))
455
456 gui.nvl_button_width = int(math.ceil(3720 / gui.game_mode))
457 gui.nvl_button_xpos = int(math.ceil(60 / gui.game_mode))
RenPy screens.rpy
1## Ren'Py screens.rpy
2## Example: define gui.renpy_ = int(math.ceil( / gui.game_mode))
3define gui.renpy_choices = int(math.ceil(810 / gui.game_mode))
4define gui.renpy_main_menu_frame = int(math.ceil(840 / gui.game_mode))
5define gui.renpy_main_menu_vbox_xoffset = int(math.ceil(-60 / gui.game_mode))
6define gui.renpy_main_menu_vbox_xmaximum = int(math.ceil(2400 / gui.game_mode))
7define gui.renpy_main_menu_vbox_yoffset = int(math.ceil(-60 / gui.game_mode))
8define gui.renpy_outer_frame_bottom_padding = int(math.ceil(90 / gui.game_mode))
9define gui.renpy_outer_frame_top_padding = int(math.ceil(360 / gui.game_mode))
10define gui.renpy_navigation_frame = int(math.ceil(840 / gui.game_mode))
11define gui.renpy_content_frame_left_margin = int(math.ceil(120 / gui.game_mode))
12define gui.renpy_content_frame_right_margin = int(math.ceil(60 / gui.game_mode))
13define gui.renpy_content_frame_top_margin = int(math.ceil(30 / gui.game_mode))
14define gui.renpy_menu_viewport = int(math.ceil(2760 / gui.game_mode))
15define gui.renpy_menu_side = int(math.ceil(30 / gui.game_mode))
16define gui.renpy_menu_label_xpos = int(math.ceil(150 / gui.game_mode))
17define gui.renpy_menu_label_ysize = int(math.ceil(360 / gui.game_mode))
18define gui.renpy_return_button = int(math.ceil(-90 / gui.game_mode))
19define gui.renpy_page_label_xpadding = int(math.ceil(150 / gui.game_mode))
20define gui.renpy_page_label_ypadding = int(math.ceil(10 / gui.game_mode))
21define gui.renpy_pref_label = int(math.ceil(6 / gui.game_mode))
22define gui.renpy_pref_vbox = int(math.ceil(675 / gui.game_mode))
23define gui.renpy_slider_slider = int(math.ceil(1050 / gui.game_mode))
24define gui.renpy_slider_button = int(math.ceil(30 / gui.game_mode))
25define gui.renpy_slider_vbox = int(math.ceil(1350 / gui.game_mode))
26define gui.renpy_help = int(math.ceil(45 / gui.game_mode))
27define gui.renpy_help_button = int(math.ceil(24 / gui.game_mode))
28define gui.renpy_help_label_xsize = int(math.ceil(750 / gui.game_mode))
29define gui.renpy_help_label_right_padding = int(math.ceil(60 / gui.game_mode))
30define gui.renpy_confirm_vbox_spacing = int(math.ceil(90 / gui.game_mode))
31define gui.renpy_confirm_hbox_spacing = int(math.ceil(300 / gui.game_mode))
32define gui.renpy_skip_indicator = int(math.ceil(18 / gui.game_mode))
33define gui.renpy_mobile_pref_vbox_medium = int(math.ceil(1350 / gui.game_mode))
34define gui.renpy_mobile_navigation_frame = int(math.ceil(1020 / gui.game_mode))
35define gui.renpy_mobile_pref_vbox_small = int(math.ceil(1200 / gui.game_mode))
36define gui.renpy_mobile_slider_pref_slider = int(math.ceil(1800 / gui.game_mode))
Enemies
Create new enemy
Add enemy to generic combat
You can add new enemies to the generic combat by adding your enemy object to the list. There are four lists for enemies:
gen_enemies_normal
gen_enemies_elite
gen_enemies_boss
gen_enemies_elite_boss
They differ by encounter chance. The stronger the player the closer the chances are to being equal.
gen_enemies_normal.append(My_Enemy())
Create/Change lootlist and droplist
Lootlist contains only cards
Droplist contains only items
To create your lootlist you need to add your lootlist: loot
to the lootlist
dictionary.
1my_lootlist = {
2 # Replace existing lootlist
3 "werewolf": [My_Card(), ...],
4
5 # New lootlist
6 "my_loot": [Aharon(), My_Card2(), ...]
7 }
8
9# Add & replace lootlist found in my_lootlist
10for x in my_lootlist:
11 lootlist.update({x: my_lootlist[x]})
Above code adds your lootlist to the game and replaces the ones in game with your replacements
Lootlists
Changing & adding lootlists
1init 11 python:
2
3 ###################
4 # Cards lootlists #
5 ###################
6
7 # Replacing lootlist, this code changes werewolf lootlist, it now drops four cards: MyCard1, MyCard2, Lycanthropy, Insatiable Lust
8 lootlist["werewolf"] = [MyCard1(), MyCard2(), Lycantrophy(), Insatiable_Lust()]
9
10 # Adding card to a lootlist, it adds card (with class name) MyCard, the rest of lootlist remains
11 lootlist["werewolf"].append(MyCard())
12
13 # Create new lootlist, it creates myLootlist with cards MyCard1 and MyCard2
14 lootlist.update({"myLootlist", [MyCard1(), MyCard2()]})
15
16 ######################
17 # Material lootlists #
18 ######################
19
20 # Replacing lootlist this replaces orc lootlist, it gives the lootlist:
21 # 65% for 1-3 Wood,
22 # 50% for 1-3 Stone,
23 # 50% for 1-3 Metal
24 mat_lootlist.update({"orc": {
25 "Wood": [0.65, 1, 3],
26 "Stone": [0.5, 1, 3],
27 "Metal": [0.5, 1, 3]
28 }})
29
30 # Adding material to lootlist / Changing materials amount & drop chance
31 # This adds Cloth to orc lootlist with 5% chance for 2-4 Cloth.
32 # You can this same way overwrite other items with your own chances, amounts
33 mat_lootlist["orc"].update({"Cloth": [0.05, 2, 4]})
34
35 # Create new lootlist, it creates myList with 100% chance for 4-5 Wood and 1% chance for 1 Mysterious Coin
36 mat_lootlist.update({"myList": {
37 "Wood": [1.0, 4, 5],
38 "Mysterious Coin": [0.01, 1, 1]
39 }})
Cards - Enemies
1"werewolf": [Lycantrophy(), Bite(), Empower(), Dodge(), Slash(), Healing(), Greater_Healing(), Regrow_Limbs()],
2"bandits_melee": [Slash(), Retaliate(), Kick(), Blind(), Guard(), Headbutt(), Stab(), Flurry()],
3"bandits_guns": [Bulletstorm(), Dodge(), Shot(), Kick(), Take_Cover(), Strike()],
4"bandits": [Bulletstorm(), Dodge(), Shot(), Kick(), Take_Cover(), Strike(), Slash(), Retaliate(), Flurry(), Blind(), Guard(), Headbutt(), Stab()],
5"spider": [Bite(), Spit_Poison(), Poisonous_Bite(), Hide_in_the_Shadows(), Lunge()],
6"scavengers": [Slash(), Retaliate(), Blind(), Guard(), Headbutt(), Shot(), Take_Cover()],
7"bandit_melee": [Slash(), Blind(), Retaliate(), Strike(), Defend(), Kick(), Guard(), Stab(), Headbutt()],
8"bandit_melee_girl": [Slash(), Blind(), Retaliate(), Strike(), Defend(), Kick(), Guard(), Stab(), Headbutt(), Seduce(), Flirtatious_Look()],
9"orc": [Fury(), Roar(), Flurry(), Slash(), Retaliate(), Kick(), Freedom_in_Death(), Empower(), Guard(), Headbutt(), Sharpening(), Horde_Weapons(), Strike(), Defend()],
10"manticore": [Fury(), Roar(), Spit_Poison(), Poisonous_Bite(), Lunge(), Headbutt(), Dodge(), Healing(), Bite(), Retaliate(), Stab(), Antidote()],
11"flamingo": [Mutate(), Bite(), Dodge(), Enfeeble(), Infection(), Despair()],
12"faceless_giant": [Roar(), Fury(), Terror(), Despair(), Crush(), Sweep(), Giant(), Madness(), Insanity(), Faceless(), Veil_of_Shadows(), Kick(), Freedom_in_Death(), Guard(), Hide_in_the_Shadows()],
13"faceless": [Fury(), Madness(), Insanity(), Faceless(), Veil_of_Shadows(), Freedom_in_Death(), Guard(), Hide_in_the_Shadows()],
14"devourer_giant": [Roar(), Fury(), Terror(), Despair(), Crush(), Sweep(), Giant(), Madness(), Insanity(), Devour(), Insatiable_Hunger(), Kick(), Freedom_in_Death(), Bite(), Guard()],
15"devourer": [Fury(), Madness(), Insanity(), Devour(), Insatiable_Hunger(), Freedom_in_Death(), Bite(), Guard()],
16"succubus": [Seduce(), Flirtatious_Look(), Slash(), Insatiable_Lust(), Guard(), Freedom(), Flurry(), Enfeeble(), Hypnotise(), Cease_Fire_Treaty()],
17"cultist": [Miracle(), Slash(), Kick(), Empower(), Hide_in_the_Shadows(), Freedom_in_Death(), Stab(), Hypnotise(), Outside(), Terror(), Despair(), Madness(), Insanity(), Veil_of_Shadows(), Ritual(), Aharon(), Sacrifice(), Dodge()],
18"crab": [Stone_Skin(), Strike(), Defend(), Regrow_Limbs(), Roar(), Fury(), Mutate(), Terror(), Sweep(), Unshakable(), Retaliate(), Guard()],
19"dragon": [Fireborn(), Fireball(), Dragon_Roar(), Fire_Breath(), Roar(), Terror(), Sweep(), Giant(), Bite(), Crush(), Guard(), Healing(), Retaliate()],
20"stickman": [Terror(), Madness(), Kick(), Freedom_in_Death(), Mutate(), Guard(), Stab(), Lunge(), Headbutt()],
21"ghouls": [Bite(), Poisonous_Bite(), Dodge(), Healing(), Lunge(), Antidote(), Slash(), Retaliate(), Devour()]
Cards - Traders
1"devil_abi": [Miracle(), Fireborn(), Lycantrophy(), Vampirism(), Freedom(), Freedom_in_Death(), Cease_Fire_Treaty(), Outside(), Terror(), Despair(), Crush(), Madness(), Insanity(), Insatiable_Lust(), Aharon(), Dragon_Roar()],
2"tarot": [The_Fool(), The_Magican(), The_High_Priestess(), The_Empress(), The_Emperor(), The_Hierophant(), The_Lovers(), The_Chariot(), Justice(), The_Hermit(), Wheel_of_Fortune(), Strength(), The_Hanged_Man(), Death(), Temperance(), The_Devil(), The_Tower(), The_Star(), The_Moon(), The_Sun(), Judgement(), The_World()]
Materials
1define mat_lootlist = {
2 "materials_basic": {
3 "Wood": [0.5, 1, 3], # item: [chance, min, max]
4 "Stone": [0.5, 1, 3],
5 "Metal": [0.5, 1, 3],
6 "Cloth": [0.5, 1, 3],
7 "Mysterious Coin": [0.01, 1, 1]
8}}
Materials - Enemies
1"werewolf": {"Wood": [0.65, 1, 3], "Stone": [0.5, 1, 3], "Metal": [0.5, 1, 3], "Cloth": [0.8, 1, 3], "Mysterious Coin": [0.01, 1, 1]},
2"bandits": {"Wood": [0.65, 1, 3], "Stone": [0.4, 1, 2], "Metal": [0.7, 1, 3], "Cloth": [0.8, 1, 4], "Mysterious Coin": [0.01, 1, 1]},
3"bandit": {"Wood": [0.65, 1, 2], "Stone": [0.4, 1, 1], "Metal": [0.7, 1, 2], "Cloth": [0.9, 1, 3], "Mysterious Coin": [0.01, 1, 1]},
4"spider": {"Wood": [0.65, 1, 2], "Metal": [0.5, 1, 2], "Cloth": [0.8, 1, 2], "Mysterious Coin": [0.01, 1, 1]},
5"scavengers": {"Wood": [0.8, 1, 1], "Stone": [0.8, 1, 1], "Metal": [0.8, 1, 1], "Cloth": [0.8, 1, 1], "Mysterious Coin": [0.01, 1, 1]},
6"orc": {"Wood": [0.55, 1, 3], "Stone": [0.7, 1, 3], "Metal": [0.9, 1, 3], "Cloth": [0.5, 1, 3], "Mysterious Coin": [0.01, 1, 1]},
7"orc_group": {"Wood": [0.55, 1, 7], "Stone": [0.7, 3, 7], "Metal": [0.9, 2, 7], "Cloth": [0.5, 2, 7], "Mysterious Coin": [0.15, 1, 1]},
8"manticore": {"Cloth": [1.0, 2, 8], "Mysterious Coin": [0.03, 1, 1]},
9"flamingo": {"Wood": [0.4, 1, 1], "Stone": [0.4, 1, 1], "Metal": [0.4, 1, 1], "Cloth": [0.4, 1, 1], "Mysterious Coin": [0.01, 1, 1]},
10"faceless_giant": {"Wood": [0.6, 1, 7], "Stone": [0.6, 1, 7], "Metal": [0.6, 1, 7], "Cloth": [0.6, 1, 7], "Mysterious Coin": [0.1, 1, 1]},
11"devourer_giant": {"Wood": [0.6, 1, 7], "Stone": [0.6, 1, 7], "Metal": [0.6, 1, 7], "Cloth": [0.6, 1, 7], "Mysterious Coin": [0.1, 1, 1]},
12"succubus": {"Wood": [0.65, 1, 3], "Stone": [0.5, 1, 3], "Metal": [0.5, 1, 3], "Cloth": [0.8, 1, 3], "Mysterious Coin": [0.1, 1, 1]},
13"cultist": {"Wood": [0.7, 1, 10], "Stone": [0.7, 1, 10], "Metal": [0.7, 1, 10], "Cloth": [0.8, 1, 10], "Mysterious Coin": [0.15, 1, 1]},
14"crab": {"Stone": [1.0, 2, 6], "Metal": [1.0, 2, 6], "Mysterious Coin": [0.03, 1, 1]},
15"ghouls": {"Wood": [0.8, 2, 5], "Stone": [0.6, 1, 3], "Metal": [0.6, 1, 3], "Cloth": [0.5, 1, 3], "Mysterious Coin": [0.01, 1, 1]},
16"dragon": {"Wood": [0.5, 1, 6], "Stone": [0.9, 3, 10], "Metal": [1.0, 4, 12], "Cloth": [0.5, 1, 6], "Mysterious Coin": [0.5, 1, 1]},
17"stickman": {"Wood": [1.0, 3, 8], "Mysterious Coin": [0.1, 1, 1]},
18"orc_group": {"Wood": [0.6, 1, 7], "Stone": [0.6, 1, 7], "Metal": [0.7, 3, 7], "Cloth": [0.6, 1, 7], "Mysterious Coin": [0.1, 1, 1]}
Materials - Cheats
1"cheat_starter": {"Wood": [1.0, 3, 3], "Stone": [1.0, 3, 3], "Metal": [1.0, 3, 3], "Cloth": [1.0, 3, 3]},
2"cheat_builder": {"Wood": [1.0, 5, 5], "Stone": [1.0, 5, 5], "Metal": [1.0, 5, 5], "Cloth": [1.0, 5, 5]},
3"cheat_mysteries": {"Mysterious Coin": [1.0, 1, 1]},
4"cheat_forge": {"Wood": [1.0, 5, 5], "Stone": [1.0, 5, 5], "Metal": [1.0, 15, 15], "Cloth": [1.0, 5, 5]}
Materials - Exploration
1"orc_camp": {"Wood": [1.0, 1, 3], "Metal": [1.0, 1, 3], "Stone": [1.0, 1, 3], "Cloth": [1.0, 1, 3], "Mysterious Coin": [0.05, 1, 1]},
2"exp_house": {"Wood": [0.75, 2, 5], "Stone": [0.75, 1, 2], "Metal": [0.75, 1, 2], "Cloth": [0.75, 1, 4]},
3"exp_b_rape": {"Wood": [0.75, 1, 2], "Stone": [0.75, 1, 1], "Metal": [0.75, 1, 1], "Cloth": [1, 1, 2]},
4"exp_rose": {"Rose": [1.0, 1, 1], "Wood": [1.0, 1, 3]},
Triggers
Triggers are added by demand! Additional modding support can also be added by demand, ask me on the Discord.
Using a trigger
To add your own mechanics right into vanilla code without actually overwriting any files you need to use the trigger system I’ve invented for this purpose.
It takes code as string or code compiled with compile("code", "triggers", "exec")
.
You don’t need to compile code yourself.
I got you covered, it is compiled automatically at the game startup, on init 995.
Trigger system acts as a code injector, we tell it what to inject by appending our code to triggers. The code works like if it was always there, in other word you can use self.
or local variables. Remember that using global variable inside of function/method requires to define it in function/method with global myVar
.
1init 11 python:
2 # Code to inject, here it calls our function named myfunction()
3 myfun = "myfunction()"
4
5 # Compile your code to code object, it improves performance, if you don't do this it'll be done by trigger system, but for now it's slower
6 com_myfun = compile(myfun, "triggers", "exec")
7
8 # Add code object com_myfun, we just compiled to trigger before_combat, your code will be executed always the trigger before_combat is used
9 trigger.add("before_combat", com_myfun)
10
11# This uses the trigger, they are already included in parts of vanilla script
12trigger.use("before_combat")
Adding our own status effect
Adding our own status effects comes with three steps:
Add our effect, to the being.eff
Program our effect’s mechanic
Make an icon
Add our effect, to the being.eff
The simplest thing to do. We add being.eff.update({"SuperPower", "Triples the damage dealt!"})
at init time.
Keep in mind that when there is a new effect, loading game will throw an error if in combat.
Saves inside of combat will throw an error on load without compatibility patch.
Patch can be injected to trigger.after_load_start
or trigger.after_load_end
.
The error also will appear if loading save within combat after removing the mod. So remember to save outside of combat.
Saves outside of combat won’t have any problems.
1init 11 python:
2 # being.eff.update({"Effect Name", "Tooltip"})
3 being.eff.update({"SuperPower", "Triples the damage dealt! Every attack uses 1 stack."})
Program our effect’s mechanic
1init 11 python:
2 # being.eff.update({"Effect Name", "Tooltip"})
3 being.eff.update({"SuperPower", "Triples the damage dealt! Every attack uses 1 stack."})
4
5 command = "if self.eff['SuperPower'][0] > 0: \n dmg = dmg * 3 \n self.eff['SuperPower'][0] -= 1"
6
7 trigger.add("take_dmg_before_attack", com_command)
Make an icon
I’ve made all my icons here: Game-icons.net
It’s a great site that allows you to download and customize over 4000 game icons. The perfect resolution would be 128x128 pixels. It’s a good balance between quality and performance. Game will resize the icon on its own depending on 4K or 1080p game version.
For now your icon need to be put in game/images/Icons/
. I plan to add support for your own paths, in your mod’s folder.
List of triggers
Update
"after_load_start"
- First thing on loading saved, inside python block"after_load_end"
- The end of save loading, outside of python block
fight()
# fight() function - initialization of combat #
"start_of_fight"
- The start of fight() function"middle_of_fight"
- Middle of fight() function, before defining piles"before_shuffle"
- Before shuffling deck"before_combat_screen"
- Before combat screens are initialized"before_combat"
- Right before actual combat starts
Combat
End turn order:
player turn damage
enemy turn damage
enemy turn1
enemy action
enemy turn2
player turn2
player turn1
"before_discard"
- Before cards are discarded from hand"after_discard"
- After cards been discarded, before other things"after_turn_damage"
- After calculating damage from effects"before_enemy_action"
- Before enemy makes an action"after_enemy_action"
- After enemy makes an action"after_decrease_effects"
- Afterturn2()
(effects decrease)"before_new_turn"
- Right before new turn"before_new_turn_alt"
- Right before new turn, screen isn’t blocked"combat_before_return"
- After choosing a card, before returning from combat"before_loot_cards"
- Before loot_cards is called"before_on_death"
- Right before callingenemy.on_death()
Escape
"on_escape"
- When trying to escape combat"on_escape_success"
- When succed in escape roll, before actual escape"on_escape_fail"
- When failed to escape
Cards
"card_use"
- On using a card, before anything else"card_before_play"
- Right before card is played"card_after_play"
- Right after card is played"card_after_use"
- After all cards interactions are done
turn1()
"turn1_start"
- Beginning of turn1"turn1_end"
- End of turn1
turn2()
"turn2_start"
- Beginning of turn2"turn2_end"
- End of turn2
turn_dmg()
"turn_dmg_start"
- Beginning ofturn_dmg
."turn_dmg_end"
- End ofturn_dmg
.
take_dmg()
"take_dmg_start"
- Beginning oftake_dmg
, afteris_player
is defined, it can be used to check if executed by player or enemy."take_dmg_before_attack"
- Right before damage is dealt."take_dmg_after_attack"
- Right after damage is dealt."take_dmg_end"
- End oftake_dmg
.
Enemy
"enemy_atk_start"
- Beginning of atk method."enemy_before_attack"
- Right before damage is dealt (beforeplayer.take_dmg(dmg)
is called)."enemy_after_attack"
- Right before damage is dealt (beforeplayer.take_dmg(dmg)
is called)."enemy_atk_end"
- End of atk method.
Looting
"choose_card"
- On selecting a card to loot. Before other things, end with return to use instead of defaultinventory.cards.append()
, card variable is available (it contains card object)."start_looting"
- At the very beginning of card loot function."loot_screen"
- Right before looting screen appears.
Below triggers are inside python statement:
"selecting_loot"
- Before cards are selected."generate_lootlist"
- Before loot chances are generated.
Special
"test"
- Used with debug() method to run all triggers’ codes at once, you don’t need to manually add to it, it’s added automatically
Prisoners
Prisoner system was implemented in 0.1.3 and it allows us to catch beings and keep them in the dungeon. It automatically checks if said enemy can be catched. It also allows us to visit the prisoner in the dungeon.
This system has safety features enabled, if you use the mod that adds prisoners, but delete it, your save will work. Even more! It’ll save your prisoner, so that when you install the mod again, your prisoner will be waiting for you in the dungeon. No need to catch him/her/it again.
Add new prisoner
You need to add your prisoner to available_prisoners
at the init time.
It’s here so that mods which adds them can be safely removed.
# Prisoner's image Enemy's class attribute (if catchable enemy),
available_prisoners.append("MyPrisoner")
Now let’s make prisoner’s NPC object, it’s required, thank to that prisoner will have trust, lust, submission etc. statistics.
init 11 python:
# Make NPC object, name is the only required argument
MyPris = NPC("John")
Now we need to create catch label using catch_MyPrisoner
as a syntax.
It should end with return, you can also jump somewhere if you know what you’re doing.
If you jump remember to make sure player ends in a freeroam mode, also remember to change the music.
You need to add prisoner to the prisoners
dictionary as {"MyPrisoner": NPC_Object}
.
You don’t need this label if you don’t want your prisoner to be caught after winning a fight, still if it’s an enemy you should make this label even if it only returns.
1label catch_MyPrisoner:
2 ... talk ...
3 ... event ...
4 ... or whatever you want to happen here ...
5
6 # $ allows to add one line python statement in renpy's labels or screens
7 #
8 $prisoners.update({"MyPrisoner": MyPris})
9 return
Next required label is talk_MyPrisoner
. It’s called when you decide to talk to the prisoner in the dungeon.
While you can make it into whatever you want, dialogue menu would be the best here. It shows dungeon cell as a background image.
1label talk_MyPrisoner:
2 show myprisoner calm
3 ... dialogue / grettings ...
4
5 menu .menu1:
6 "Option1":
7 ... dialogue ...
8 # Return to dialogue choosing menu
9 jump .menu1
10
11 "Option2":
12 ... dialogue ...
13 jump .menu1
14
15 "Leave":
16 # Leave the talk, return to the dungeon freeroam
17 jump room_hotel_dungeon
That would be all for creating a prisoner.
Add new succubus
To add a succubus you need to add her as a prisoner, exactly like above, then simply append her to list_of_succubus
list.
init 11 python:
# Append the same thing you did to available_prisoners
list_of_succubus.append("MySuccubusImage")
Traders & Items
Adding & changing items
Adding new item is simple, we need to add our item to a dictionary goods_list
.
init 11 python:
#######
# ADD #
#######
# It adds new item -> SuperSecretNewItem, it has base price of 1 and belongs to Quest category.
# You can add your own categories by simply assigning items to it.
# Syntax is like this: goods_list.update({"NewItem": [base_price, "Category"]})
goods_list.update({"SuperSecretNewItem": [1, "Quest"]})
##########
# CHANGE #
##########
# This changes wood's base price to 5
goods_list.update({"Wood": [5, "Materials"]})
# Alternative way to change price
goods_list["Wood"][0] = 5
# To change category with above method, change [0] to [1]
# This changes wood's category to new - Basic Materials category.
goods_list["Wood"][1] = "Basic Materials"
Change existing trader
1# Traders aren't created in init time,
2# they are unique to all saves,
3# we need to changed them at save load (it'll work only after first game load (no new game, for now))
4# Player can start new game, save and load.
5# We need to create our after_load label, don't use name after_load, add prefix
6
7label sample_after_load:
8 python:
9 # Check Trader class attributes for things to change, what they do and their type
10 # This adds 10 Mysterious Coins to Hollow Market
11 hollow_market.sta_goods.update({"Mysterious Coin": 10})
12
13 # It's important to return at the end of your after_load label, otherwise game won't start correctly
14 return
15
16init 11 python:
17 # Now we need to add our after_load to execute on my after_load, we can do this with trigger system
18 code = 'renpy.call("sample_after_load")'
19 com_code = compile(code, "triggers", "exec")
20
21 trigger.add("after_load_start", com_code)
22
23 # Done! now our prefix_after_load label will execute (within python block) at the start of loading a save
List of traders
1# Traders, they are all called with default statement #
2mysterious_trader = Trader(name = "Mysterious Trader", include = ["Mysterious Coin"], sta_goods = {"Wood": 100, "Stone": 100, "Cloth": 100, "Metal": 100}, sta_cards = [Vampirism()], cards_value = {"Vampirism": 10}, rate_sell = 1.0,
3 relations_dif = 10, discount_max = 0.0)
4
5debug_trader = Trader(name = "Debug Trader", sta_goods = {"Wood": 100, "Stone": 100, "Cloth": 100, "Metal": 100, "Mysterious Coin": 100, "Ice Creams": 10}, sta_cards = [Vampirism()], cards_value = {"Vampirism": 10}, rate_sell = 0.75, relations_dif = 10, discount_max = 0.0)
6al_7_tr = Trader(name = "Alice", sta_goods = {"Cloth": 1, "Mysterious Coin": 1}, include = [""], rate_sell = 1.0, value_player_offset = 1, goods_value = {"Mysterious Coin": 1}, locked = True, label_deal = "al7f1")
7al_7_tr2 = Trader(name = "Alice", avoid_cat = "Quest", rate_sell = 1.0, value_trader_offset = 1, locked = True, label_deal = "al7f2")
8
9hollow_market = Trader(name = "Hollow Market", include_cat = ["Materials"], sta_goods = {"Wood": 500, "Stone": 500, "Metal": 500, "Cloth": 500}, rate_sell = 0.5, unique = True,
10 relations_dif = 25, relations_threshold = 100, discount_max = 0.1, label_exit = "")
11
12wanderer_trader = Trader(name = "Wandering Trader", sta_goods = {"Wood": 10, "Stone": 10, "Metal": 10, "Cloth": 10}, goods_chance = {"Mysterious Coin": [1, 1, 0.25], "Wood": [0, 5, 1.0], "Stone": [0, 5, 1.0],
13 "Metal": [0, 5, 1.0], "Cloth": [0, 5, 1.0], "Ice Creams": [1, 1, 0.5], "Antibiotics": [1, 1, 0.5]})
14
15wanderer_daughter = Trader(name = "Wandering Trader", rate_sell = 1.0, label_exit = "exp_friendly_wanderers.trademenu", use_relations = wanderer_trader)
Defining new trader
1init 11 python:
2 # This trader has 100% chance to have between 3 to 8 wood on restock
3 my_trader = Trader("TraderName", goods_chance = {"Wood": [3, 8, 1.0]})
Trader class attributes
1class Trader(object):
2 def __init__(self, name, sta_goods = {}, goods_chance = {}, sta_cards = [], relation_goods = {}, avoid = [], include = [], avoid_cat = [], include_cat = [], goods_value = {}, cards_value = {}, rate_sell = 0.75, rate_buy = 1.0, value_player_offset = 0, value_trader_offset = 0, locked = False, unique = False, label_deal = None, label_exit = None, discount = 0.001, discount_lock = True, use_relations = None, relations_dif = 6, relations_threshold = 0, discount_max = 1.0):
3 self.name = name # Shop / trader name
4 self.sta_goods = sta_goods # Dict {item: amount} Starting goods, used when restock is triggered
5 self.sta_cards = sta_cards # List [card] Starting cards, used when restock is triggered
6 self.goods_chance = goods_chance # Dict {item: [min, max, chance]} chance is float 0.0 - 1.0
7 self.relation_goods = relation_goods # Dict {item: [min, max, chance, required_relation]}
8
9 self.avoid = avoid # List of item names that can't be traded with. Those items would be excluded.
10 self.include = include # List of items that can be traded with. Only those items can be used.
11
12 self.avoid_cat = avoid_cat # List of categories to exclude.
13 self.include_cat = include_cat # List of categories to include.
14
15 self.goods_value = goods_value # Dict {item: price} Overrides default items price.
16 self.cards_value = cards_value # Dict {card: price} Overrides default card price.
17
18 self.rate_sell = rate_sell # Float, percent value player goods sell for.
19 self.rate_buy = rate_buy # Float, percent value trader merchandise costs.
20
21 self.value_player_offset = value_player_offset # With no items in deposit, player trade value = offset
22 self.value_trader_offset = value_trader_offset # With no items selected, trader goods value = offset
23
24 self.locked = locked # If player can quit the trade without making a deal
25 self.unique = unique # if it has its own screen and shouldn't call trading screen instead returns categorized list [player goods, trader goods]
26
27 # Labels to jump to after trade depending on outcome #
28 self.label_deal = label_deal
29 self.label_exit = label_exit
30
31 self.discount = discount # percent of discount per one point of relation, default 0.1% per relation
32 self.relations_dif = relations_dif # amount of $ traded to increase relations by 1, default 6
33 self.relations_threshold = relations_threshold # relations start to increase after x$ trade value, default 0
34 self.discount_max = discount_max # maximum discount, float 0.0 to 1.0. 1.0 is 100% discount
35 self.discount_lock = discount_lock # Boolean, if discount is locked to min of rate_buy
36 self.use_relations = use_relations # trader whose relations are used and increased
37
38 self.goods = {}
39 self.cards = []
40
41 self.deposit_goods = {} # Item: amount
42 self.deposit_cards = [] # Card
43
44 self.selected_goods = {} # Item: amount
45 self.selected_cards = [] # Card
46
47 self.value_player = 0
48 self.value_trader = 0
49
50 self.allowed_goods = []
51
52 self.relations = 0
53 self.disc_price = 0.0
54
55 if self.use_relations == None:
56 self.use_relations = self
57
58 self.restock()
59 self.calc_discount()
Trader class methods
improve_relations(self, worth, who)
worth
- calculate relations improvement from this amountwho
- which trader relations to increase
calc_discount(self, who = None)
who
- if not None, sets trader whose relations to use
restock(self, who = None, replace = True)
who
- which trader relations to use for relation based functionsreplace
- if True replaces items trader has
rand_goods(self, min = 1, max = 10, what = None)
min
- minimum amount of materialmax
- maximum amount of materialwhat
- if not None, it takes a list of items to randomize amount, if None it randomizes all items
start_trade(self)
value(self)
deal(self)
cancel(self)
exit(self, deal = False)
deal
- if True it jumps to label_deal, if label_exit is defined it jumps to it otherwise it returns
add_deposit(self, what, amt)
add_selected(self, what, amt)
add_inventory(self, what, amt)
add_goods(self, what, amt, rest = False)
calc_dep(self, x, mode)
calc_sel(self, x, mode)
Character Emotions
Emotions are images with alpha channel, they are used when speaking with girls in rooms, etc. You can use them with show
.
Alice
Her prefix is: alice
She has those outfits available: Gym - gym
Outfits should be used as a suffix (at the end). Outfits cover all attributes, example: alice calm gym


It is followed by these attributes:
calm
pissed
mischief
innocent
tearing
smile
eyeroll
disappointed
curious
naughty
serious
fear
embarrassed
proud
blush
bored
mocking
kiss
licking lips
cat
facepalm
surprised
sick
apologetic
applaud
wonder
happy blush
Grace
Her prefix is: grace
She has those outfits available: Maid - maid
, Pajamas - night
, Naked - non
Outfits should be used as a suffix (at the end). Outfits cover all attributes, example: grace angry night




It is followed by these attributes:
calm
worry
puzzled
thinking
wary
smile
disgust
angry
doubt
embarrassed
curious
excited
apologetic
greed
hug
rose smile
rose look
rose wary
rose puzzled
rose fury
rose disgust
rose thinking
rose pokerface
sad
realization
rose doubt
Lexi
Her prefix is: lexi

It is followed by these attributes:
surprised
calm
pissed
weirded
angry
sad
facepalm
smile
naughty
eyeroll
innocent
relief
curious
awkward
longing
pained smile
shocked
doubt
fear
disappointed
down
naughty breasts
smile breasts
eyeroll breasts cum
blush
blush breasts cum
naughty breasts cum
chuckle
Mina
Her prefix is: mina

It is followed by these attributes:
calm
smile
excited
curious
blush
tongue
angry
concern
relief
thinking
doubt
sad
arrogant
surprised
serious
disappointed
troubled
furious
weirded
expectation
hidden expectation
down
crying
Side Characters
Kiara
Her prefix is: kiara

It is followed by these attributes:
calm
smile
laugh
serious
chuckle
curious
fear
thinking
tired
surprise
smirk
sigh
Other Characters
Succubus A:
The white skinned one. Her prefix is: succa

It is followed by these attributes:
calm
pout
smile cum
smile
sad
sad cum
lust
lust cum
kiss
kiss cum
wonder
cry
scream
Succubus B:
The pink skinned one. Her prefix is: succb

It is followed by these attributes:
calm
pout
smile cum
smile
sad
sad cum
lust
lust cum
kiss
kiss cum
wonder
cry
scream
Succubus A & B:
On the left - pink skinned one, on the right - white skinned one. Their prefix is: succab

It is followed by these attributes (first emotion is from Succubus A (white skinned)):
calm calm
pout smile
sad sad
happy happy
happy sad
sad happy
angry happy
Mysterious Trader
Its prefix is: mt

It is followed by these attributes:
bow
smile
outburst
laugh
coin
smirk
Notifications
Will be fully implemented after 0.1.5 release.
Notifications
Notify
Battle Notify
Help screen
Codex
Will be fully implemented after 0.1.5 release.
List of entries
List of important codex entries, as strings.
Can be used with
codex.add_entry("Category", "Entry")
codex.check_entry("Category", "Entry")
Alice
She’s officially my girl now.
Higher Beings
Higher Beings should be refered to with respect, They should be described as He/She/It, using he/she/it is considered lack of respect and thus dangerous.
List of flags
List of important codex flags.
codex.add_flag("Flag", value = True)
codex.check_flag("Flag", value = True) # set value to none to return true if flag exists
Settings
Will be fully implemented after 0.1.5 release.
Graphics
Animations
animated scenes -
persistent.animated_scenes = True
. It enables animations in adult scenes, wallpapers, collectibles.
Init Map
This is a map of all game’s inits.
init -999
python imports
init -100
modes_fix (
pat_dreams
&pat_debug = False
)file lists creation
init -10
trigger class and object
assigning
game_mode
- selecting game scale
init -9
gui.rpy
gui init
init -4
terror_chance
some gui variables
init -3
Being
classgui elements’ attributes
most gui variables
init -2
Player
classInventory
classNPC
classCodex
classTrader
classEnemy
classtransforms
init -1
define
being
objectenemies’ classes
most screens’ definitions
frames
select game version (add .4K if in 4K gui mode)
init 0
most variables
most labels
states_globals = []
states = {}
set_states()
auto_destruct()
screen
rpg_journal
screen
rpg_codex
rooms’ screens
transitions
get_label()
init 1
run_chance()
create_wallpapers_list()
fight()
explore()
loot()
looting()
hide_all_screens()
advance_time()
draw_hand()
succ_lust()
ironman settings
audio settings
Card class
init 2
cards’ classes
init 3
lootlists
init 500
all animation and image definitions
init 995
compile character condition
compile state conditions
compile triggers
init 998
anticheat
Incoming Changes and Features, Players’ Suggestions for Mod Features
This is designed for modders. It describes planned changes to the way AL works so that you can prepare your mod or start working on new features. It also describes what modding support I want to implement.
Next version
These things are planned for the next alpha release.
Card crafting at the forge
Store cards at the forge
Sorting deck
Undefined
I have no idea when these changes will come live. They are not planned, I’ll be implementing them after doing planned content for given version. So the speed of their implementation depends on my speed of making planned content.
give your own dialogue choices when speaking with vanilla characters and using items
Adding your own pc apps
adding your own choices to the lobby doors (make new expansions, new outside content)
using your own screens in rooms (add interactable items, people)
add new enemy actions tags (if you need more than 6 images per enemy)
add new girls to the wardrobe
Planned features
Feel free to implement these stuff in your mods, who knows when these will be in the game, or if they ever be:
artifacts
characteristics (abilities and traits, something like a class)
card upgrades
card memory (keep cards after death, select unique cards to be in the deck)
factions - relationships, bases, quests
strip club expansion
bar expansion
currency creation
advanced economics system
card trading
rework of GUI
new gallery screen, with images
two more succubi
catching pets
battle aid by pets and girls
second and third hotel floor
advanced enemies’ AI
support for many enemies in combat
drag/drop cards in battle
dungeons, classical reguelite deckbuilder experience
outpost creation and management (hub for other factions, lead a force of your own)
faction creation
SFW mode
translations
android version
rework ironman mode, one save, autosaves, no loading, save on exit
mod manager
automatic updates
AL website, optional integration with Patreon, server working with updates and mod manager
rework of codex, so it’s faster, supports showing how many entries you don’t have, etc.
Suggestions
I don’t know if they ever make it to the game, these are some of the better suggestions, fell free to implement them in your mod:
upgrade playroom into a harem, so that succubi are not kept in the cold, dark dungeon
card fusion - Where you can fuse say five of the same type(attack, power etc.) and rarity of card and receive a random card from the next level of rarity of the same type. Either in forge or new Alchemy room.
A thief girl you random encounter that steals one of your cards. If you have enough agility ~5-7 you can catch her and get a lil bj scene. If you cant catch here the card ist lost
hypnotize the girls into a trance and having sex with them, or coming across female rouges and after beating them hypnotizing them to be placed into the dungeon all kind of stuff.
it would be nice to be able to buy the trader’s daughter and take her to the hotel.
once an achievements system is in place, make it so the back of the cards is customizable. As in, you can unlock what to see instead of just the current default (the one with the kabbalah tree of life)
Basically, whenever we destroy a card, there is a chance of some material dropping, essentially making them the middleman to transform coal into something else. Said chances will increase depending on the tier of the cards, with the gray ones being the most unlikely to leave anything behind.
Working, but not in the docs
These things can be already done without altering vanilla game files and hurting compatibility. The thing is these things aren’t described in the documentation yet.
Adding your own collectibles
Displaying help screen with your own custom messages
Adding your own cheat codes
Adding and tweaking character states
Adding your own outfits to the girls and the wardrobe
Adding enemy flags, using alternative action methods, using ultimate abilities after reaching some hp (see dragon)
Adding your scenes to replay gallery
Adding new prostitutes to the wanderers’ hideout brothel
Changelog - Modding
0.1.7a
Added
support for adding new wardrobe outfits/people
6 lexi emotions
new frames - minimap_frame_player, minimap_frame_event
0.1.7
Added
optional days attribute to NPC.check() method
calc_gui(pixels) - quick way to calculate pixels to your game format
scope variable to replays
7 mina emotions - ouch, shocked, eyeroll, apologetic, sigh, exasperated, smile cum
2 alice emotions - pout, closed
Changed
gui mode is now defined at -999 init
0.1.6c
Added
characters, and ignored attributes to set_states()
stat_sleep to NPCs
add_submission() to NPC class
stat_bdsm to NPC class
optional set attribute to advance_time()
emoticon sm/sp screens
Changed
how wallpaper system works, now not all wallpapers are lootable from combat
Fixed
unable to save after using some triggers
0.1.6a
Major
reworked traders implementation, now changes are made automatically to them, use define
Added
sacrifice option to enemy atk method, deafult False
unlocked boolean, needed when adding to replays_list, decided if name is seen from the start
four trigger to death
being heal method now returns amount healed
can make heal method do notification, make_message = True
Changed
how arena animation is determined, now all renpy images work
0.1.5c
Major
now your pathways can also be relative to mods folder (
myMod/1.png
instead ofmods/myMod/1.png
)
Added
support for up to 20 dialogue options being displayed at once (previously 9)
option to add your own characters to the character menu
6 new text tags - love, lust, quiet, small, big, loud
0.1.5b
Added
player
skills
dict to Player classMassage skill
improve_skill(sk, amt = 1)
method to Player class, it improves or adds a skill to the player, can be used to decrease skill
0.1.5a
Added
2 new text tag
{trust}
&{bad}
0.1.5
Added
2 buttons - button_craft_stone & button_craft_steel
5 succab emotions
1 kiara emotion - sigh
can add tabs to the vault
can add recipes to the forge and the gunsmith
can make new crafting tables using vanilla screen
chinatown2 arena
0.1.4b
Added
new button displayable
button_label
, can be used with background attributeyou can now add your own scenes/categories to replay gallery
now you can change vault’s space per level
before_shuffle
triggeroption to add code to trigger directly, through appending function like this
trigger.before_combat_screen.append(myFunction)
dream_end
label now ends replay automaticallydeath2
label now ends replay automaticallyexplore_return
label now ends replay automaticallynow
fight()
skips combat automatically if in replay, can be disabled by settingreplay_mode = False
when callingfight()
Fixed
error/bug when using console (in freeroam) to jump to a label that ends with return (on this event’s end)
0.1.4a
Major
reworked the whole file structure, severely increasing overwriting vanilla files compatibility with future versions
Added
track of current label, it’s in the _label variable
customizable text tags, check text_tags.rpy in functions/qol
0.1.4
Added
a few new pages to the documentation, changed or expanded a few other
support for tweaking characters states (what they do, where they are)
a few Alice’s emotions, one Lexi’s emotion
0.1.3b
Major
reworked triggers, now they can actually use global/local variables, as they are in fact executed in code now, not in the trigger object. You don’t need to compile triggers anymore, I got you covered, it’ll be compiled automatically at game startup.
Removed
old card methods granting effect, only buff() method should be used to increase or decrease status effects
Added
5 looting triggers and 3 new ones to combat
Changed
now cards are reset with load using reset() method (you need to initialize your variables here). __init__() by default calls this method.
Fixed
trigger after_load_start triggering instead of after_load_end
0.1.3a
Added
Sample Mod to mods/ folder, check it, it’s heavily commented to explain everything going on
after_load _start & _end triggers
triggers during combat initialization
Changed
for triggers you can now either use a string or (much better for performance) use compiled (at init time) code object (check documentation’s trigger tab)
now adding enemies to random combat encounter requires to add them as strings instead of objects
now terror tooltip reflects changes to terror chance properly
Fixed
spelling mistakes in a few image names, to make it easier for you to not use wrong name
0.1.3
Released
online documentation, it shows how to make your mod with new dreams, events, cards, enemies, etc.
source code for people with Mod Developer role on Discord
AL card templates
mod_toolkit script (for now it only enables dev tools & console in AL)
Added
support for adding new status effects & card mechanics, trigger system
support for adding your own menus to expanded menu
support for replacing game images
support for adding new cards
support for adding dreams
support for changing base dream chance
support for adding new enemies & arenas
support for adding new enemies & arenas to generic combat event
support for adding wallpapers
support for adding new cards and changing/adding cards lootlists
support for adding new materials and changing/adding items lootlist
support for changing sleepover chance to decrease corruption
support for changing card loot chance
support for changing escape chance
support for creating new traders
support for adding new prisoners
support for adding new succubus
support for tweaking succubus lust mechanic
support for adding/changing journal tips
support for displaying help screen with your text
Changelog - Game
0.2.3
Beta
Added
Lexi 14th event
Lexi 15th event
Mina 17th event
Mina 18th event
repeatable date with Lexi - ‘Kitchen Date’
Lexi can react to player not attending their date, or not asking her out besides promising to
4 new quest items vodka, wine, old wine, and premium ice cream
How many of the given card you have in card selection screen
Quick Save/Load to the bottom menu in Android port
Mina can get drunk, and have a hangover
conditions for tasks to complete and progress, Mina won’t do nor complete tasks if she has a hangover
you can loot ice creams in a market at most once per day, you can now get premium ice creams, and loot for ice creams always since her 14th event
red map frame for planned dates, map icon will be turning to red when Lexi waits for you
what’s new for 0.2.3
Changed
you no longer lose deck if you’re defeated in Lexi’s 13th event
removed items not used in crafting from iron chests (2)
increased abandoned car loot
Fixed
Savenia could be found before Mina’s 5th event, which lead to continuity error in the next events
card register not removing cards on death
error when using deck list when registry is corrupted
tasks with not set location sometimes not completing on time (no such task in vanilla)
bad outfit for Rachel in her 2nd replay
Rachel 9th and Lexi 10th events not triggering
cupboard not trigger-able from the map
Alice in player bed after Grace 11th event
some checks not working in replays
Sandwich tooltip saying it heals 35 hp instead of 12
Alpha
Added
new, much better prologue
Grace 11th story event
Grace 12th story event
Merged story event - 13th Grace, 15th Alice, 5th Little Fox
Grace night prank event
Grace sleep footjob event
Grace night footjob event (yeah, two footjobs)
Grace revenge secret event
talking with Grace about her revenge
Grace can be angry at the player
option to apologize to Grace with a rose or by being charismatic
Footjob, Dildo and Masturbation to Grace statistics
Rubbing and dildo to Alice statistics
Rhainda 3rd event
Rhainda 4th event
Rachel 9th event
cunnilingus to Rachel stats
eating dinner with Grace in her 6th event heals and gives a buff
Lesbian to Rhainda stats
Masturbation and Lesbian to Little Fox stats
Little Fox x Rhainda event now raises their lesbian stat
Alice’s 8th event raises dildo and masturbation stats
action sounds to the manticore, werewolves, spiders
3 new cosmos renders, they’ll appear at random
Sugar Frenzy buff
outros to the last main girl events
consumable items
pouches, (3) chests & (2) keys used to open them
optimized tooltips
updated translations, Spanish fully translated
option to test sample sound
some spacing to the buffs in character menu
background to stats tooltips
new intro
killing human enemies now raises corruption again, up to 20%
Changed
What’s new won’t show for first time players anymore
Beginner Guide will show for first time players again
removed talking with Lexi about boxes
optimized image loading in many events
left & right character placements are now not on the edges
notifications are centered now
removed Lexi and Grace first story events, the new prologue takes their place
replaced mysterious coin drops from enemies with chests & pouches
buffs icons
removed rng from triggering two Mina’s events
Millionaire dream now triggers only after meting Aharon
Fixed
Alice shower dildo blowjob didn’t raise stats
PC wallpaper showing after defeating dragon summoned with Discord veteran’s code
no transition between two Grace images
some things not translating, despite having translation files
continuity errors at Rachel and Little Fox outfit events
double transition in Lexi’s 2nd event
getting Life with Alice dream before progressing with Alice
error at Lexi’s 9th event when using Vietnamese translation
many dreams playing at once
Lexi could go out again after bringing food
Lexi or Alice appearing in weird places after their events that didn’t advance the time
Savenia could go out often before healing her leg
pc icons not disappearing after inserting wallpapers code
Tooltips having wrong background size on Android and in translations
Grace’s ninth event showing on map before its requirements were attained
not being able to use all options in Grace bath replay
sound volume settings not working for some sounds
Lexi appearing in two places at once on map
tooltip staying behind from interaction menu when using it or closing it with a key
tooltip staying after closing inventory with a key
on kill effects not triggering if it’s the last enemy
0.2.2b
Added
updated Vietnamese and Spanish translations
Fredericka font support for Vietnamese
discount for relations with traders
Fixed
robin sex scene animations not showing
checkered background after credits in the replays
some things not translating despite having translation files - eq. item uses
no image - sidebar dark 1/2 on Android
error when using items in the vault, while not having any of this item in the inventory
negative hp when your ally wins the battle or you run after player’s defeated
Outfit unlocked message appearing even if outfit was already unlocked
corruption exploit with sleeping Grace
trust/lust exploit with sleeping Lexi
corruption exploit with wc peeking
corruption exploit with bath peeking
stuck at the tutorial after tweaking difficulty settings, and killing werewolf before designed
no lust increase from Kiara sex scenes
pc buttons being active in replay, wallpaper and collectible menus
outfit unlocked messages appearing also in the middle
Devotee girl not changing expression after player tells her to fuck off
missing item notification using ID instead of item name
rare error on save after giving Rachel materials
typos & grammar mistakes
0.2.2a
Added
Alice valentine wallpapers
bright hover to wallpaper menu
tooltips to wallpapers menu with wallpaper name
disable animation support to all animations that didn’t have it
Animations ON/OFF setting to Video tab replacing old settings
Notifications style settings to Game tab
icons to the items
crafting to the character screen
updated translations for Spanish and Vietnamese
a model info to Rhainda relations tab
move items slider to vault and trade
Even out function to the trading menu
Good Profit mechanic to the traders
preview of increased relations to the traders + relations counter
Disable Fredericka font setting to the game settings
scrollbar to the relations tab
some more stuff from 0.2.2 (and 0.2.2a) to what’s new
notification to the trader’s relations increase outside of a trade deal
option to chose defeat in Rhainda’s 1st event replay
community tag to Vietnamese translation
hover effect to flags
Changed
Supporters about/credits font
Now wallpapers will be sorted, and unlocked wallpapers will show before locked ones
HP bars image
removed cumming animations from the most events that had them
minor dialogue changes in a few events
removed continue option from most prostitute sex scenes
notifications window
reworked the whole inventory system
interact ‘Interact’ font to Fredericka
interact menu buttons to follow new GUI style
merged character and inventory menus
inventory + character menu follows new GUI style
vault follows new GUI style
crafting menu to follow the new GUI style
optimized crafting menu performance
increased Mysterious Coin worth 10 -> 60
decreased chance to drop Mysteries Coin for most enemies (by 50%)
chance when looting treasure trove to obtain Mysterious Coin 100% -> 40%
removed obsolete tooltips from character menu
relations menu to follow new GUI style
help menu to follow new GUI style
story menu to follow new GUI style
decks menu to follow new GUI style
expanded menu icons to follow the new GUI style
outfit crafting menu to follow the new GUI style
outfit crafting will now happen on clicking the outfit
now you can use items in vault for all quests
now the items you gave to girls in event previously will not be there next time
now wandering trader’s daughter trade will clean up bought things
wandering trader now will offer some items only after some relations reached
increased maximum Hollow Market discount 10% -> 20%, it’s harder to increase relations
Hollow Market now allow to pay with everything, it restocks weekly
Hollow Market can now have more different items to buy, some require higher relations with them
default name for new players will be John now
notification side for code insertion
dream with the devil animation to the moving image
Patrons settings category will no longer show for non Patrons
what’s new frame to more readable one
one dialogue line in the Grace’s nightmare event
wandering trader’s daughter is now not separate trader
Mysterious Trader will restock everyday
You can no longer continue Alice’s Q&A game in replay after losing all caps
music in first Rhainda event is now positive after the fight
Sample Mod stickman dream is now off by default for new players
now Warehouse event replay will always have people inside the warehouse
In Roars in the Sky event you can now shot at the sky in replay, this option is no longer usable in normal gameplay without a shotting card
Prostitutes can now be priced at not full values
Madam Hof will display prices in caps now
Wandering Trader will display prices in caps now
discount from relations no longer applies to the wandering trader daughter services
Fixed
previous scene seen after battle when picking a card
interaction menu’s Lobby (view B) button, taking player to his room
multiple healing notifications after sleep
error on Treasure Chest events
error on exploration on old saves under some circumstances
a possibility of patches not applying correctly between some versions
Alice’s WC anal having an odd image with animations OFF
wrong image after animation ends in Grace’s 2nd massage event
second Grace massage in clothes not raising stats
a few weird transitions in Succubi events
possible error at midnight kiss event
suicide saying you lost cards
Alice task error if it was taken before 0.2.1e
Astral Lust dream triggering before meeting Kiara
tooltip staying after clicking continue in the tutorial
rare error at the tutorial end
listed cards in deck were aligned to the left side
Alice stranded outfit weaving not working
could enter playroom before building it with the interactions menu
Alice, Lexi and Grace showing in their room while being somewhere else after some events
error at replays of midnight kiss event
Alice sleeping in player’s bed after Grace coming for a sleepover
some translations not appearing due to % and %% translation generation conversion
trade save/load exploit
Spanish translation sleep being smaller in bed dialogue menu
in Spanish Rest icon text is no longer off icon
Relations tab one person being hidden under the image
updated/added entry not being translated
weird spacing at the end of 0.2.2 what’s new
black screen in replay in warehouse exploration event
Alice task related errors for people that didn’t cancel her task since before 0.2.1e
Alice not showing up first in the replay of Q&A event
Alice changing outfit in Q&A replay
some rare, latent problems with Alice’s Q&A event involving not taking item rewards from her
possible errors in building shrine replays
items in Alice Q&A shared between saves on one playthrough
no background in Mina’s Good Ol’ Bootle replay
no background in Lexi’s Trouble at the Market & Feet Massage replays
no background in Grace’s Play House event replay
no background in Lola’s event replays
no background in the first three secret endings replays
black/checker background in skip mode if animation didn’t decode first frame before displaying them with some animations
Amanda’s default way of calling player not translating
typos
0.2.2
Added
Spanish and Vietnamese translations
Difficulty settings - change at PC
Grace coming for a sleepover after having a nightmare
Lexi x Grace interaction in the kitchen - 5 variants
3rd Kitsune to the game - Rhainda
1st Rhainda story event - Hunter
2nd Rhainda story event - New Home
Little Fox kissing with Rhainda (can be toggled off)
Threesome with Little Fox & Rhainda
sex event with Rhainda - Fighter
4th Kiara story event - Myth of Creation
Kiara repeatable sex scene - 5 outfits, 225 animations
New Kiara sex scene - 5 outfits
footjob, cunnilingus to Kiara stats
new outfits crafting menu
Kiara Angel outfit
Kiara Nympho outfit
Kiara Party Girl outfit
message to unlocking outfits
support for multiple notifications
apps in the pc now have description labels
Resume to the main menu, it will allow to resume game where you ended it
new erotic scene to Alice shower event
increasing vitality heals for increase in max health
Mod Settings for Sample Mod, it allows to toggle Stickman dream
new secret (bad) ending
credits to game over
Changed
reversed required/owned item count in the crafting menu
optimized card crafting menu
Craft button to Create button
debug mode app is shown only if debug mode is on
added outlines to bottom part of PC
decreased Flirtatious Look cost to 1, and changed vulnerable 1 to 2
improved and optimized state selection
Player stats no longer give buffs, instead they work passively
Moved story mode from game settings to difficulty settings
size of tooltip for interactions menu
You can no longer dream when sleeping with girls
expanded Fireworks tooltip
chance for girl night party occurring to controlled 1/14 chance.
Fixed
Orc with halberd saying it’ll attack five times instead of four
tutorial saying Rubik cube will increase spirituality
error when trying to destroy cards with Destroy that were used in battle
Destroy cards not being destroyed
possible no image when escaping in event Chased Trader Daughter
hp being above max if vitality decreased
0.2.1e
Changed
Now by default the show mask option will be turned off on Android
Stickman Dream was disabled
Blood Diamond uses 3 Coal instead of 12 Stone now
Fixed
Savenia bike in the interactions menu before finding her
Sample Mod settings showing in settings before being fully implemented
changes in event rarity not being reflected immediately on new saves
new events not being triggerable immediately on new saves
before first meeting the girl, her outfits were not showing in wardrobe correctly
card tooltip staying after selecting a card
card tooltip staying after using a card
card tooltip staying after destroying a card
affection and time of day not updating visual bug
0.2.1d
Added
footjob to Lexi stats
new threesome position stats
new setting - Game - Show interaction menu (I key)
new setting - Game - Show tasks menu (T key)
new setting - Game - Choice menu position
new chinatown region arena
Patreon and Discord links to the what’s new
scrollbars to sex positions counter if too many entries
3 unique cards for January 2022 Patrons - Blood Diamond, Delusions, The Last Journey
unique card for everyone - Fireworks
Lifesteal attack icon to combat
summoning allies (for now Delusions card only)
Interactions menu
Changed
moved choice buttons to the right
optimized wardrobe
animated hovering over intractable items
Christmas is now available only till 6th January
devourer leech attack icon
optimized all cards view
made what’s new footer italic
Fixed
error when seeing Alice get combat gears task completion
Lexi’s 8th event showing incorrectly on the map
injured dragon not showing on old versions
error in wardrobe
Lexi’s footjob not increasing stats
Mina’s 3rd event animations not playing
Faceless not exhausting
combat tutorial doesn’t reset
cards displaying wrong attributes in decks after battle
odd game settings placement
story mode not preventing random combat encounter
Alice Get Combat Gear task
hundreds of typos and grammar mistakes
xmas without time limits before completion
Mina and Lexi 8th event is shown on map but can’t be triggered
mysterious trader exploit - rolling back after seeing cards
alice sexpos menu could overflow beyond screen if you were bad boy
arrow in lola room being offscreen
‘,’ at the end of sentence when getting multiple unique cards at once
0.2.1c
Changed
decreased chance of Roars in the Sky event
Fixed
injured dragon event not triggering
savenia & lexi not disappearing from map after 7th Savenia event
errors on tasks - TypeError: loot() argument after ** must be a mapping, not tuple
error on option I want to be master of my own destiny from the devil
0.2.1b
Changed
increased trade icons/text for android
on android clicking outside the menu when choosing deck will toggle showing enemies
on android clicking a card will make it bigger and clicking it again will use it, clicking outside will return the card
Tower has no side effect, armor 5 - 3, empower 2 - 1
removed few strong enemies from average combat difficulty
story exploration events now have lower chance
Fixed
Judgment card dealing damage only to one enemy
out of place Hollow Market on android
destroying/moving cards between decks counting as interaction
error when checking combat tutorial in help menu
card related checks
encountering the most powerful enemies if not defeated average enemies before (no more masochist mode)
error on Alice’s Get Combat Gear task
typos
0.2.1a
0.2.0c fixes
0.2.1
Added
Lexi feet massage activity
Christmas event - Beginning
Christmas event - Alice the Christmas Elf
Christmas event - Santa Lexi
Christmas event - Deer Gracie
Christmas event - Kitty
Christmas event - Sober
Christmas event - Holy Night
December Patron wallpapers
Christmas 2021 Postcard wallpaper
Changed
improved map event flickering mechanism
0.2.0c
Added
Christmas event will now reset each year
Fixed
being able to trigger Christmas without any story progress
the first deck resetting after load
unable to pick up two collectibles
error when opening a vault on new saves
other save loading related bugs
healing Alice required all possible cards
error when task completed at wanderers hideout
0.2.0b
Added
now map will glow if story event is available
Changed
improved exploration rng generator, improved story even chance
removed character menu help window as it caused issues
Fixed
bathing/shower exploit
savenia’s map event support
error when trying to destroy a card (right click)
able to leave deck menu without 11 cards
exhaustible deck exploit
previous patches were run when loading new game
0.2.0a
Added
Savenia can now go out after her leg healed
shortcut to open/close map “m”
Fixed
skipping tutorial was not permanent
error when using Slice card
Patron display for long names
save/load bug with disappearing allies
Wheel of Fortune card doing nothing in some cases
Savenia being at the hotel after leaving
bike displays when looking for upgrading hotel when it should not
Grace outfit changes in the cooking task
task could be finished at night, let the girls sleep!
a few characters could be at the bathroom/wc at once
girls still asking what you want them to do even if task in auto mode
0.2.0
Added
Decks system
choosing deck before combat
8 deck sorting algorithms
5 deck display options
buffs system
buffs to character menu
2 buffs - Well Fed, Reinforced Armor
Tasks system
Tasks silent mode
Tasks auto repeat option
Task settings
Tasks to Lexi
Tasks to Grace
Tasks to Alice
Tasks to Mina
2 cards - Snipe & Frag Grenade
new status effect - Hunter’s Mark
3 new enemies - Bandit with wakizashi & Bandit with a knife & Bandit Captain
generic combat to exploration events
a real combat tutorial
Allies system - story based only
Lexi 13th story event - Trouble at the Market
easter egg to Lexi’s laptop
Grace can appear at the first floor corridor cleaning
Grace cleaning 1st floor activity - 2 variants
Grace cleaning 2nd floor activity - 2 variants
Grace cleaning lobby activity - 2 variants
Grace cooking activity - 3 variants
Grace play house activity
asking Mina about Jack - previous hotel owner
asking Alice about Jack - previous hotel owner
asking Grace about Jack - previous hotel owner
Fox Shrine expansion
Rachel - new catchable fox girl
Rachel events support to the map
Rachel appears at the lobby
Rachel appears at the shrine
Rachel to the journal
Rachel to the girls menu
Rachel 1st story event - Saving the Fox
Rachel 2nd-6th story events - Building Shrine
Rachel 7th story event - Magical Outfit
Rachel 8th story event - The Arrival
Savenia 6th story event - Recovery
Savenia 7th story event - Return
Savenia 8th story event - A Surprise
Little Fox category to replays
Little Fox can live at the hotel
Little Fox 2nd story event - At the Hotel
Little Fox hunger mechanic
Little Fox Thief outfit
Little Fox appears at the shrine
Little Fox events support to the map
Little Fox 3rd story event - Little Thief
Little Fox 4th story event - Treasure Hunt
Little Fox feeding - handjob - 2 outfits
Little Fox feeding - blowjob - 2 outfits
Little Fox feeding - footjob - 2 outfits
dialogue lines to the Little Fox at the treasure hunt exploration event
kissing Little Fox at the treasure hunt exploration event
dialogue line to Friendly Wanderers event
Injured Dragon exploration event
Chased Trader’s Daughter exploration event
Life with Alice dream event
Damsel in Distress - Traitor exploration event
Damsel in Distress - Pregnant exploration event
10 Patron wallpapers
cheat code to all tiers
Changed
added Take Cover and Stab to the starting deck, removed Dodge
tooltips in character menu now follow mouse
optimized menus code
balanced trade with the devil
random combat will no longer give the same bandits in one fight
generic combat event beginning
now all facilities at the forge open crafting
Cards can no longer be kept in the vault (infinite card storage with decks system)
Skill change message now follows new format: ‘x improved (x level)’
Alice trade in questions game now uses her nickname if set
empty card selections will no longer display
forge help message
crafting now can take vault materials
Bandits Rape to Bandits - assault event name in replays
different naming style in replay menu
improved replay gallery recovery
journal/codex GUI improved, increased readability
battles are now skipped in replay
Little Fox is now considered a side girl
Expanded wallpaper adding by code message
removed Guard, Healing, Retaliate cards from dragon loot
Fixed
looking at draw pile shows which cards will be drawn in order
Lexi love above maximum for some players
Despair tooltip
one intent image for Devourer Giant
Looking for Powerful enemies found Strong enemies instead
Birthday Gift part 2 replay not playing the whole event
notification showing even if no items were looted
crafting cards resets slider to the top
vault space being permanently filled after using vault materials
can’t progress with Little Fox in SFW mode
narrator used instead of Grace in one line
no shadows in Little Fox smile image
enemies waiting for deceased turn
replay gallery category buttons highlights
now it’s impossible to start battle with dead being, instead it will have 1 hp
affection notify messages in replay
messages with 0 increase in trust/lust/affection/submission
map showing story events available when characters were in the toilet or outside
typos
0.1.10d
Added
attempt at running away costs 2 energy
caps to hollow market
Changed
sacrifice is no longer affected by most debuffs
nerfed cultists a little
nerfed one dragon ultimate ability
nerfed manticore stunning abilities
increased cooldown of manticore critic buff
decreased strength from werewolf “empower” action 5 -> 3
decreased werewolf hp 132 -> 98
nerfed orcs a little, lowered their hp, changed critic to strength
Headbutt cost to 2, increased base damage to 4
Fixed
mousetooltip not disappearing sometimes
error when using Faceless card
error when using Slice (provided by Alex250)
Slice from sample mod not in bandit lootlists (provided by Alex250)
spit poison tooltip size
card description not updated when drawing cards mid-turn
removed placeholder mod settings
stun immunity doing nothing
card tooltip not closing after using a card when behind is another card
enemy action cooldowns resetting each turn
Stunning the same enemy on successive turns will not change its intent but will still stun them
After winning against the Dragon on Volcanic Fumes from the code in the PC, the Wallpaper of the PC is not closed and hides the scene
if an enemy starts with Strength their Intent does not take it into account initially
0.1.10c
Fixed
spikes not granting thorns
resurrect not working
0.1.10b
Changed
now strength bonus is not calculated when defining relative card attack
Fixed
error after exploring 129 times in a single session
past lives not advancing time
true damage not bypassing block
unavoidable attack being avoidable
sacrifice damage being affected by the buffs
error on using Ritual card
0.1.10a
Fixed
0.1.10 what’s new
all 0.1.9f fixes
0.1.10
Added
Mina can appear at the vault
2 H scenes with Mina at the vault
one topic to talk about with Mina in the vault
new status effect Heart of Flames
new card: Heart of Flames
damsel in distress event series
damsel in distress - brunette
damsel in distress - soldier
damsel in distress - bimbo
damsel in distress - milf
damsel in distress - short
Main Story side event - Past Lives
Changed
the rest of status effects icons
Dragon now has Heart of Flames buff/card
many event lootlists
arena park2 rerendered
enhanced RNG mechanic of exploring
Fixed
supporters overlapping if in game menu inside main menu
after Grace change, Grace position is not updated
supporters weird display on 4K branch
0.1.9g
Fixed
error on opening settings after 0.1.9e patch
card tooltip not closing after using a card when behind is another card
added various fixes from 0.1.10 patches
0.1.9f
Changed
death on mina’s event has no side effects now
Fixed
item loss on rollback
vault exploit
Freedom in Death & Death cards not ending combat
supporters overlapping if in game menu inside main menu
after Grace change, Grace position is not updated
supporters weird display on 4K branch
0.1.9e
Fixed
error when using Cease Fire Treaty
0.1.9d
Added
new deck images
health bar size is dependent on enemy width
supporters to the main menu
Changed
battle gui placement
now you can only rollback to battle start, not each move
Fixed
error after answering all Alice questions without taking her items
(possibly) rollback after death not returning items if died in combat sometimes
error when using Cease Fire Treaty card
0.1.9c
Fixed
errors on loading save prior to 0.1.9 if shortly before fought enemy group
0.1.9b
Changed
Burning and Poison tooltips
Fixed
Sweep description
The Sun tooltip
strength decreases to 1 with max strength on the second turn
burning immunity not working
immunities not decreasing effects on receiving them
0.1.9a
Added
strength & agility add buffs in combat again
wallpapers looting in the fight again
animated hp bar
Fixed
X cost cards couldn’t be played
overlapping indications
Flirtatious Look not changing enemy intent
error on Faceless using debuff
looting exploit
card descriptions not updating after killing enemy
unable to skip if loaded from inside of combat
hp bar not reflecting actual hp at the start
0.1.9
Major
reworked combat (saves in the middle of an old fight will give error)
reworked cards
Added
end turn keybind (spacebar)
powersave & frameskip to video settings
5 status effects - Dragon Might, Persistence, Illusive, Venomous & Fury
new card - Dragonborn (orange, from dragon)
option to toggle rollback block after version upgrade
Midnight Kiss event
10 wallpapers
templates to mods folder
Changed
added tabs to what’s new screen
powersave by deafult is now off (was auto)
optimized save load code
now game by default is launched in fullscreen
balanced many enemies
balanced many cards
Fixed
life steal doesn’t work on the last hit
error on Grace changing clothes
97 other issues, both design flaws and bugs
0.1.8
Added
460 images
36 animations
3rd savenia event
4th savenia event
5th savenia event
repeatable savenia H scene
boobjob, blowjob, outside, inside to savenia stats
footjob to Mina’s stats
new dialogue option with Little Fox
patting cat - bedroom/lobby/kitchen
patting dog - bedroom/lobby/corridor
pats to cat & dog stats
kissing lexi - bedroom
kissing alice - bedroom/gym
kissing grace - bedroom/lobby/kitchen/corridor/goodnight/corrupted goodnight
kissing mina - love/friend/competition
kisses to Alice, Mina, Lexi & Grace stats
submission, blowjob, thighjob, handjob, anal, came inside to Grace stats
new bad ending (secret)
sex positions to girls stats
masturbation & boobjob to Alice stats
5 new wallpapers (patrons)
4th vault expansion - +25/+2 space
5th vault expansion - +25/+2 space, Currency no longer takes space
6th vault expansion - +25/+2 space, Space for materials per level +100% (+175/0)
7th vault expansion - +25/+2 space, Space for materials & cards per level +100% (+200/+16)
several text & textbox related settings
settings to change main menu images
new characters icons to the map
recover (fix) gallery button support for new and all future story events
scrollbar to crafting screen
Always Display Masks option to game settings
masks opacity sliders to settings (for now only in forced mode)
new font for madness lines
map support for savenia events
wallpaper code input window
allowed copy-paste wallpaper code
‘what’s new’ screen on the first time launching new version
Changed
drastically improved performance of wallpaper and collectibles tabs
Savenia’s first event tip, now it clarifies need for the next hotel floor
main menu has new looks
text is now outlined by default
now main menu shows girls
now finding treasure map doesn’t end exploration
increased chance of finding map 30 -> 35
increased blur for sfw mode in 4k
story dialogue options now are highlighted
dialogue options (repeatable) show what they increase
now characters in the map are outlined
renamed ‘fix gallery’ button to ‘recover gallery’
removed patreon icon from PC
improved card destroying screen
increased vault/crafting menu size
increased card size in vault
increased vault (materials) space per level to 50
bad endings now block rollback
when training after reaching the cap, you no longer tire yourself
one line in Alice’s 5th event
building/upgrading hotel now checks vault for the items too
increased card size in the deck view
setting tabs are now always displayed
Fixed
some clipping in renders when finding cat
SFW mode not blocking Alice masturbation/ass in Mina’s 3rd event
weird light reflection in Mina’s 3rd event
unable to finish SFW mode because of lack of lust increasing options for girls
SFW mode not working in Little Fox meeting
card destroying tab selecting vault tab
treasure hunt won’t reset if defeated in ambush
Alice’s 5th event animations not changing
sfw skipped notification not showing in many events
alice’s anal wc not raising statistics
missing image in Grace bath massage
Kiara story sex not increasing creampie counter
Alice story events not increasing creampie counter
Mina’s 3rd event not increasing Alice’s masturbation counter
Mina’s 13th event not increasing cunnilingus counter
Mina’s footjob not increasing statistics counter
Succubus (Pink) getting Threesome counter for both succubi in one scene
possible tutorial overflow beyond screen on some displays
image not updated when expanding hotel
some grammar/spelling mistakes
0.1.7b
Added
map find events support for events triggered with dialogue options
Changed
now you need to met Grace first before using map
removed one line in beginner guide
Fixed
map showed available events even if you already improved relations with girl that day
error due to having more story progress than intended, be it after using console, cheats or possibly game bug
map event finder not updating after some events not progressing time
error on opening wardrobe after new game
0.1.7a
Major
map mechanic implemented, it shows where girls and story events are, and allows insta-travel
new gui to inventory/character/journal menus
added 168 images
added 24 animations
Added
help in case game’s not working to main folder
notifications to bad endings
nicknames to some girl stats
6 wallpapers
lexi event
lexi repeatable H
cunnilingus to Lexi stats
one replay
new little fox stats image
little fox image is changed in full sfw mode
can get a dream when sleeping with a girl
craftable lexi outfit
Savenia to wardrobe
8 outfits to wardrobe
optimized long game performance
sanity ‘safety belt’ for main 12th event
if you can get unique event on exploration it will be shown
Changed
during suicide you no longer lose items
now sacrifice damage won’t be affected by buffs/debuffs
now music changes entirely in H scenes outside
characteristics menu was hidden till mechanic is implemented
increased size of destroy cost
regeneration buff - now it decreases when burning, and negates with poison
now quick sleep button will take you back to where you were before using it
Fixed
Alice 13th event stuck at the end sometimes
Alice animation in waking up cunnilingus skipping
black screen when choosing if to cum inside or outside in Alice scene
whispers not disappearing in new outside H scenes
Lexi handjob last animation ending awkwardly fast, now it loops
grace no image bug in standing massage without animations
12th main quest can end with weird jump
empower effect giving one less strength than it should
item overflow out of bag
card preview in crafting/destroy
clipping in one lil fox render
mina feet massage can’t be done in sfw mode
error on Mina’s feet massage
some enemy action text in sfw mode being to explicit
amanda picture (nipples) could be seen in full sfw mode
secret H scene showing in in sfw mode
Kiara showing up in the gallery before unlocking library
trader discount not loading
can leave pc when writing code
Grace can have pyjamas scenes without unlocking this outfit
could trigger Alice’s 14th event without playroom
can give Lexi ice cream before she tells us she like them
could check at f2 shelf at night, and it would have day renders
wakeup from Mina sleepover only to find Alice sleeping there
Alice can be sleeping in our bed after we slept in hers
Alice can be sleeping in our bed after Lexi 11th event and Mina 15th event
wandering trader’s daughter didn’t get her father discount
not all buttons showing in trade screen
price wrapping sometimes
reading books taking time if it’s capped and not taking otherwise
many typos
0.1.7
Major
added 650 images
added 80 animations
added 35 events & scenes + 14 additional variants
added Savenia Dorack, new main girl (biker girl)
added SFW mode, you can stream AL now! Check settings.
Added
SFW mode
Lexi 10th event
Lexi 11th event
expanded Lexi shower scene
H scene to Lexi shower
sex, thighjob counter to Lexi
Main 12th event
Alice 13th event
Alice 14th event
can sleep with Alice in player bed (5 variants)
we can now find Alice sleeping in our bed
4 scenes with Alice in our bed (8 variants)
repeatable BDSM H for Alice (7 variants)
submission, sleep sex, bdsm, massage counter to Alice
you can build next hotel floor now
Savenia 1st event
Savenia 2nd event
Savenia to girl stats
Savenia to the journal
Grace 10th event
Grace repeatable H
boobjob, outside counter to Grace
Mina 16th event
Mina’s route to her stats
treasure hunt event (1 medium event, 8 mini events)
expanded warehouse scene
Little Fox to girl stats
Little Fox to journal
suicide
bad ending - corruption
bad ending - sanity
bad ending - “His” influence
new enemy
new arena
new music
wallpaper
one replay category
14 replays
message when clicking locked collectible
Changed
now if you leave when Lexi is taking a shower, she would finish it, and do something else
characteristics note
orc group loot
tips now shown name only after completing first event
default hotel music
improved fade_slow transition
Fixed
recurring nightmare not showing prior image in replay/dreams mode
0.1.6c
Added
support for animated scenes option to explore/return scenes
time flowing in secret scene
bdsm, denial counter to succubi
wooden horse now adds to bdsm counter
reminder to mina’s 15th event
1 audio file
2 emoticons
Changed
bandits with guns now deal a little more damage
increased hovered card size in the vault
now not all wallpapers are lootable (eq. secret wallpapers)
balanced wallpaper drop chance
Fixed
trader discount not saving
trader items reset after game exit
player massage skills not saving
bandits dealing negative amount of damage if weakened
block increasing from enemy attacks
respectful referral not triggering
fireball exhausting
dragon starting combat with ultimate ability
possibly weird looking buttons
spelling mistakes
0.1.6b
Changed
how unique story events are triggered, now it’s much more open
Fixed
missing words when watching series
fire breath exhausting
exploit at Lola’s pilediver scene
using destroying through forge results in a bugged screen
weird things happening after pyjamas party event
Alice clothes changing sometimes in her 10th and 11th events
not full notification in 5th main story event
some spelling mistakes
0.1.6a
Major
added 48 images
added 17 animations
Added
a new line to Combat tutorial
new items to the traders
Quick Save/ Quick Load keybindings, F5 to save, F9 to load
percentage of unlocked events to the gallery
card destroying to the storage/crafting menus
new item, Coal, it’s used to destroy cards
coal to sentient enemies lootlists
new hidden deal to the devil, to resist hidden corruption
263 flags to game files
Alice’s tv
2 discord codes, for people with 10th level there
secret scene
2 secret wallpapers
Lola to journal
Lola event (by Osamabeenfappin)
Lola repeatable H
tutorial to character menu
2 replays, Secret category
Lexi’s laptop
now you can eat bananas :)
f1 cupboard
Changed
lowered requirements for helping Mina with Alice
‘Q’ now also closes new tutorials
one wallpaper code
increased chance to drop wallpaper after win (2.5% -> 10.0%)
now training after maxing stats doesn’t advance time
reworked card destroying menu
various menus will now close when you click outside them
when you find cat, the time advances now
improved some exploration loot
cards are now destroyed with coal
how much corruption you get during some scenes
now whispers stop during H outside
optimized replay gallery loading time
now some replays categories will have name before completing any events
removed most story events from replay dreams/exploration categories
moved some replay categories
journal tips are now sorted
Fixed
whispers not stopping in wanderer’s hideout discover event
foxy camera control reversed
sukki having one animation in lifting H repeated
Stranded outfit needing 5 Cloth instead of 4
perspective resetting on moving items during trade, and in vault
getting 0 amount of items
grace sometimes disappearing from the hotel
restore my clarity devil option, working like remove corruption
error on game over from hidden corruption
exploit with life steal and sacrificing hp
notifications in third main event, now all are displayed
getting over max in luck throw for hiding from chimera
Grace losing trust instead of Mina in “spin the bottle” game
Alice gym outfit footjob using default outfit
12th Alice event not regaining hp/sanity
Alice’s bored expression, being not sharp
some notifications being too quick to see
error on being mean to Mina
teleport after first Lola event
replay gallery being over toolbar
few pyjamas party renders clipping
leaving Lola room leading to hideout square
possible errors during loading (“KeyError: u’movie_Obj/PC/a’”)
now you can’t use Lexi laptop if girls are using it
many spelling/grammar mistakes
0.1.6
Major
added new goth side character Lola, she lives in the wanderer’s hideout (by Osamabeenfappin)
added 171 images
added 16 animations
Added
Meeting Lola (by Osamabeenfappin)
pyjamas party event with Mina, Grace, and Alice (by DarrDorack)
dream - Millionaire
new H to Mina’s massage
3 replays
2 replay categories
Lola to characters menu
monthly (5) wallpapers
Fixed
whispers not disappearing sometimes
dream, Dekesha not having replay image
0.1.5c
Major
added tutorial menu, and a few tutorials (default key: Q)
reworked character, and choice menus
can add your own custom music to the game! Check settings for instruction.
can make music playlists in the settings!
added 40 images
added 5 animations
Added
intro
starting image
game icon reimplemented
logo to the main menu
new cheat codes for all tiers
a few tutorials
tutorial menu, to the quick menu (default key: Q) (test)
Grace now also takes bath, additional H (decided by poll)
show/reset tutorials options to the settings
tutorials to the quick menu
options to toggle sound notifications
custom menus to the characters
Succubi to the character menu
statistics to the character menu
improved error recovery, might help if you’ve corrupted your game playing with console
1 replay
a few transitions
Changed
Preferences renamed to Settings
choice menu, now it looks better
characters menu
replay of Grace’s shower now allows to choose her attitude
increased prices of girls at the hideout
balanced loot a little
Fixed
Grace standing breasts massage missing image
statistics not increasing in Kiara scenes
statistics not increasing in Mina cunnilingus scene
not advancing time in Grace’s shower scene
blocked Kiara’s 2nd event in some cases
giving Grace rose, without having any
a lot of grammar and spelling errors (thanks to Strectmar)
rare error on game load
misplaced masks in the vault
Removed
help icon from the pc
0.1.5b
Major
added 88 images
added 19 animations
The first side activity for Mina! Improve you massage skill, and get a treat ;)
Added
dream - Dekesha by Darrdorack (check)
vault can now be scrolled or dragged to move
Mina’s side quest - feet massage (test)
7 images to Mina’s 5th event, and different enemies
(Coming soon) to the notification about reaching stat cap
a few tips to Alice’s question game, now it’s stated clearly that you don’t need to answer all questions to win, only three of eight
button to fix gallery to the pc
Changed
now there is no infinite combat loop at mina’s 5th event, there are 4 waves.
Act of Creation card, now it produces random materials, it has a chance to drop most new items.
Fixed
vault items getting off window
trader menu items getting off window
gunsmith station mask being off placed
Mina & Lexi using pc being off placed
collectible image having hard time closing sometimes
when trying to close collectible image, opening another image
sound not stopping when facing Chimera during exploration
chimera steps being too rushed
cat “Found” replay not ending properly
not getting a kiss in Mina’s “Concerned Friend” replay, also you can give her ice cream now
exploit allowing to get many Shot cards from Alice’s shelf, even though you’ve had Shot card already
in replay Alice’s Q&A having no items to pay
some weird sounding lines
some spelling mistakes
0.1.5a
Fixed
forge description still saying crafting is work-in-progress
(all fixes from 0.1.4c)
0.1.5
Major
first wakeup scenes, tell your girls to fuck your brains out before getting up!
now you can store cards in the vault! Also you can upgrade it further with two new expansions!
card crafting was implemented with two crafting tables, and 6 new cards. 20 recipes await.
25 new items to loot from enemies will be used to craft cards. Generally this should reduce grind a lot.
reworked vault screen, now you can change its tabs, to card storage, crafting stations.
added over 500 images
added 97 animations
Added
6 cards, can be obtained only through crafting
25 new items
20 crafting recipes
8 new events to the gallery, one new category
2 Alice’s wakeup scenes
Alice story event
2 vault expansions
3 Mina’s story events
2 new together H for succubi
wanderer hideout, and brothel with four prostitutes (make pedestrians)
storing cards in vault
crafting cards
one render and dialogue line to the 10th main story event
Kiara’s story event
Kiara’s threesome repeatable H
Changed
most lootlists
replay gallery labels, added padding
first help screen text a little
Fixed
not likely, yet possible error when saving in trade/vault
Mysterious Trader never appearing if you were unlucky (or started new game)
0.1.4b
Major
reworked replay gallery, now it shows preview images, added dozens of scenes and a few new categories
added 92 images
Added
background to replays that contains ‘talks’
turn to Mina option when peeking at sleeping Lexi
monthly (5) wallpapers, which are preview for 0.1.5
Changed
now if you peek at girls under shower for too long, time will advance
Fixed
Alice’s toilet H menu not triggering
error after sleepover at Alice’s bed
many spelling mistakes
continuity error in mina’s 4th event
no image bug when trying to see Alice’s Training event replay before building a gym in a new game
can look for enemy and do a succubus hunt at night
Removed
friendly reminder when using console/developer mode, it was annoying
0.1.4a
Added
Succubus hunt option to the entrance doors
option to look for enemies to entrance door
Changed
Cease Fire Treaty card - removed destroy and thorns, added exhaust, cost 1 -> 2
decreased chance for random combat encounter during exploration 45% -> 15%
increased items received from helping Kiara and Lexi 1-2 -> 2-4
some transitions in lexi’s 8th event
Fixed
cards spelling mistakes
pink succubus not requiring the white one for the threesome scene
wrong name when asking for threesome with white succubus
error when trying to trade stats without having that much
some weird bug one player had, freeze on Alice’s question, according to the game all questions were answered, which shouldn’t be possible, still it will progress if that happens to someone
Lexi’s laptop mask being off
Grace’s 7th event not unlocking in the replay gallery
using Freedom card causing error
animations not ending in many repeatable H scenes
lexi not covered in cum after hj
grace maid fingering showing images in incorrect order
toggling animated scenes mid scene making one animation to run for the whole scene
alice footjob in gym outfit showing animations in casual outfit instead
0.1.4
Major
added over 350 images
added over 30 animations
added new Patron’s cheat codes
added 17 events
Added
2 Lexi events
2 Alice events
2 Mina events
all main girls’ toilet events
Grace’s change event
all main girls’ sleep events
2 sleepover events
8 Alice’s repeatable H scenes, 3 unique + 5 variants
Book of Secrets book
Introduction to Vampires book
Kain’s Diary book
Astral Etiquette book
4 main story events
10 cheat codes
Changed
now if you use antibiotics you need to wait a few days for Alice to get better
Lexi’s and wc renders redone
0.1.3b
Added
quick rest/sleep button
option to change max memory size, increase performance by using more memory
option to use only RAM as image cache if you don’t have enough Graphical Memory
more transitions to Alice’s shower scene
new images in selecting prisoner choice menu
one audio to the dream
3 events to the gallery
Changed
now you have much higher chance to find rose when you need it
succubus help
made Reccuring Nightmare’s text no longer being too long in some lines
Fixed
many typos, improved flow, thanks to Strectmar
random combat encounter taking two time periods
some cards’ effects not working with immunities
Fireborn card causing error
now you can’t enter playroom before building it
now you won’t need to rollback after trying to talk to the prisoners when having no prisoners
dragon not using ultimate abilities (not that someone actually get so far with it)
bug with AL keymap help
sleep with dream advancing time by two days
About menu, now Ren’Py updates won’t be able to mess it up
0.1.3a
Added
around 20 images
You can check drawers in player’s room now
alice’s shelf
now you can read the document on Lexi’s desk
burning immunity status effect
Sample Mod, it adds one weird dream and a nice card to drop from melee bandits
transitions to praying and mirror
Changed
noon -> afternoon
succubus threesome talk renders
one grace’s tip to make it more clear on time
you can shot at the sky with Shot card now
buffed dragon, added ultimate moves
terror now has 50% chance to trigger
improved animation of some scenes
Fixed
over a hundred spelling mistakes or improved the dialogue’s flow, thanks to Strectmar’s initial screening
error on trying to save the woman
possible error when fighting ghouls
error on generic combat after loading old save
error on Mina noticing us
enemies life not being reset in random combat encounter
stomping sound continuing after choosing to hide in encounter with chimera
dream end dialogue triggering twice
possible bug causing dialogue window do disappear only after combat has started
terror chance of losing a turn in tooltip
error when fighting dragon
mysterious trader corruption decrease needed 2 coins
spelling mistake in one of Alice’s question
Alice’s is no longer so nice to give you a foot job before answering her questions
dragon card check
mina’s repeatable boob job
now you can’t change girl’s petname at 24 trust
0.1.3
Major
added dreams, there is a chance every time you sleep for a dream, dreams mode released
implemented prisoners system
you can catch succubi and play with them in the dungeon and playroom, 13 H scenes, they have their own lust mechanic
added extensive modding support, check modding documentation to find a way to make your own mods (doesn’t require programming skills, link in modding section of changelog)
added over 500 images
added over 100 animations, almost doubling animations amount
added 49 events/scenes
Added
dreams mode (Patrons)
6 dreams, one with 5 variants
4 audio tracks
7 exploration events
5 new enemies orc group & dragon & stickman & ghouls & succubus B, make classes, add card lootlists
Alice event
Grace event
Mina event
prisoners system, for now it’s used only for succubus
catching succubus, playing with them in the dungeon and the playroom
dungeon expansion - playroom
13 H succubus scenes
Mina, Alice and Grace showering
5 new arenas + 2 variants
3 new status effects - Terror (chance to skip turn), Stun Immunity, Fury (Gain x strength on receiving damage)
2 new items
4 new cards
8 wallpapers, 2 animated
new tags - group (FFM) & BDSM & Pet Play & Orgasm Denial
Help appearing on catching first succubus
Succubus lust mechanics
Grace’s repeatable H scene, 4 variants
transitions to Alice’s shower scene
you can give main girls petnames if their trust is at least 25, check the mirror
Mina’s repeatable H scene, 3 variants
Changed
now generic combat has flat 45% chance of happening
notification assumes different position if in combat
reticulate you -> riddle you with bullets
now frail along with armor can’t lower your block
dungeon looks
lowered chance to drop mysterious coin from cultist
tweaked every exploration event chance
now effects which being is immune to won’t be granted instead of disappearing on being’s turn
Alice’s schedule
Fixed
lowered size of old animations (4K: 1.58GB -> 0.88GB, 1080P: 604MB -> 320MB)
overlapping tooltip in character screen
0.1.2d
Major
Improved/Changed/Fixed over 1000 dialogue lines. All thanks to Strectmar - new editor
added story mode - disables generic combat event (toggled in preferences)
now you can spare human enemies to stop corruption from increasing (no materials)
Added
new audio track
few new images
Now you can seal pinky promise with a kiss if she trusts you enough
Changed
some dialogue & renders in Alice’s 8th event to make it better
Mina’s 4th journal tip is now much more clear on what you need to do
added new audio track to lexi’s first event
now generic combat has 45% chance of appearing
peeking at Alice showering now increases corruption
Mina’s 5th event renders a little to make the flow better
Now rape gives corruption even if you have beyond 50% corruption
a few status effect tooltips, to make them more clear
Fixed
wheel of fortune & lycanthropy & healing card mistakes
wandering trader intro playing out every time
Resurrect effect spelling mistake
Vulnerable tooltip spelling mistake
Unique cards from cheat codes disappearing on death (use code again)
market scenes looking weird
getting kicked in the balls is no longer so painful that it raises an error
improved/fixed dozens of codex entries
0.1.2c
Changed
now sleeping with a girl increases sanity by additional 3%, there is 50% chance for corruption to decrease by 2%
Fixed
cat name changing after using a vault, load game and the name will be back
some repeatable events (like trust events) being hidden
weird looking sequence in sleepover
dozens of spelling mistakes
0.1.2b
Changed
now you need to only answer 3 of Alice questions
trader now by default doesn’t keep (when restocking) items given to him by the player
Fixed
traders not restocking correctly
traders not using randomized goods
getting blowjob after trading with trader
error on asking for wanderer trader daughter
exploit at alice questions
omitted dialogue lines in alice 7th event
0.1.2a
Major
fixed false positive virus detection (this time for real) by removing custom game icon
Fixed
Faceless card not exhausting and often costing spirit
Hypnotise stunning player instead of enemy
reaching 100% corruption not causing game over
about page legal section
0.1.2
Major
new location for freeroam - library
implemented complex trading system along with a few traders
added codex, place to gather knowledge you came upon in the Astral Lust with over 90 entries (sleep to update if using old save)
implemented unique cards (stay after death) and tarot cards (weird effects)
implemented cheat codes system (check pc, codes available on Discord & Patreon)
you can now sleep with one of the girls (sleepover, 3 variants)
added 9 story events, exploration event, 3 repeatable events
added 30 animations
added over 330 images
added 6 H scenes + 2 erotic scenes + 4 H scenes variants
added 25 cards
added 7 collectibles and 6 wallpapers
added 16 cheat codes (free/patron codes all available on Discord and Patreon)
updated Ren’py, it should fix false positive virus detections.
optimization of card loading, cards now load about 2x faster, useful with large decks.
new tags/fetishes - feet, anal
Added
new location - library
talk with Kiara
codex with over 90 entries
new emoticon - codex entry
repeatable work for Kiara
praying at the altar
2 Kiara story events
Kiara scenes to gallery
Kiara to journal
Kiara desk sex as repeatable
7 collectibles, 2 animated
16 cheat codes
reminder for people using console and a warning to not run auto_destruct(), seriously, don’t
hover tooltips to character menu
movie icon if wallpaper / collectible is animated
3 unique cards
22 tarot cards
Forbid Tarot status effect
Mysterious Trader, appearing sometimes at the library
Kiara to the wardrobe
6 wallpapers, 1 unlockable only through combat, 2 animated
Hollow Market - exchange tab, check the pc.
2 alice events
alice repeatable H, 3 scenes, one with 5 variants
alice taking showers at the evening
3 sounds
main story 2 events
grace event
exploration event - friendly wanderers, 2 H scenes
codex entries for previous content
2 mina events
9 events to the gallery
sleepover with Mina, 3 variations depending on trust and rng
Changed
death on Mina’s 5th event no longer resets your deck
now the same things when looted are summed up
the way enemy loot works, now every item has independent chance to drop
text when trying to build a forge / dungeon, now it’s more clear about rooms current functionality
added [Corruption / Madness] to warehouse attack choices
slight optimization of save loading
notifications no longer overlap with day counter and enemy effects first line
lowered corruption increase after killing humans
inventory now sums up quest items
vault now uses modified trading system GUI
improved inventory, character, girls, characteristics, deck and wardrobe screens
now you can hide quest items in vault
Cease Fire Treaty rebalanced - cost 0 -> 1, now it removes Invulnerability, it’s destroyed instead of exhausted
journal no longer resizes itself depending on content
true damage no longer scales with Vulnerable, Strength and Weak effects
sacrifice no longer scales with Strength and Weak effects
refreshed about page
Fixed
enemy still hitting you after dying from thorns
attacking a few times after enemy health hits 0 no longer triggers thorn damage
now killing humans always trigger corruption increase
pc icons not showing up after inserting wallpaper code and using exit icon
possible bug causing day counter to not appear after combat
stun effect not having effect on player
sacrifice no longer triggers thorn damage
stun effect ticking down 2 stacks / turn
some spelling and grammar mistakes
0.1.1
Major
added 7 story events
added over 200 images
added over 20 animations
added 3 animated H scenes
added 6 repeatable H scenes variants
added 2 outfits
Added
Lexi’s 6th and 7th story events
Mina’s 6th and 7th story events
Grace’s 6th and 7th story events
Alice’s 6th story event
you can now train at the gym with Alice
Alice can now appear at the gym
repeatable Grace event
repeatable Lexi event
Alice gym outfit
Grace maid outfit
Gym outfit support for Alice blowjob
new story events added to gallery
2 new fully animated arenas for generic combat
6 outfits to wardrobe
Changed
now you can’t have fun with girls if their trust is zero or negative
now fights with giants take place in designated arena which emphasizes their size
Fixed
hp bar shows full hp before taking damage / healing
emoticons not disappearing after rollback
0.1.0a
Major
implemented journal and help (press ‘Q’)
you can now escape generic combat
enemies drop loot
expanded and enhanced some events
emoticons added
unification of saves from 1080p and 2160p (4k) branch
bugfixes and QoL features
Added
transitions to all events that didn’t have them
Critic effect (deal x times the damage next time you deal damage)
Forbid debuffs (can’t play cards of given category)
replay icon
help shows after intro, it can also be found on pc or by pressing ‘Q’
checking girls stats through girls menu (heart)
defeated enemies drop loot (materials, will change to unique materials after card crafting is implemented)
ability to (try to) run during generic combat encounter, agility increases chance (20% + 2% per agility point), capped at 65%
fridge implemented, you can have a snack in a kitchen now
healing now gives indications in fight
support for cards that cause drawing card
journal, check progress and find tips about new events
expanded 2nd Lexi event
faint whispers now haunt you outside
sound when losing girl stats
animated scenes option support for grace massage
emoticons appear on girl stat change
shop icon to pc
easy rescaling all game screens for dev and modders, designed for increased compatibility between versions and possible 720p, compressed web and mobile versions.
Life Steal implemented
some enemies start combat with status effects
Patreon and Discord buttons to menu
Astral Lust keymap in Help menu
Changed
enemy battle animations are now slower
starting player max hp 100 -> 50
replay gallery now as pc app
made “quiet” text bigger
removed lust need for 4th Alice event
removed black screen from generic combat
notifications at the middle of the screen duration 6.0s -> 4.0s
4th Lexi event now requires Mina affection 1 instead of 4
now menu’s are above most other screens
it’s now impossible to trigger Grace events in her room when she is cleaning 1st floor
sleep now heals fixed 30hp instead of 100% hp
enemy faction now displays in other color
tweaked corruption and sanity change on killing humans
max hand 9 -> 7
some effects can now take negative values
now at the beginning of your turn you draw at least 1 card
1st Lexi and 1st Dog events enhanced a little
enemy intention changes position when menu is expanded
increased loot chance at the market
orgasms are no longer cutscenes, they can be clicked through
now you can still train after reaching cap, but it won’t increase stats
Bite sp cost 2 -> 1
now 1080p and 2160p use the same save folder in appdata, they are fully compatible
way cards behave in combat (drawing)
slightly increased Scavengers damage
in-game discord link
vertical spacing between enemy effects increased
now it’s much easier to find ice creams
other minor changes
Fixed
card destroying in forge
re-rendered grace massage animation to delete artifacts
error on clicking cupboard in the f1(b) corridor
error on trying to enter preferences
many grammar mistakes
gallery screen not hiding correctly
day counter not appearing after combat
bandit girl displaying as bandit group
Kiara sex scene
error at 3rd mina and lexi event
error at 5th mina event and one image showing out of sequence
text position being a little off in vault
loading game after deleting persistent data causes NameError if didn’t start new game at least once
strength effect displaying with decimal part
cards healing causing errors
damage indications ‘flying from corner’ in 1080p version
4th mina event not setting flag correctly
possible bug causing cutscenes to not play
now you can’t make outfit you already have
possible error when meeting bandits
you can no longer spam end turn
some cards not giving described effect
error on using some cards
player healing throwing error on 2160p branch
cards attacking few times attacking at the same time so it shows indications on top of one another
card loot containing less than 3 cards in some cases
Faceless Giant stealing boolean type effects as integers
cards ‘redrawing’ themselves after using a card to the left of them
a few other bugs
0.1.0
Initial Release
Changelog - Full
0.2.3
Beta
Added
Lexi 14th event
Lexi 15th event
Mina 17th event
Mina 18th event
repeatable date with Lexi - ‘Kitchen Date’
Lexi can react to player not attending their date, or not asking her out besides promising to
4 new quest items vodka, wine, old wine, and premium ice cream
How many of the given card you have in card selection screen
Quick Save/Load to the bottom menu in Android port
Mina can get drunk, and have a hangover
conditions for tasks to complete and progress, Mina won’t do nor complete tasks if she has a hangover
you can loot ice creams in a market at most once per day, you can now get premium ice creams, and loot for ice creams always since her 14th event
red map frame for planned dates, map icon will be turning to red when Lexi waits for you
what’s new for 0.2.3
Changed
you no longer lose deck if you’re defeated in Lexi’s 13th event
removed items not used in crafting from iron chests (2)
increased abandoned car loot
Fixed
Savenia could be found before Mina’s 5th event, which lead to continuity error in the next events
card register not removing cards on death
error when using deck list when registry is corrupted
tasks with not set location sometimes not completing on time (no such task in vanilla)
bad outfit for Rachel in her 2nd replay
Rachel 9th and Lexi 10th events not triggering
cupboard not trigger-able from the map
Alice in player bed after Grace 11th event
some checks not working in replays
Sandwich tooltip saying it heals 35 hp instead of 12
Alpha
Added
new, much better prologue
Grace 11th story event
Grace 12th story event
Merged story event - 13th Grace, 15th Alice, 5th Little Fox
Grace night prank event
Grace sleep footjob event
Grace night footjob event (yeah, two footjobs)
Grace revenge secret event
talking with Grace about her revenge
Grace can be angry at the player
option to apologize to Grace with a rose or by being charismatic
Footjob, Dildo and Masturbation to Grace statistics
Rubbing and dildo to Alice statistics
Rhainda 3rd event
Rhainda 4th event
Rachel 9th event
cunnilingus to Rachel stats
eating dinner with Grace in her 6th event heals and gives a buff
Lesbian to Rhainda stats
Masturbation and Lesbian to Little Fox stats
Little Fox x Rhainda event now raises their lesbian stat
Alice’s 8th event raises dildo and masturbation stats
action sounds to the manticore, werewolves, spiders
3 new cosmos renders, they’ll appear at random
Sugar Frenzy buff
outros to the last main girl events
consumable items
pouches, (3) chests & (2) keys used to open them
optimized tooltips
updated translations, Spanish fully translated
option to test sample sound
some spacing to the buffs in character menu
background to stats tooltips
new intro
killing human enemies now raises corruption again, up to 20%
Changed
What’s new won’t show for first time players anymore
Beginner Guide will show for first time players again
removed talking with Lexi about boxes
optimized image loading in many events
left & right character placements are now not on the edges
notifications are centered now
removed Lexi and Grace first story events, the new prologue takes their place
replaced mysterious coin drops from enemies with chests & pouches
buffs icons
removed rng from triggering two Mina’s events
Millionaire dream now triggers only after meting Aharon
Fixed
Alice shower dildo blowjob didn’t raise stats
PC wallpaper showing after defeating dragon summoned with Discord veteran’s code
no transition between two Grace images
some things not translating, despite having translation files
continuity errors at Rachel and Little Fox outfit events
double transition in Lexi’s 2nd event
getting Life with Alice dream before progressing with Alice
error at Lexi’s 9th event when using Vietnamese translation
many dreams playing at once
Lexi could go out again after bringing food
Lexi or Alice appearing in weird places after their events that didn’t advance the time
Savenia could go out often before healing her leg
pc icons not disappearing after inserting wallpapers code
Tooltips having wrong background size on Android and in translations
Grace’s ninth event showing on map before its requirements were attained
not being able to use all options in Grace bath replay
sound volume settings not working for some sounds
Lexi appearing in two places at once on map
tooltip staying behind from interaction menu when using it or closing it with a key
tooltip staying after closing inventory with a key
on kill effects not triggering if it’s the last enemy
0.2.2b
Added
updated Vietnamese and Spanish translations
Fredericka font support for Vietnamese
discount for relations with traders
Fixed
robin sex scene animations not showing
checkered background after credits in the replays
some things not translating despite having translation files - eq. item uses
no image - sidebar dark 1/2 on Android
error when using items in the vault, while not having any of this item in the inventory
negative hp when your ally wins the battle or you run after player’s defeated
Outfit unlocked message appearing even if outfit was already unlocked
corruption exploit with sleeping Grace
trust/lust exploit with sleeping Lexi
corruption exploit with wc peeking
corruption exploit with bath peeking
stuck at the tutorial after tweaking difficulty settings, and killing werewolf before designed
no lust increase from Kiara sex scenes
pc buttons being active in replay, wallpaper and collectible menus
outfit unlocked messages appearing also in the middle
Devotee girl not changing expression after player tells her to fuck off
missing item notification using ID instead of item name
rare error on save after giving Rachel materials
typos & grammar mistakes
0.2.2a
Added
Alice valentine wallpapers
bright hover to wallpaper menu
tooltips to wallpapers menu with wallpaper name
disable animation support to all animations that didn’t have it
Animations ON/OFF setting to Video tab replacing old settings
Notifications style settings to Game tab
icons to the items
crafting to the character screen
updated translations for Spanish and Vietnamese
a model info to Rhainda relations tab
move items slider to vault and trade
Even out function to the trading menu
Good Profit mechanic to the traders
preview of increased relations to the traders + relations counter
Disable Fredericka font setting to the game settings
scrollbar to the relations tab
some more stuff from 0.2.2 (and 0.2.2a) to what’s new
notification to the trader’s relations increase outside of a trade deal
option to chose defeat in Rhainda’s 1st event replay
community tag to Vietnamese translation
hover effect to flags
Changed
Supporters about/credits font
Now wallpapers will be sorted, and unlocked wallpapers will show before locked ones
HP bars image
removed cumming animations from the most events that had them
minor dialogue changes in a few events
removed continue option from most prostitute sex scenes
notifications window
reworked the whole inventory system
interact ‘Interact’ font to Fredericka
interact menu buttons to follow new GUI style
merged character and inventory menus
inventory + character menu follows new GUI style
vault follows new GUI style
crafting menu to follow the new GUI style
optimized crafting menu performance
increased Mysterious Coin worth 10 -> 60
decreased chance to drop Mysteries Coin for most enemies (by 50%)
chance when looting treasure trove to obtain Mysterious Coin 100% -> 40%
removed obsolete tooltips from character menu
relations menu to follow new GUI style
help menu to follow new GUI style
story menu to follow new GUI style
decks menu to follow new GUI style
expanded menu icons to follow the new GUI style
outfit crafting menu to follow the new GUI style
outfit crafting will now happen on clicking the outfit
now you can use items in vault for all quests
now the items you gave to girls in event previously will not be there next time
now wandering trader’s daughter trade will clean up bought things
wandering trader now will offer some items only after some relations reached
increased maximum Hollow Market discount 10% -> 20%, it’s harder to increase relations
Hollow Market now allow to pay with everything, it restocks weekly
Hollow Market can now have more different items to buy, some require higher relations with them
default name for new players will be John now
notification side for code insertion
dream with the devil animation to the moving image
Patrons settings category will no longer show for non Patrons
what’s new frame to more readable one
one dialogue line in the Grace’s nightmare event
wandering trader’s daughter is now not separate trader
Mysterious Trader will restock everyday
You can no longer continue Alice’s Q&A game in replay after losing all caps
music in first Rhainda event is now positive after the fight
Sample Mod stickman dream is now off by default for new players
now Warehouse event replay will always have people inside the warehouse
In Roars in the Sky event you can now shot at the sky in replay, this option is no longer usable in normal gameplay without a shotting card
Prostitutes can now be priced at not full values
Madam Hof will display prices in caps now
Wandering Trader will display prices in caps now
discount from relations no longer applies to the wandering trader daughter services
Fixed
previous scene seen after battle when picking a card
interaction menu’s Lobby (view B) button, taking player to his room
multiple healing notifications after sleep
error on Treasure Chest events
error on exploration on old saves under some circumstances
a possibility of patches not applying correctly between some versions
Alice’s WC anal having an odd image with animations OFF
wrong image after animation ends in Grace’s 2nd massage event
second Grace massage in clothes not raising stats
a few weird transitions in Succubi events
possible error at midnight kiss event
suicide saying you lost cards
Alice task error if it was taken before 0.2.1e
Astral Lust dream triggering before meeting Kiara
tooltip staying after clicking continue in the tutorial
rare error at the tutorial end
listed cards in deck were aligned to the left side
Alice stranded outfit weaving not working
could enter playroom before building it with the interactions menu
Alice, Lexi and Grace showing in their room while being somewhere else after some events
error at replays of midnight kiss event
Alice sleeping in player’s bed after Grace coming for a sleepover
some translations not appearing due to % and %% translation generation conversion
trade save/load exploit
Spanish translation sleep being smaller in bed dialogue menu
in Spanish Rest icon text is no longer off icon
Relations tab one person being hidden under the image
updated/added entry not being translated
weird spacing at the end of 0.2.2 what’s new
black screen in replay in warehouse exploration event
Alice task related errors for people that didn’t cancel her task since before 0.2.1e
Alice not showing up first in the replay of Q&A event
Alice changing outfit in Q&A replay
some rare, latent problems with Alice’s Q&A event involving not taking item rewards from her
possible errors in building shrine replays
items in Alice Q&A shared between saves on one playthrough
no background in Mina’s Good Ol’ Bootle replay
no background in Lexi’s Trouble at the Market & Feet Massage replays
no background in Grace’s Play House event replay
no background in Lola’s event replays
no background in the first three secret endings replays
black/checker background in skip mode if animation didn’t decode first frame before displaying them with some animations
Amanda’s default way of calling player not translating
typos
0.2.2
Added
Spanish and Vietnamese translations
Difficulty settings - change at PC
Grace coming for a sleepover after having a nightmare
Lexi x Grace interaction in the kitchen - 5 variants
3rd Kitsune to the game - Rhainda
1st Rhainda story event - Hunter
2nd Rhainda story event - New Home
Little Fox kissing with Rhainda (can be toggled off)
Threesome with Little Fox & Rhainda
sex event with Rhainda - Fighter
4th Kiara story event - Myth of Creation
Kiara repeatable sex scene - 5 outfits, 225 animations
New Kiara sex scene - 5 outfits
footjob, cunnilingus to Kiara stats
new outfits crafting menu
Kiara Angel outfit
Kiara Nympho outfit
Kiara Party Girl outfit
message to unlocking outfits
support for multiple notifications
apps in the pc now have description labels
Resume to the main menu, it will allow to resume game where you ended it
new erotic scene to Alice shower event
increasing vitality heals for increase in max health
Mod Settings for Sample Mod, it allows to toggle Stickman dream
new secret (bad) ending
credits to game over
Changed
reversed required/owned item count in the crafting menu
optimized card crafting menu
Craft button to Create button
debug mode app is shown only if debug mode is on
added outlines to bottom part of PC
decreased Flirtatious Look cost to 1, and changed vulnerable 1 to 2
improved and optimized state selection
Player stats no longer give buffs, instead they work passively
Moved story mode from game settings to difficulty settings
size of tooltip for interactions menu
You can no longer dream when sleeping with girls
expanded Fireworks tooltip
chance for girl night party occurring to controlled 1/14 chance.
Fixed
Orc with halberd saying it’ll attack five times instead of four
tutorial saying Rubik cube will increase spirituality
error when trying to destroy cards with Destroy that were used in battle
Destroy cards not being destroyed
possible no image when escaping in event Chased Trader Daughter
hp being above max if vitality decreased
0.2.1e
Changed
Now by default the show mask option will be turned off on Android
Stickman Dream was disabled
Blood Diamond uses 3 Coal instead of 12 Stone now
Fixed
Savenia bike in the interactions menu before finding her
Sample Mod settings showing in settings before being fully implemented
changes in event rarity not being reflected immediately on new saves
new events not being triggerable immediately on new saves
before first meeting the girl, her outfits were not showing in wardrobe correctly
card tooltip staying after selecting a card
card tooltip staying after using a card
card tooltip staying after destroying a card
affection and time of day not updating visual bug
0.2.1d
Added
footjob to Lexi stats
new threesome position stats
new setting - Game - Show interaction menu (I key)
new setting - Game - Show tasks menu (T key)
new setting - Game - Choice menu position
new chinatown region arena
Patreon and Discord links to the what’s new
scrollbars to sex positions counter if too many entries
3 unique cards for January 2022 Patrons - Blood Diamond, Delusions, The Last Journey
unique card for everyone - Fireworks
Lifesteal attack icon to combat
summoning allies (for now Delusions card only)
Interactions menu
Changed
moved choice buttons to the right
optimized wardrobe
animated hovering over intractable items
Christmas is now available only till 6th January
devourer leech attack icon
optimized all cards view
made what’s new footer italic
Fixed
error when seeing Alice get combat gears task completion
Lexi’s 8th event showing incorrectly on the map
injured dragon not showing on old versions
error in wardrobe
Lexi’s footjob not increasing stats
Mina’s 3rd event animations not playing
Faceless not exhausting
combat tutorial doesn’t reset
cards displaying wrong attributes in decks after battle
odd game settings placement
story mode not preventing random combat encounter
Alice Get Combat Gear task
hundreds of typos and grammar mistakes
xmas without time limits before completion
Mina and Lexi 8th event is shown on map but can’t be triggered
mysterious trader exploit - rolling back after seeing cards
alice sexpos menu could overflow beyond screen if you were bad boy
arrow in lola room being offscreen
‘,’ at the end of sentence when getting multiple unique cards at once
0.2.1c
Changed
decreased chance of Roars in the Sky event
Fixed
injured dragon event not triggering
savenia & lexi not disappearing from map after 7th Savenia event
errors on tasks - TypeError: loot() argument after ** must be a mapping, not tuple
error on option I want to be master of my own destiny from the devil
0.2.1b
Changed
increased trade icons/text for android
on android clicking outside the menu when choosing deck will toggle showing enemies
on android clicking a card will make it bigger and clicking it again will use it, clicking outside will return the card
Tower has no side effect, armor 5 - 3, empower 2 - 1
removed few strong enemies from average combat difficulty
story exploration events now have lower chance
Fixed
Judgment card dealing damage only to one enemy
out of place Hollow Market on android
destroying/moving cards between decks counting as interaction
error when checking combat tutorial in help menu
card related checks
encountering the most powerful enemies if not defeated average enemies before (no more masochist mode)
error on Alice’s Get Combat Gear task
typos
0.2.1a
0.2.0c fixes
0.2.1
Added
Lexi feet massage activity
Christmas event - Beginning
Christmas event - Alice the Christmas Elf
Christmas event - Santa Lexi
Christmas event - Deer Gracie
Christmas event - Kitty
Christmas event - Sober
Christmas event - Holy Night
December Patron wallpapers
Christmas 2021 Postcard wallpaper
Changed
improved map event flickering mechanism
0.2.0c
Added
Christmas event will now reset each year
Fixed
being able to trigger Christmas without any story progress
the first deck resetting after load
unable to pick up two collectibles
error when opening a vault on new saves
other save loading related bugs
healing Alice required all possible cards
error when task completed at wanderers hideout
0.2.0b
Added
now map will glow if story event is available
Changed
improved exploration rng generator, improved story even chance
removed character menu help window as it caused issues
Fixed
bathing/shower exploit
savenia’s map event support
error when trying to destroy a card (right click)
able to leave deck menu without 11 cards
exhaustible deck exploit
previous patches were run when loading new game
0.2.0a
Added
Savenia can now go out after her leg healed
shortcut to open/close map “m”
Fixed
skipping tutorial was not permanent
error when using Slice card
Patron display for long names
save/load bug with disappearing allies
Wheel of Fortune card doing nothing in some cases
Savenia being at the hotel after leaving
bike displays when looking for upgrading hotel when it should not
Grace outfit changes in the cooking task
task could be finished at night, let the girls sleep!
a few characters could be at the bathroom/wc at once
girls still asking what you want them to do even if task in auto mode
0.2.0
Added
Decks system
choosing deck before combat
8 deck sorting algorithms
5 deck display options
buffs system
buffs to character menu
2 buffs - Well Fed, Reinforced Armor
Tasks system
Tasks silent mode
Tasks auto repeat option
Task settings
Tasks to Lexi
Tasks to Grace
Tasks to Alice
Tasks to Mina
2 cards - Snipe & Frag Grenade
new status effect - Hunter’s Mark
3 new enemies - Bandit with wakizashi & Bandit with a knife & Bandit Captain
generic combat to exploration events
a real combat tutorial
Allies system - story based only
Lexi 13th story event - Trouble at the Market
easter egg to Lexi’s laptop
Grace can appear at the first floor corridor cleaning
Grace cleaning 1st floor activity - 2 variants
Grace cleaning 2nd floor activity - 2 variants
Grace cleaning lobby activity - 2 variants
Grace cooking activity - 3 variants
Grace play house activity
asking Mina about Jack - previous hotel owner
asking Alice about Jack - previous hotel owner
asking Grace about Jack - previous hotel owner
Fox Shrine expansion
Rachel - new catchable fox girl
Rachel events support to the map
Rachel appears at the lobby
Rachel appears at the shrine
Rachel to the journal
Rachel to the girls menu
Rachel 1st story event - Saving the Fox
Rachel 2nd-6th story events - Building Shrine
Rachel 7th story event - Magical Outfit
Rachel 8th story event - The Arrival
Savenia 6th story event - Recovery
Savenia 7th story event - Return
Savenia 8th story event - A Surprise
Little Fox category to replays
Little Fox can live at the hotel
Little Fox 2nd story event - At the Hotel
Little Fox hunger mechanic
Little Fox Thief outfit
Little Fox appears at the shrine
Little Fox events support to the map
Little Fox 3rd story event - Little Thief
Little Fox 4th story event - Treasure Hunt
Little Fox feeding - handjob - 2 outfits
Little Fox feeding - blowjob - 2 outfits
Little Fox feeding - footjob - 2 outfits
dialogue lines to the Little Fox at the treasure hunt exploration event
kissing Little Fox at the treasure hunt exploration event
dialogue line to Friendly Wanderers event
Injured Dragon exploration event
Chased Trader’s Daughter exploration event
Life with Alice dream event
Damsel in Distress - Traitor exploration event
Damsel in Distress - Pregnant exploration event
10 Patron wallpapers
cheat code to all tiers
Changed
added Take Cover and Stab to the starting deck, removed Dodge
tooltips in character menu now follow mouse
optimized menus code
balanced trade with the devil
random combat will no longer give the same bandits in one fight
generic combat event beginning
now all facilities at the forge open crafting
Cards can no longer be kept in the vault (infinite card storage with decks system)
Skill change message now follows new format: ‘x improved (x level)’
Alice trade in questions game now uses her nickname if set
empty card selections will no longer display
forge help message
crafting now can take vault materials
Bandits Rape to Bandits - assault event name in replays
different naming style in replay menu
improved replay gallery recovery
journal/codex GUI improved, increased readability
battles are now skipped in replay
Little Fox is now considered a side girl
Expanded wallpaper adding by code message
removed Guard, Healing, Retaliate cards from dragon loot
Fixed
looking at draw pile shows which cards will be drawn in order
Lexi love above maximum for some players
Despair tooltip
one intent image for Devourer Giant
Looking for Powerful enemies found Strong enemies instead
Birthday Gift part 2 replay not playing the whole event
notification showing even if no items were looted
crafting cards resets slider to the top
vault space being permanently filled after using vault materials
can’t progress with Little Fox in SFW mode
narrator used instead of Grace in one line
no shadows in Little Fox smile image
enemies waiting for deceased turn
replay gallery category buttons highlights
now it’s impossible to start battle with dead being, instead it will have 1 hp
affection notify messages in replay
messages with 0 increase in trust/lust/affection/submission
map showing story events available when characters were in the toilet or outside
typos
0.1.10d
Added
attempt at running away costs 2 energy
caps to hollow market
Changed
sacrifice is no longer affected by most debuffs
nerfed cultists a little
nerfed one dragon ultimate ability
nerfed manticore stunning abilities
increased cooldown of manticore critic buff
decreased strength from werewolf “empower” action 5 -> 3
decreased werewolf hp 132 -> 98
nerfed orcs a little, lowered their hp, changed critic to strength
Headbutt cost to 2, increased base damage to 4
Fixed
mousetooltip not disappearing sometimes
error when using Faceless card
error when using Slice (provided by Alex250)
Slice from sample mod not in bandit lootlists (provided by Alex250)
spit poison tooltip size
card description not updated when drawing cards mid-turn
removed placeholder mod settings
stun immunity doing nothing
card tooltip not closing after using a card when behind is another card
enemy action cooldowns resetting each turn
Stunning the same enemy on successive turns will not change its intent but will still stun them
After winning against the Dragon on Volcanic Fumes from the code in the PC, the Wallpaper of the PC is not closed and hides the scene
if an enemy starts with Strength their Intent does not take it into account initially
0.1.10c
Fixed
spikes not granting thorns
resurrect not working
0.1.10b
Changed
now strength bonus is not calculated when defining relative card attack
Fixed
error after exploring 129 times in a single session
past lives not advancing time
true damage not bypassing block
unavoidable attack being avoidable
sacrifice damage being affected by the buffs
error on using Ritual card
0.1.10a
Fixed
0.1.10 what’s new
all 0.1.9f fixes
0.1.10
Added
Mina can appear at the vault
2 H scenes with Mina at the vault
one topic to talk about with Mina in the vault
new status effect Heart of Flames
new card: Heart of Flames
damsel in distress event series
damsel in distress - brunette
damsel in distress - soldier
damsel in distress - bimbo
damsel in distress - milf
damsel in distress - short
Main Story side event - Past Lives
Changed
the rest of status effects icons
Dragon now has Heart of Flames buff/card
many event lootlists
arena park2 rerendered
enchanced RNG mechanic of exploring
Fixed
supporters overlapping if in game menu inside main menu
after Grace change, Grace position is not updated
supporters weird display on 4K branch
0.1.9g
Fixed
error on opening settings after 0.1.9e patch
card tooltip not closing after using a card when behind is another card
added various fixes from 0.1.10 patches
0.1.9f
Changed
death on mina’s event has no side effects now
Fixed
item loss on rollback
vault exploit
Freedom in Death & Death cards not ending combat
supporters overlapping if in game menu inside main menu
after Grace change, Grace position is not updated
supporters weird display on 4K branch
0.1.9e
Fixed
error when using Cease Fire Treaty
0.1.9d
Added
new deck images
health bar size is dependent on enemy width
supporters to the main menu
Changed
battle gui placement
now you can only rollback to battle start, not each move
Fixed
error after answering all Alice questions without taking her items
(possibly) rollback after death not returning items if died in combat sometimes
0.1.9c
Fixed
errors on loading save prior to 0.1.9 if shortly before fought enemy group
0.1.9b
Changed
Burning and Poison tooltips
Fixed
Sweep description
The Sun tooltip
strength decreases to 1 with max strength on the second turn
burning immunity not working
immunities not decreasing effects on receiving them
0.1.9a
Added
strength & agility add buffs in combat again
wallpapers looting in the fight again
animated hp bar
Fixed
X cost cards couldn’t be played
overlapping indications
Flirtatious Look not changing enemy intent
error on Faceless using debuff
looting exploit
card descriptions not updating after killing enemy
unable to skip if loaded from inside of combat
hp bar not reflecting actual hp at the start
0.1.9
Major
reworked combat (saves in the middle of an old fight will give error)
reworked cards
Added
end turn keybind (spacebar)
powersave & frameskip to video settings
5 status effects - Dragon Might, Persistence, Illusive, Venomous & Fury
new card - Dragonborn (orange, from dragon)
option to toggle rollback block after version upgrade
Midnight Kiss event
10 wallpapers
templates to mods folder
Changed
added tabs to what’s new screen
powersave by deafult is now off (was auto)
optimized save load code
now game by default is launched in fullscreen
balanced many enemies
balanced many cards
Fixed
life steal doesn’t work on the last hit
error on Grace changing clothes
97 other issues, both design flaws and bugs
0.1.8
Added
460 images
36 animations
3rd savenia event
4th savenia event
5th savenia event
repeatable savenia H scene
boobjob, blowjob, outside, inside to savenia stats
footjob to Mina’s stats
new dialogue option with Little Fox
patting cat - bedroom/lobby/kitchen
patting dog - bedroom/lobby/corridor
pats to cat & dog stats
kissing lexi - bedroom
kissing alice - bedroom/gym
kissing grace - bedroom/lobby/kitchen/corridor/goodnight/corrupted goodnight
kissing mina - love/friend/competition
kisses to Alice, Mina, Lexi & Grace stats
submission, blowjob, thighjob, handjob, anal, came inside to Grace stats
new bad ending (secret)
sex positions to girls stats
masturbation & boobjob to Alice stats
5 new wallpapers (patrons)
4th vault expansion - +25/+2 space
5th vault expansion - +25/+2 space, Currency no longer takes space
6th vault expansion - +25/+2 space, Space for materials per level +100% (+175/0)
7th vault expansion - +25/+2 space, Space for materials & cards per level +100% (+200/+16)
several text & textbox related settings
settings to change main menu images
new characters icons to the map
recover (fix) gallery button support for new and all future story events
scrollbar to crafting screen
Always Display Masks option to game settings
masks opacity sliders to settings (for now only in forced mode)
new font for madness lines
map support for savenia events
wallpaper code input window
allowed copy-paste wallpaper code
‘what’s new’ screen on the first time launching new version
Changed
drastically improved performance of wallpaper and collectibles tabs
Savenia’s first event tip, now it clarifies need for the next hotel floor
main menu has new looks
text is now outlined by default
now main menu shows girls
now finding treasure map doesn’t end exploration
increased chance of finding map 30 -> 35
increased blur for sfw mode in 4k
story dialogue options now are highlighted
dialogue options (repeatable) show what they increase
now characters in the map are outlined
renamed ‘fix gallery’ button to ‘recover gallery’
removed patreon icon from PC
improved card destroying screen
increased vault/crafting menu size
increased card size in vault
increased vault (materials) space per level to 50
bad endings now block rollback
when training after reaching the cap, you no longer tire yourself
one line in Alice’s 5th event
building/upgrading hotel now checks vault for the items too
increased card size in the deck view
setting tabs are now always displayed
Fixed
some clipping in renders when finding cat
SFW mode not blocking Alice masturbation/ass in Mina’s 3rd event
weird light reflection in Mina’s 3rd event
unable to finish SFW mode because of lack of lust increasing options for girls
SFW mode not working in Little Fox meeting
card destroying tab selecting vault tab
treasure hunt won’t reset if defeated in ambush
Alice’s 5th event animations not changing
sfw skipped notification not showing in many events
alice’s anal wc not raising statistics
missing image in Grace bath massage
Kiara story sex not increasing creampie counter
Alice story events not increasing creampie counter
Mina’s 3rd event not increasing Alice’s masturbation counter
Mina’s 13th event not increasing cunnilingus counter
Mina’s footjob not increasing statistics counter
Succubus (Pink) getting Threesome counter for both succubi in one scene
possible tutorial overflow beyond screen on some displays
image not updated when expanding hotel
some grammar/spelling mistakes
0.1.7b
Added
map find events support for events triggered with dialogue options
Changed
now you need to met Grace first before using map
removed one line in beginner guide
Fixed
map showed available events even if you already improved relations with girl that day
error due to having more story progress than intended, be it after using console, cheats or possibly game bug
map event finder not updating after some events not progressing time
error on opening wardrobe after new game
0.1.7a
Major
map mechanic implemented, it shows where girls and story events are, and allows insta-travel
new gui to inventory/character/journal menus
added 168 images
added 24 animations
Added
help in case game’s not working to main folder
notifications to bad endings
nicknames to some girl stats
6 wallpapers
lexi event
lexi repeatable H
cunnilingus to Lexi stats
one replay
new little fox stats image
little fox image is changed in full sfw mode
can get a dream when sleeping with a girl
craftable lexi outfit
Savenia to wardrobe
8 outfits to wardrobe
optimized long game performance
sanity ‘safety belt’ for main 12th event
if you can get unique event on exploration it will be shown
Changed
during suicide you no longer lose items
now sacrifice damage won’t be affected by buffs/debuffs
now music changes entirely in H scenes outside
characteristics menu was hidden till mechanic is implemented
increased size of destroy cost
regeneration buff - now it decreases when burning, and negates with poison
now quick sleep button will take you back to where you were before using it
Fixed
Alice 13th event stuck at the end sometimes
Alice animation in waking up cunnilingus skipping
black screen when choosing if to cum inside or outside in Alice scene
whispers not disappearing in new outside H scenes
Lexi handjob last animation ending awkwardly fast, now it loops
grace no image bug in standing massage without animations
12th main quest can end with weird jump
empower effect giving one less strength than it should
item overflow out of bag
card preview in crafting/destroy
clipping in one lil fox render
mina feet massage can’t be done in sfw mode
error on Mina’s feet massage
some enemy action text in sfw mode being to explicit
amanda picture (nipples) could be seen in full sfw mode
secret H scene showing in in sfw mode
Kiara showing up in the gallery before unlocking library
trader discount not loading
can leave pc when writing code
Grace can have pyjamas scenes without unlocking this outfit
could trigger Alice’s 14th event without playroom
can give Lexi ice cream before she tells us she like them
could check at f2 shelf at night, and it would have day renders
wakeup from Mina sleepover only to find Alice sleeping there
Alice can be sleeping in our bed after we slept in hers
Alice can be sleeping in our bed after Lexi 11th event and Mina 15th event
wandering trader’s daughter didn’t get her father discount
not all buttons showing in trade screen
price wrapping sometimes
reading books taking time if it’s capped and not taking otherwise
many typos
Mods - Added
support for adding new wardrobe outfits/people
6 lexi emotions
new frames - minimap_frame_player, minimap_frame_event
0.1.7
Major
added 650 images
added 80 animations
added 35 events & scenes + 14 additional variants
added Savenia Dorack, new main girl (biker girl)
added SFW mode, you can stream AL now! Check settings.
Added
SFW mode
Lexi 10th event
Lexi 11th event
expanded Lexi shower scene
H scene to Lexi shower
sex, thighjob counter to Lexi
Main 12th event
Alice 13th event
Alice 14th event
can sleep with Alice in player bed (5 variants)
we can now find Alice sleeping in our bed
4 scenes with Alice in our bed (8 variants)
repeatable BDSM H for Alice (7 variants)
submission, sleep sex, bdsm, massage counter to Alice
you can build next hotel floor now
Savenia 1st event
Savenia 2nd event
Savenia to girl stats
Savenia to the journal
Grace 10th event
Grace repeatable H
boobjob, outside counter to Grace
Mina 16th event
Mina’s route to her stats
treasure hunt event (1 medium event, 8 mini events)
expanded warehouse scene
Little Fox to girl stats
Little Fox to journal
suicide
bad ending - corruption
bad ending - sanity
bad ending - “His” influence
new enemy
new arena
new music
wallpaper
one replay category
14 replays
message when clicking locked collectible
Changed
now if you leave when Lexi is taking a shower, she would finish it, and do something else
characteristics note
orc group loot
tips now shown name only after completing first event
default hotel music
improved fade_slow transition
Fixed
recurring nightmare not showing prior image in replay/dreams mode
Mods - Added
optional days attribute to NPC.check() method
calc_gui(pixels) - quick way to calculate pixels to your game format
scope variable to replays
7 mina emotions - ouch, shocked, eyeroll, apologetic, sigh, exasperated, smile cum
2 alice emotions - pout, closed
Mods - Changed
gui mode is now defined at -999 init
0.1.6c
Added
support for animated scenes option to explore/return scenes
time flowing in secret scene
bdsm, denial counter to succubi
wooden horse now adds to bdsm counter
reminder to mina’s 15th event
1 audio file
2 emoticons
Changed
bandits with guns now deal a little more damage
increased hovered card size in the vault
now not all wallpapers are lootable (eq. secret wallpapers)
balanced wallpaper drop chance
Fixed
trader discount not saving
trader items reset after game exit
player massage skills not saving
bandits dealing negative amount of damage if weakened
block increasing from enemy attacks
respectful referral not triggering
fireball exhausting
dragon starting combat with ultimate ability
possibly weird looking buttons
spelling mistakes
Mods - Added
characters, and ignored attributes to set_states()
stat_sleep to NPCs
add_submission() to NPC class
stat_bdsm to NPC class
optional set attribute to advance_time()
emoticon sm/sp screens
Mods - Changed
how wallpaper system works, now not all wallpapers are lootable from combat
Mods - Fixed
unable to save after using some triggers
0.1.6b
Changed
how unique story events are triggered, now it’s much more open
Fixed
missing words when watching series
fire breath exhausting
exploit at Lola’s pilediver scene
using destroying through forge results in a bugged screen
weird things happening after pyjamas party event
Alice clothes changing sometimes in her 10th and 11th events
not full notification in 5th main story event
some spelling mistakes
0.1.6a
Major
added 48 images
added 17 animations
Added
a new line to Combat tutorial
new items to the traders
Quick Save/ Quick Load keybindings, F5 to save, F9 to load
percentage of unlocked events to the gallery
card destroying to the storage/crafting menus
new item, Coal, it’s used to destroy cards
coal to sentient enemies lootlists
new hidden deal to the devil, to resist hidden corruption
263 flags to game files
Alice’s tv
2 discord codes, for people with 10th level there
secret scene
2 secret wallpapers
Lola to journal
Lola event (by Osamabeenfappin)
Lola repeatable H
tutorial to character menu
2 replays, Secret category
Lexi’s laptop
now you can eat bananas :)
f1 cupboard
Changed
lowered requirements for helping Mina with Alice
‘Q’ now also closes new tutorials
one wallpaper code
increased chance to drop wallpaper after win (2.5% -> 10.0%)
now training after maxing stats doesn’t advance time
reworked card destroying menu
various menus will now close when you click outside them
when you find cat, the time advances now
improved some exploration loot
cards are now destroyed with coal
how much corruption you get during some scenes
now whispers stop during H outside
optimized replay gallery loading time
now some replays categories will have name before completing any events
removed most story events from replay dreams/exploration categories
moved some replay categories
journal tips are now sorted
Fixed
whispers not stopping in wanderer’s hideout discover event
foxy camera control reversed
sukki having one animation in lifting H repeated
Stranded outfit needing 5 Cloth instead of 4
perspective resetting on moving items during trade, and in vault
getting 0 amount of items
grace sometimes disappearing from the hotel
restore my clarity devil option, working like remove corruption
error on game over from hidden corruption
exploit with life steal and sacrificing hp
notifications in third main event, now all are displayed
getting over max in luck throw for hiding from chimera
Grace losing trust instead of Mina in “spin the bottle” game
Alice gym outfit footjob using default outfit
12th Alice event not regaining hp/sanity
Alice’s bored expression, being not sharp
some notifications being too quick to see
error on being mean to Mina
teleport after first Lola event
replay gallery being over toolbar
few pyjamas party renders clipping
leaving Lola room leading to hideout square
possible errors during loading (“KeyError: u’movie_Obj/PC/a’”)
now you can’t use Lexi laptop if girls are using it
many spelling/grammar mistakes
Mods - Major
reworked traders implementation, now changes are made automatically to them, use define
Mods - Added
sacrifice option to enemy atk method, deafult False
unlocked boolean, needed when adding to replays_list, decided if name is seen from the start
four trigger to death
being heal method now returns amount healed
can make heal method do notification, make_message = True
Mods - Changed
how arena animation is determined, now all renpy images work
0.1.6
Major
added new goth side character Lola, she lives in the wanderer’s hideout (by Osamabeenfappin)
added 171 images
added 16 animations
Added
Meeting Lola (by Osamabeenfappin)
pyjamas party event with Mina, Grace, and Alice (by DarrDorack)
dream - Millionaire
new H to Mina’s massage
3 replays
2 replay categories
Lola to characters menu
monthly (5) wallpapers
Fixed
whispers not disappearing sometimes
dream, Dekesha not having replay image
0.1.5c
Major
added tutorial menu, and a few tutorials (default key: Q)
reworked character, and choice menus
can add your own custom music to the game! Check settings for instruction.
can make music playlists in the settings!
added 40 images
added 5 animations
Added
intro
starting image
game icon reimplemented
logo to the main menu
new cheat codes for all tiers
a few tutorials
tutorial menu, to the quick menu (default key: Q) (test)
Grace now also takes bath, additional H (decided by poll)
show/reset tutorials options to the settings
tutorials to the quick menu
options to toggle sound notifications
custom menus to the characters
Succubi to the character menu
statistics to the character menu
improved error recovery, might help if you’ve corrupted your game playing with console
1 replay
a few transitions
Changed
Preferences renamed to Settings
choice menu, now it looks better
characters menu
replay of Grace’s shower now allows to choose her attitude
increased prices of girls at the hideout
balanced loot a little
Fixed
Grace standing breasts massage missing image
statistics not increasing in Kiara scenes
statistics not increasing in Mina cunnilingus scene
not advancing time in Grace’s shower scene
blocked Kiara’s 2nd event in some cases
giving Grace rose, without having any
a lot of grammar and spelling errors (thanks to Strectmar)
rare error on game load
misplaced masks in the vault
Removed
help icon from the pc
Mods - Major
now your pathways can also be relative to mods folder (
myMod/1.png
instead ofmods/myMod/1.png
)
Mods - Added
support for up to 20 dialogue options being displayed at once (previously 9)
option to add your own characters to the character menu
6 new text tags - love, lust, quiet, small, big, loud
0.1.5b
Major
added 88 images
added 19 animations
The first side activity for Mina! Improve you massage skill, and get a treat ;)
Added
dream - Dekesha by Darrdorack (check)
vault can now be scrolled or dragged to move
Mina’s side quest - feet massage (test)
7 images to Mina’s 5th event, and different enemies
(Coming soon) to the notification about reaching stat cap
a few tips to Alice’s question game, now it’s stated clearly that you don’t need to answer all questions to win, only three of eight
button to fix gallery to the pc
Changed
now there is no infinite combat loop at mina’s 5th event, there are 4 waves.
Act of Creation card, now it produces random materials, it has a chance to drop most new items.
Fixed
vault items getting off window
trader menu items getting off window
gunsmith station mask being off placed
Mina & Lexi using pc being off placed
collectible image having hard time closing sometimes
when trying to close collectible image, opening another image
sound not stopping when facing Chimera during exploration
chimera steps being too rushed
cat “Found” replay not ending properly
not getting a kiss in Mina’s “Concerned Friend” replay, also you can give her ice cream now
exploit allowing to get many Shot cards from Alice’s shelf, even though you’ve had Shot card already
in replay Alice’s Q&A having no items to pay
some weird sounding lines
some spelling mistakes
Mods - Added
player
skills
dict to Player classMassage skill
improve_skill(sk, amt = 1)
method to Player class, it improves or adds a skill to the player, can be used to decrease skill
0.1.5a
Fixed
forge description still saying crafting is work-in-progress
(all fixes from 0.1.4c)
Mods - Added
2 new text tag
{trust}
&{bad}
0.1.5
Major
first wakeup scenes, tell your girls to fuck your brains out before getting up!
now you can store cards in the vault! Also you can upgrade it further with two new expansions!
card crafting was implemented with two crafting tables, and 6 new cards. 20 recipes await.
25 new items to loot from enemies will be used to craft cards. Generally this should reduce grind a lot.
reworked vault screen, now you can change its tabs, to card storage, crafting stations.
added over 500 images
added 97 animations
Added
6 cards, can be obtained only through crafting
25 new items
20 crafting recipes
8 new events to the gallery, one new category
2 Alice’s wakeup scenes
Alice story event
2 vault expansions
3 Mina’s story events
2 new together H for succubi
wanderer hideout, and brothel with four prostitutes (make pedestrians)
storing cards in vault
crafting cards
one render and dialogue line to the 10th main story event
Kiara’s story event
Kiara’s threesome repeatable H
Changed
most lootlists
replay gallery labels, added padding
first help screen text a little
Fixed
not likely, yet possible error when saving in trade/vault
Mysterious Trader never appearing if you were unlucky (or started new game)
Mods - Added
2 buttons - button_craft_stone & button_craft_steel
5 succab emotions
1 kiara emotion - sigh
can add tabs to the vault
can add recipes to the forge and the gunsmith
can make new crafting tables using vanilla screen
chinatown2 arena
0.1.4c
Changed
first help screen text a little
Fixed
error on sleepover with Mina
Mysterious Trader never appearing if you were unlucky (or started new game)
Lexi not being topless, she has nice tits, let them out!
null chance of Grace being at the wc, now it’s ~16% every morning
spelling mistake in Regrow Limbs card
not being able to fuck in warehouse replay scene
0.1.4b
Major
reworked replay gallery, now it shows preview images, added dozens of scenes and a few new categories
added 92 images
Added
background to replays that contains ‘talks’
turn to Mina option when peeking at sleeping Lexi
monthly (5) wallpapers, which are preview for 0.1.5
Changed
now if you peek at girls under shower for too long, time will advance
Fixed
Alice’s toilet H menu not triggering
error after sleepover at Alice’s bed
many spelling mistakes
continuity error in mina’s 4th event
no image bug when trying to see Alice’s Training event replay before building a gym in a new game
can look for enemy and do a succubus hunt at night
Removed
friendly reminder when using console/developer mode, it was annoying
Mods - Added
new button displayable
button_label
, can be used with background attributeyou can now add your own scenes/categories to replay gallery
now you can change vault’s space per level
before_shuffle
triggeroption to add code to trigger directly, through appending function like this
trigger.before_combat_screen.append(myFunction)
dream_end
label now ends replay automaticallydeath2
label now ends replay automaticallyexplore_return
label now ends replay automaticallynow
fight()
skips combat automatically if in replay, can be disabled by settingreplay_mode = False
when callingfight()
Mods - Fixed
error/bug when using console (in freeroam) to jump to a label that ends with return (on this event’s end)
0.1.4a
Added
Succubus hunt option to the entrance doors
option to look for enemies to entrance door
Changed
Cease Fire Treaty card - removed destroy and thorns, added exhaust, cost 1 -> 2
decreased chance for random combat encounter during exploration 45% -> 15%
increased items received from helping Kiara and Lexi 1-2 -> 2-4
some transitions in lexi’s 8th event
Fixed
cards spelling mistakes
pink succubus not requiring the white one for the threesome scene
wrong name when asking for threesome with white succubus
error when trying to trade stats without having that much
some weird bug one player had, freeze on Alice’s question, according to the game all questions were answered, which shouldn’t be possible, still it will progress if that happens to someone
Lexi’s laptop mask being off
Grace’s 7th event not unlocking in the replay gallery
using Freedom card causing error
animations not ending in many repeatable H scenes
lexi not covered in cum after hj
grace maid fingering showing images in incorrect order
toggling animated scenes mid scene making one animation to run for the whole scene
alice footjob in gym outfit showing animations in casual outfit instead
Mods - Major
reworked the whole file structure, severely increasing overwriting vanilla files compatibility with future versions
Mods - Added
track of current label, it’s in the _label variable
customizable text tags, check text_tags.rpy in functions/qol
0.1.4
Major
added over 350 images
added over 30 animations
added new Patron’s cheat codes
added 17 events
Added
2 Lexi events
2 Alice events
2 Mina events
all main girls’ toilet events
Grace’s change event
all main girls’ sleep events
2 sleepover events
8 Alice’s repeatable H scenes, 3 unique + 5 variants
Book of Secrets book
Introduction to Vampires book
Kain’s Diary book
Astral Etiquette book
4 main story events
10 cheat codes
Changed
now if you use antibiotics you need to wait a few days for Alice to get better
Lexi’s and wc renders redone
Mods - Added
a few new pages to the documentation, changed or expanded a few other
support for tweaking characters states (what they do, where they are)
a few Alice’s emotions, one Lexi’s emotion
0.1.3b
Added
quick rest/sleep button
option to change max memory size, increase performance by using more memory
option to use only RAM as image cache if you don’t have enough Graphical Memory
more transitions to Alice’s shower scene
new images in selecting prisoner choice menu
one audio to the dream
3 events to the gallery
Changed
now you have much higher chance to find rose when you need it
succubus help
made Recurring Nightmare’s text no longer being too long in some lines
Fixed
many typos, improved flow, thanks to Strectmar
random combat encounter taking two time periods
some cards’ effects not working with immunities
Fireborn card causing error
now you can’t enter playroom before building it
now you won’t need to rollback after trying to talk to the prisoners when having no prisoners
dragon not using ultimate abilities (not that someone actually get so far with it)
bug with AL keymap help
sleep with dream advancing time by two days
About menu, now Ren’Py updates won’t be able to mess it up
Mods - Major
reworked triggers, now they can actually use global/local variables, as they are in fact executed in code now, not in the trigger object. You don’t need to compile triggers anymore, I got you covered, it’ll be compiled automatically at game startup.
Mods - Removed
old card methods granting effect, only buff() method should be used to increase or decrease status effects
Mods - Added
5 looting triggers and 3 new ones to combat
Mods - Changed
now cards are reset with load using reset() method (you need to initialize your variables here). __init__() by default calls this method.
Mods - Fixed
trigger after_load_start triggering instead of after_load_end
0.1.3a
Added
around 20 images
You can check drawers in player’s room now
alice’s shelf
now you can read the document on Lexi’s desk
burning immunity status effect
Sample Mod, it adds one weird dream and a nice card to drop from melee bandits
transitions to praying and mirror
Changed
noon -> afternoon
succubus threesome talk renders
one grace’s tip to make it more clear on time
you can shot at the sky with Shot card now
buffed dragon, added ultimate moves
terror now has 50% chance to trigger
improved animation of some scenes
Fixed
over a hundred spelling mistakes or improved the dialogue’s flow, thanks to Strectmar’s initial screening
error on trying to save the woman
possible error when fighting ghouls
error on generic combat after loading old save
error on Mina noticing us
enemies life not being reset in random combat encounter
stomping sound continuing after choosing to hide in encounter with chimera
dream end dialogue triggering twice
possible bug causing dialogue window do disappear only after combat has started
terror chance of losing a turn in tooltip
error when fighting dragon
mysterious trader corruption decrease needed 2 coins
spelling mistake in one of Alice’s question
Alice’s is no longer so nice to give you a foot job before answering her questions
dragon card check
mina’s repeatable boob job
now you can’t change girl’s petname at 24 trust
Mods - Added
Sample Mod to mods/ folder, check it, it’s heavily commented to explain everything going on
after_load _start & _end triggers
triggers during combat initialization
Mods - Changed
for triggers you can now either use a string or (much better for performance) use compiled (at init time) code object (check documentation’s trigger tab)
now adding enemies to random combat encounter requires to add them as strings instead of objects
now terror tooltip reflects changes to terror chance properly
Mods - Fixed
spelling mistakes in a few image names, to make it easier for you to not use wrong name
0.1.3
Major
added dreams, there is a chance every time you sleep for a dream, dreams mode released
implemented prisoners system
you can catch succubi and play with them in the dungeon and playroom, 13 H scenes, they have their own lust mechanic
added extensive modding support, check modding documentation to find a way to make your own mods (doesn’t require programming skills, link in modding section of changelog)
added over 500 images
added over 100 animations, almost doubling animations amount
added 49 events/scenes
Added
dreams mode (Patrons)
6 dreams, one with 5 variants
4 audio tracks
7 exploration events
5 new enemies orc group & dragon & stickman & ghouls & succubus B, make classes, add card lootlists
Alice event
Grace event
Mina event
prisoners system, for now it’s used only for succubus
catching succubus, playing with them in the dungeon and the playroom
dungeon expansion - playroom
13 H succubus scenes
Mina, Alice and Grace showering
5 new arenas + 2 variants
3 new status effects - Terror (chance to skip turn), Stun Immunity, Fury (Gain x strength on receiving damage)
2 new items
4 new cards
8 wallpapers, 2 animated
new tags - group (FFM) & BDSM & Pet Play & Orgasm Denial
Help appearing on catching first succubus
Succubus lust mechanics
Grace’s repeatable H scene, 4 variants
transitions to Alice’s shower scene
you can give main girls petnames if their trust is at least 25, check the mirror
Mina’s repeatable H scene, 3 variants
Changed
now generic combat has flat 45% chance of happening
notification assumes different position if in combat
reticulate you -> riddle you with bullets
now frail along with armor can’t lower your block
dungeon looks
lowered chance to drop mysterious coin from cultist
tweaked every exploration event chance
now effects which being is immune to won’t be granted instead of disappearing on being’s turn
Alice’s schedule
Fixed
lowered size of old animations (4K: 1.58GB -> 0.88GB, 1080P: 604MB -> 320MB)
overlapping tooltip in character screen
Mods - Released
online documentation, it shows how to make your mod with new dreams, events, cards, enemies, etc.
source code for people with Mod Developer role on Discord
AL card templates
mod_toolkit script (for now it only enables dev tools & console in AL)
Mods - Added
support for adding new status effects & card mechanics, trigger system
support for adding your own menus to expanded menu
support for replacing game images
support for adding new cards
support for adding dreams
support for changing base dream chance
support for adding new enemies & arenas
support for adding new enemies & arenas to generic combat event
support for adding wallpapers
support for adding new cards and changing/adding cards lootlists
support for adding new materials and changing/adding items lootlist
support for changing sleepover chance to decrease corruption
support for changing card loot chance
support for changing escape chance
support for creating new traders
support for adding new prisoners
support for adding new succubus
support for tweaking succubus lust mechanic
support for adding/changing journal tips
support for displaying help screen with your text
0.1.2d
Major
Improved/Changed/Fixed over 1000 dialogue lines. All thanks to Strectmar - new editor
added story mode - disables generic combat event (toggled in preferences)
now you can spare human enemies to stop corruption from increasing (no materials)
Added
new audio track
few new images
Now you can seal pinky promise with a kiss if she trusts you enough
Changed
some dialogue & renders in Alice’s 8th event to make it better
Mina’s 4th journal tip is now much more clear on what you need to do
added new audio track to lexi’s first event
now generic combat has 45% chance of appearing
peeking at Alice showering now increases corruption
Mina’s 5th event renders a little to make the flow better
Now rape gives corruption even if you have beyond 50% corruption
a few status effect tooltips, to make them more clear
Fixed
wheel of fortune & lycanthropy & healing card mistakes
wandering trader intro playing out every time
Resurrect effect spelling mistake
Vulnerable tooltip spelling mistake
Unique cards from cheat codes disappearing on death (use code again)
market scenes looking weird
getting kicked in the balls is no longer so painful that it raises an error
improved/fixed dozens of codex entries
0.1.2c
Changed
now sleeping with a girl increases sanity by additional 3%, there is 50% chance for corruption to decrease by 2%
Fixed
cat name changing after using a vault, load game and the name will be back
some repeatable events (like trust events) being hidden
weird looking sequence in sleepover
dozens of spelling mistakes
0.1.2b
Changed
now you need to only answer 3 of Alice questions
trader now by default doesn’t keep (when restocking) items given to him by the player
Fixed
traders not restocking correctly
traders not using randomized goods
getting blowjob after trading with trader
error on asking for wanderer trader daughter
exploit at alice questions
omitted dialogue lines in alice 7th event
0.1.2a
Major
fixed false positive virus detection (this time for real) by removing custom game icon
Fixed
Faceless card not exhausting and often costing spirit
Hypnotise stunning player instead of enemy
reaching 100% corruption not causing game over
about page legal section
0.1.2
Major
new location for freeroam - library
implemented complex trading system along with a few traders
added codex, place to gather knowledge you came upon in the Astral Lust with over 90 entries (sleep to update if using old save)
implemented unique cards (stay after death) and tarot cards (weird effects)
implemented cheat codes system (check pc, codes available on Discord & Patreon)
you can now sleep with one of the girls (sleepover, 3 variants)
added 9 story events, exploration event, 3 repeatable events
added 30 animations
added over 330 images
added 6 H scenes + 2 erotic scenes + 4 H scenes variants
added 25 cards
added 7 collectibles and 6 wallpapers
added 16 cheat codes (free/patron codes all available on Discord and Patreon)
updated Ren’py, it should fix false positive virus detections.
optimization of card loading, cards now load about 2x faster, useful with large decks.
new tags/fetishes - feet, anal
Added
new location - library
talk with Kiara
codex with over 90 entries
new emoticon - codex entry
repeatable work for Kiara
praying at the altar
2 Kiara story events
Kiara scenes to gallery
Kiara to journal
Kiara desk sex as repeatable
7 collectibles, 2 animated
16 cheat codes
reminder for people using console and a warning to not run auto_destruct(), seriously, don’t
hover tooltips to character menu
movie icon if wallpaper / collectible is animated
3 unique cards
22 tarot cards
Forbid Tarot status effect
Mysterious Trader, appearing sometimes at the library
Kiara to the wardrobe
6 wallpapers, 1 unlockable only through combat, 2 animated
Hollow Market - exchange tab, check the pc.
2 alice events
alice repeatable H, 3 scenes, one with 5 variants
alice taking showers at the evening
3 sounds
main story 2 events
grace event
exploration event - friendly wanderers, 2 H scenes
codex entries for previous content
2 mina events
9 events to the gallery
sleepover with Mina, 3 variations depending on trust and rng
Changed
death on Mina’s 5th event no longer resets your deck
now the same things when looted are summed up
the way enemy loot works, now every item has independent chance to drop
text when trying to build a forge / dungeon, now it’s more clear about rooms current functionality
added [Corruption / Madness] to warehouse attack choices
slight optimization of save loading
notifications no longer overlap with day counter and enemy effects first line
lowered corruption increase after killing humans
inventory now sums up quest items
vault now uses modified trading system GUI
improved inventory, character, girls, characteristics, deck and wardrobe screens
now you can hide quest items in vault
Cease Fire Treaty rebalanced - cost 0 -> 1, now it removes Invulnerability, it’s destroyed instead of exhausted
journal no longer resizes itself depending on content
true damage no longer scales with Vulnerable, Strength and Weak effects
sacrifice no longer scales with Strength and Weak effects
refreshed about page
Fixed
enemy still hitting you after dying from thorns
attacking a few times after enemy health hits 0 no longer triggers thorn damage
now killing humans always trigger corruption increase
pc icons not showing up after inserting wallpaper code and using exit icon
possible bug causing day counter to not appear after combat
stun effect not having effect on player
sacrifice no longer triggers thorn damage
stun effect ticking down 2 stacks / turn
some spelling and grammar mistakes
0.1.1
Major
added 7 story events
added over 200 images
added over 20 animations
added 3 animated H scenes
added 6 repeatable H scenes variants
added 2 outfits
Added
Lexi’s 6th and 7th story events
Mina’s 6th and 7th story events
Grace’s 6th and 7th story events
Alice’s 6th story event
you can now train at the gym with Alice
Alice can now appear at the gym
repeatable Grace event
repeatable Lexi event
Alice gym outfit
Grace maid outfit
Gym outfit support for Alice blowjob
new story events added to gallery
2 new fully animated arenas for generic combat
6 outfits to wardrobe
Changed
now you can’t have fun with girls if their trust is zero or negative
now fights with giants take place in designated arena which emphasizes their size
Fixed
hp bar shows full hp before taking damage / healing
emoticons not disappearing after rollback
0.1.0a
Major
implemented journal and help (press ‘Q’)
you can now escape generic combat
enemies drop loot
expanded and enhanced some events
emoticons added
unification of saves from 1080p and 2160p (4k) branch
bugfixes and QoL features
Added
transitions to all events that didn’t have them
Critic effect (deal x times the damage next time you deal damage)
Forbid debuffs (can’t play cards of given category)
replay icon
help shows after intro, it can also be found on pc or by pressing ‘Q’
checking girls stats through girls menu (heart)
defeated enemies drop loot (materials, will change to unique materials after card crafting is implemented)
ability to (try to) run during generic combat encounter, agility increases chance (20% + 2% per agility point), capped at 65%
fridge implemented, you can have a snack in a kitchen now
healing now gives indications in fight
support for cards that cause drawing card
journal, check progress and find tips about new events
expanded 2nd Lexi event
faint whispers now haunt you outside
sound when losing girl stats
animated scenes option support for grace massage
emoticons appear on girl stat change
shop icon to pc
easy rescaling all game screens for dev and modders, designed for increased compatibility between versions and possible 720p, compressed web and mobile versions.
Life Steal implemented
some enemies start combat with status effects
Patreon and Discord buttons to menu
Astral Lust keymap in Help menu
Changed
enemy battle animations are now slower
starting player max hp 100 -> 50
replay gallery now as pc app
made “quiet” text bigger
removed lust need for 4th Alice event
removed black screen from generic combat
notifications at the middle of the screen duration 6.0s -> 4.0s
4th Lexi event now requires Mina affection 1 instead of 4
now menu’s are above most other screens
it’s now impossible to trigger Grace events in her room when she is cleaning 1st floor
sleep now heals fixed 30hp instead of 100% hp
enemy faction now displays in other color
tweaked corruption and sanity change on killing humans
max hand 9 -> 7
some effects can now take negative values
now at the beginning of your turn you draw at least 1 card
1st Lexi and 1st Dog events enhanced a little
enemy intention changes position when menu is expanded
increased loot chance at the market
orgasms are no longer cutscenes, they can be clicked through
now you can still train after reaching cap, but it won’t increase stats
Bite sp cost 2 -> 1
now 1080p and 2160p use the same save folder in appdata, they are fully compatible
way cards behave in combat (drawing)
slightly increased Scavengers damage
in-game discord link
vertical spacing between enemy effects increased
now it’s much easier to find ice creams
other minor changes
Fixed
card destroying in forge
re-rendered grace massage animation to delete artifacts
error on clicking cupboard in the f1(b) corridor
error on trying to enter preferences
many grammar mistakes
gallery screen not hiding correctly
day counter not appearing after combat
bandit girl displaying as bandit group
Kiara sex scene
error at 3rd mina and lexi event
error at 5th mina event and one image showing out of sequence
text position being a little off in vault
loading game after deleting persistent data causes NameError if didn’t start new game at least once
strength effect displaying with decimal part
cards healing causing errors
damage indications ‘flying from corner’ in 1080p version
4th mina event not setting flag correctly
possible bug causing cutscenes to not play
now you can’t make outfit you already have
possible error when meeting bandits
you can no longer spam end turn
some cards not giving described effect
error on using some cards
player healing throwing error on 2160p branch
cards attacking few times attacking at the same time so it shows indications on top of one another
card loot containing less than 3 cards in some cases
Faceless Giant stealing boolean type effects as integers
cards ‘redrawing’ themselves after using a card to the left of them
a few other bugs
0.1.0
Initial Release
Changelog - Debug Mode
0.1.6
Added
option - Recover all mental stats
option - Add Pyjamas Party bribes
option - Add Gold Bar
option - Unlock all collectibles
Fixed
when opening trade menu, debug options were still in the background
0.1.5
Added
option - fight Dragon
option - fight Stickman
option - fight Ghouls
option - fight Succubus B
option - catch Succubus A
option - catch Succubus B
option - build Vault 4th tier
option - build Playroom
option - trade with Debug Trader v2 - has every item for free
Changed
option - fight Succubus to Succubus A
0.1.2
Major
added cards category
added traders category
Added
option - add tarot deck
option - reset deck
option - add cultist loot
option - trade with Mysterious Trader
option - trade with Wandering Trader
option - trade with Debug Trader
option - restock Mysterious Trader
option - restock Wandering Trader
option - restock Debug Trader
Changed
debug file is now required to run python console
0.1.1
Major
reworked whole debug design
added options to fight all enemies in game
Added
debug mode mow uses custom screen instead of choices menu
option - add Basic Materials x50
option - add Ice Creams
option - fight (support for 14 new enemies)
option - build gym
option - recover 100% hp
Changed
advance time option now treats negative values as positive
option add Basic Materials is now add Basic Materials x5
notify about getting materials
Fixed
die option no longer cause weird behaviour if you set your vitality above 333000
0.1.0
Initial Release
Changelog - Dreams Mode
v2
Major
now it supports mods that don’t support dreams mode (don’t have their own preview image)
v1
Initial Release