Lev4ik

Active Member
Apr 12, 2020
708
1,441
276
Is this stil working? I change false on true but i cnt call console itself.
1. Open the renpy folder
2. Open common folder
3. Locate the 00console.rpy file and open it with notepad++ or regular notepad
4. Search the file for:

Code: config.console = False
and change it to:

Code: config.console = True
5. Save the file and run the game (Should be fine starting a new game or loading from a save unlike UnRen method).
6. Push Shift+O to open the console.
 

Swampy_Leshij

Newbie
May 10, 2018
81
477
174
Is this stil working? I change false on true but i cnt call console itself.
It does for me. Are you sure you did everything correctly? It should look like this:
1757847353103.png
Oh, and make sure your keyboard layout is set to ENG. Shift+O doesn't work with РУС layout that's for sure.
 

freddygonzo

Member
Apr 26, 2024
402
505
179
There are a couple of logic errors in script SDialog.rpy:

E.g.: $ TempLust += (TempLust2 + 8) if 50 > GirlA.Lust > 80 else 2
GirlA.Lust can never be less than the first number and greater than the second one at same time, thus always fails to 2.
A: If the intention is being outside of the medium range: $ TempLust += (TempLust2 + 8) if (GirlA.Lust < 50 or GirlA.Lust > 80) else 2
B: If the intention is being inside of the medium range: $ TempLust += (TempLust2 + 8) if 50 < GirlA.Lust < 80 else 2

Check out following triggers for these logic errors:
elif Trigger == "sex":
elif Trigger == "hotdog":
elif Trigger == "anal":
elif Trigger == "scissor":

As the intention is most likely B, I've corrected all the errors this way.
There are enough actions that only boost lust below a single certain value, so I'm not entirely sure what makes more sense here, as the difference is extreme if 10 or only 2 by scissor action for example.
With slow scissor speed, it's: TempLust += (TempLust2 + 7) if 30 < GirlA.Lust < 70 else 3
This way, it makes sense that you slow down on a girl's low lust value and increase speed later from 51 on when it gives more lust until 79.
There are actions that give an extra boost above a certain lust value, but that makes less sense if such bonus would be restricted also only to the lower range with a slowburn in between.
Whatever the original intention is, a boost sometimes is better than never at all.

PS: forgot to mention there is another bug in the scissor trigger:
if TempLust2:
$ GirlA.Addict -= 1 if Player.Male else 0

This condition is rather pointless if the scissor action can only be used by female MCs anyway, so it should rather always reduce addiction by 1. This fix is also included in my attached file version below.

Drop the attached file into the game's game folder.
Beware that this file's content could be changed from official side in the next versions, thus could cause issues if still used!
Let's hope this gets quickly fixed by the author.
 
Last edited:

sleepingkirby

Well-Known Member
Aug 8, 2017
1,298
1,931
262
I do wonder if oni ever comes on and checks the threads on this site to look for errors or stuff like that.
This thread? No. But he's actually very responsive to people that comment on his patreon. A while back, a bunch of the people here were like "ZOMG!!! THEY RUINED ROGUE!!! HER CHIN IS SO MANLY!!! WHAT IS HE DOING?!? HE'S SUCH A BAD ARTIST!!!" It went on and on. I went on to his patreon and went "Hey Oni. Was there a reason you made the default face the mouth open face or was that a bug?" He went "There was a reason but not a very good one." And then he promptly changed the face back in the next minor version. If you look at the comments in his patreon vs comments here, they're almost perfectly reverse in the ratio between people complaining and people liking the stuff. The vast majority of people on his patreon loves the new stuff and is happy with the game. Any question, bug reports, preferences are usually answered and/or addressed pretty quickly.
 

plekiaaa

New Member
Nov 22, 2024
4
2
61
This thread? No. But he's actually very responsive to people that comment on his patreon. A while back, a bunch of the people here were like "ZOMG!!! THEY RUINED ROGUE!!! HER CHIN IS SO MANLY!!! WHAT IS HE DOING?!? HE'S SUCH A BAD ARTIST!!!" It went on and on. I went on to his patreon and went "Hey Oni. Was there a reason you made the default face the mouth open face or was that a bug?" He went "There was a reason but not a very good one." And then he promptly changed the face back in the next minor version. If you look at the comments in his patreon vs comments here, they're almost perfectly reverse in the ratio between people complaining and people liking the stuff. The vast majority of people on his patreon loves the new stuff and is happy with the game. Any question, bug reports, preferences are usually answered and/or addressed pretty quickly.
André Michelin said "man only truly respects what he pays for" when he saw free copies of his Michelin guide used to prop up a workbench
 
  • Like
Reactions: Helivesoncemore

DerKER

Member
Jul 14, 2017
302
212
221
Yes. It's fairly simple actually. First, make a text document in the game folder, the name does not matter. Open it up, and type in:
Code:
init python:
    def doCheats():
            Player.Cash=99999

            return "cheat confirmation";
"doCheats" can be anything that you want (so long as you aren't replacing an actual function in the game and it does not contain spaces or special characters, though underscore is fine), and is what you will type into the console (alongside the "()", meaning in the example the command would be "doCheats()" without the quotes). You can put as many commands as you want where the "Player.Cash=99999" is. Make sure to use spaces before each command to bring them to the same placement as Player.Cash is there. Tabs will cause renpy to throw an error. "cheat confirmation" can be anything you want and is just there to tell you the thing ran (you can actually remove the entire "return" line if you don't want confirmation). As an example using the full list of options you quoted (as well as a few extras I'll note that were overlooked but probably are worth having), you might do something like:
You don't have permission to view the spoiler content. Log in or register now.
So, commands I added there are:
  • A pair of keys that were missed ("Xavier" is used to open his office and the classroom, "All" tells the game you've gotten the key ring from Xavier's office of all the keys).
  • The mind screen options for Emma and Jean. As done they set the option to available, but not active. If you go to the dirty talk menu, you can tell them to start mind screening people, making it easier to get away with stuff. There is not actually a way to enable these options without cheating, but the code for their function is complete.
  • The mind whammy option for Jean. It is turned on by default when you meet her, but until you get her caught by Xavier, at which point he bans her doing it until you do a plan on him and force him to allow it again, you can't talk to her and have her stop doing it. Adding the trait is how it determines if you know about it and can ask her to stop (or once she's stopped start again).
  • the IX value for Jean is a hidden variable that starts at 500, and is subtracted from her shown Inhibition value when determining what her inhibition actually is for any checks. Setting it to 0 means her shown Inhibition will be her actual Inhibition.
Commands I removed were:
  • GirlX.Loose=1000, The Loose variable tracks how tight/loose the girl's anus is, and is a value from 0 to 2. It's set at the start of each day based upon their total anal activities, and will reach max looseness fairly quickly if you do any anal activity with the girl. (3 total anal actions, as in anal sex, anal dildo use, and/or anal plug use, raises them from a loose of 0 to 1. 15 total anal actions will raise this to a value of 2).
  • GirlX.Taboo=0, The Taboo value is set by the room the girl is in, and some checks for who else is there/if the door is locked. There is no point setting it with cheats in this manner. At most you might set it when about to perform a sex act, as I believe it's usually set when a girl moves to a location/the location's state is changed rather than when you are about to do a sex act, but I might be mistaken there.
  • All the sex tracking variable were removed. These variables track how many times the girl has done a given sex act, and are used in determining how willing she is to do it again/how much she likes it, and how good she is at the act. Likely one would prefer to actually raise their experience through gameplay, even if cheating to make options available, and at max stats, the girls will generally agree to anything already even without needing to have existing experience with the action. However, I'll provide the code for the actions below if one wishes to add them to the list. Replace the "GirlX" with the girl of choice. Note that the # symbol indicates everything after it on that line is a comment, and will not interfere with the code.
You don't have permission to view the spoiler content. Log in or register now.
Also, at the point you're adding various cheat commands that are faster/easier to type in, here's a potentially amusing one:
Code:
init python:
    def bukkake(girl, cpp = 0, cpa = 0):
            girl.Spunk = ["in", "anal", "back", "belly", "tits", "hand", "hair", "facial", "mouth", "chin"] #All semen cover locations.
            girl.CreamP += 1 if cpp else 0    #Increase count for vaginal creampies by 1 if cpp is not 0 or negative
            girl.CreamA += 1 if cpa else 0    #Increase count for anal creampies by 1 if cpa is not 0 or negative
Note that the "init python:" line only needs to occur at the top of the .rpy file, so if you were to add this command to the prior cheat code, you could skip that line.

Anyway, this will add cum to all the possible locations on a girl. To use, just open the console command and type in "bukkake(girl)" without quotes, and replacing "girl" with [girl name]X of your choice (for instance RogueX). Note that sometime the game will be wonky if you do this outside of a sex scene and cause it to just randomly vanish after some action. Generally, if you do it during a sex scene, then tell her to leave the sperm where it is when you actually cum, it will stay as normal after that.

The cpp and cpa values are for if you want it to count as vaginal/anal creampies for the girl's counter. By default they will be 0, meaning they won't count if you ignore that bit. However, if you want them to count, you can use the command "bukkake(girl,1,1)" (without quotes, and replacing "girl" with [girl name]X of your choice), which will result in each of the values being increased by 1. If you just want it to count for vaginal creampies, you can use "bukkake(girl,1)", while for only anal creampie count you can use "bukkake(girl,0,1)". In both cases without the quotes and replacing "girl" as described previously.

Once you're done with the contents of the text file, rename it to be a .rpy file. Then when you start up the game, the commands will work.
I've been thinkering a bit with this, I think im learning to code on python with it lmao, im trying to optimize the code and got For loops with lists working, here's the code if anyone wants to do it on their own cheats.

Code:
    def maxstats():
            girl_list=[RogueX,KittyX,EmmaX,LauraX,JeanX,StormX,JubesX,GwenX,BetsyX,DoreenX,WandaX]
            for i in range(len(girl_list)):
                girl_list[i].Love=1000
                girl_list[i].Obed=1000
                girl_list[i].Inbt=1000
            return "max stats";
 
Last edited:

sleepingkirby

Well-Known Member
Aug 8, 2017
1,298
1,931
262
I've been thinkering a bit with this, I think im learning to code on python with it lmao, im trying to optimize the code and got For loops with lists working, here's the code if anyone wants to do it on their own cheats.

Code:
    def maxstats():
            girl_list=[RogueX,KittyX,EmmaX,LauraX,JeanX,StormX,JubesX,GwenX,BetsyX,DoreenX,WandaX]
            for i in range(len(girl_list)):
                girl_list[i].Love=1000
                girl_list[i].Obed=1000
                girl_list[i].Inbt=1000
            return "max stats";
If you're looking to optimize, you want to be popping off the list or referring to the items directly rather than throwing an preexisting list into a len() and then setting is as a range() on that. In code optimization, you're talking big O (the notation, not the giant robot). And in big O, each function call is counted as 1 as is variable assignment.
All that is to say, while the improvements are meager (long story), technically this:
Code:
for girl in girl_list:
is more efficient than this:
Code:
for i in range(len(girl_list)):
I say technically because, in big O. we generally only care about n, the powers of n and non-polynomial n's (n!, 5^n, etc.). The difference between n and 2n is generally small enough (and/or cpu's are fast enough) we don't really think about it unless it's showing real world performance difference.

So, technically, your maxstats() function has a big O of 4n+4 where n is the number of items in the girl_list. Which, usually, is indistinguishable from n. But the change I suggest, it will be 4n+2. Which, again, is nearly indistinguishable and the improvements are meager.
 
Last edited:

DerKER

Member
Jul 14, 2017
302
212
221
If you're looking to optimize, you want to be popping off the list or referring to the items directly rather than throwing an preexisting list into a len() and then setting is as a range() on that. In code optimization, you're talking big O (the notation, not the giant robot). And in big O, each function call is counted as 1 as is variable assignment.
All that is to say, while the improvements are meager (long story), technically this:
Code:
for girl in girl_list:
is more efficient than this:
Code:
for i in range(len(girl_list)):
I say technically because, in big O. we generally only care about n, the powers of n and non-polynomial n's (n!, 5^n, etc.). The difference between n and 2n is generally small enough (and/or cpu's are fast enough) we don't really think about it unless it's showing real world performance difference.

So, technically, your maxstats() function has a big O of 4n+4 where n is the number of items in the girl_list. Which, usually, is indistinguishable from n. But the change I suggest, it will be 4n+2. Which, again, is nearly distinguishable and the improvements are meager.
I did try that, it wont work as it turns the index counter into girl class for some reason and will refuse to work lol

1757923727998.png
 
Last edited:

sleepingkirby

Well-Known Member
Aug 8, 2017
1,298
1,931
262
I did try that, it wont work as it turns the index counter into girl class for some reason lol

View attachment 5250386
Double check your declarations and usages and make sure you understand that I'm saying and what the code is doing. If you're confused as to why it turns the index into an object (which it should do), you're not understanding what is going on. This is completely allowed by several languages including python:
Code:
sleepingkirby@AnimalKirby:~/Games/Rogue-Like-1.64d-linux/game$ python2.7
Python 2.7.18 (default, Sep 19 2023, 07:10:59)
[GCC 10.2.1 20210110] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> list= [{'name':"rogue"}, {'name':"Laura"}, {'name':"kitty"}]
>>> list[0]
{'name': 'rogue'}
>>> list[0]['name']
'rogue'
>>> for girl in list:
...     print girl['name']
...
rogue
Laura
kitty
>>>
 
Last edited:

DerKER

Member
Jul 14, 2017
302
212
221
Double check your declarations and usages and make sure you understand that I'm saying and what the code is doing. If you're confused as to why it turns the index into an object (which it should do), you're not understanding what is going on. This is completely allowed by several languages including python:
Code:
sleepingkirby@AnimalKirby:~/Games/Rogue-Like-1.64d-linux/game$ python2.7
Python 2.7.18 (default, Sep 19 2023, 07:10:59)
[GCC 10.2.1 20210110] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> list= [{'name':"rogue"}, {'name':"Laura"}, {'name':"kitty"}]
>>> list[0]
{'name': 'rogue'}
>>> list[0]['name']
'rogue'
>>> for girl in list:
...     print girl['name']
...
rogue
Laura
kitty
>>>
I think I got it, thanks lol, Ive been shooting blankly using my knoledge of java to try and understand this and get python thanks for the help mate
Code:
    def maxstats():
            girl_list=(RogueX,KittyX,EmmaX,LauraX,JeanX,StormX,JubesX,GwenX,BetsyX,DoreenX,WandaX)
            for girls in girl_list:
                girls.Love=1000
                girls.Obed=1000
                girls.Inbt=1000
            return "max stats";
is this better?
 

sleepingkirby

Well-Known Member
Aug 8, 2017
1,298
1,931
262
I think I got i, thanks lol, Ive been shooting blankly using my knoledge of java to try and understand this and get python thanks for the help mate
Code:
    def maxstats():
            girl_list=(RogueX,KittyX,EmmaX,LauraX,JeanX,StormX,JubesX,GwenX,BetsyX,DoreenX,WandaX)
            for girls in girl_list:
                girls.Love=100
                girls.Obed=100
                girls.Inbt=100
            return "max stats";
is this better?
Yeah, that should work.
 
4.40 star(s) 166 Votes