ParadigmShift

Member
Mar 4, 2019
112
145
@Pilotus13 I would definitely pull that night time event for your mother into a its own RPY file. Thats some pretty heavy NTR content that some people might like the option to disable or avoid.

@LZ_Starbuck I agree with you, I would prefer to avoid modifying the base game files for the very reason you said, though some times it just cant be avoided. On that subject, what was the reasoning for not putting the custom serum traits in their own rpy file? I haven't tried experimenting with it much myself yet, but as in theory, as long as the functions are defined and the appropriate lists appended, I can't figure out a reason NOT to do it. It was something I was actually going to mess around with trying to do just that before Vren announced the serum overhaul.
 

Pilotus13

Newbie
Aug 14, 2018
32
26
I would definitely pull that night time event for your mother into a its own RPY file. Thats some pretty heavy NTR content that some people might like the option to disable or avoid
I agree. But I tried - and failed. Tried to just copy the lines from @LZ_Starbuck events - but the game just gave a message "cirisis list not defined" or something like that. If anyone could advise on what I did wrong or even take the labor of putting it into separate file - I would certainly not object.
 

ParadigmShift

Member
Mar 4, 2019
112
145
I agree. But I tried - and failed. Tried to just copy the lines from @LZ_Starbuck events - but the game just gave a message "cirisis list not defined" or something like that. If anyone could advise on what I did wrong or even take the labor of putting it into separate file - I would certainly not object.
It has to do with the init order of the python files. when python initializes files, it does it in specific order, starting with the lowest number and working its way up (-2, -1, 0, 1, 2, etc). Functions that are initialized with a higher number come later, and will override any conflicting functions or variables from lower number initializations.

In this specific case, crisis_list is initialized at level 1, so if you attempt to initialize and call crisis_list.append from a level 1 or lower file, it's going to return an error because crisis_list doesnt technically exist yet. By increasing the initialization to level 2, renpy will load all the level 1 files, then load the level 2 files.

Basically, I attached the NTR event below. You'll see at line 1, its "init 2 python:" so renpy will load crisis.rpy first, which creates the crisis_list array, THEN it will load the rpy file below, which adds your event to the array.

I hope that explaination helps.

Note : In the attached file, I took the liberty of adding a menu option to kinda/sorta choose whether you hide from your mother or get found on purpose. If you try to hide, she can still randomly find you anyway, but gives the player a little more control. It was intended to be a personal modification for just myself, but I didn't feel like taking it back out after I put it in.
 
  • Like
Reactions: The Grifter

The Grifter

Active Member
May 28, 2017
632
1,017
I'd like to thank all of you who create additional content for and 'fine tune' Vren's base game. The way I see it you keep people interested into the game who would otherwise stop playing and supporting him on Patreon for it being to grindy and lacking variety.
I do hope he is aware of your mods and considers officially including at least some of the content you came up with. Great work, and again, thanks!
 

ParadigmShift

Member
Mar 4, 2019
112
145
ParadigmShifts's Python Skill has increase by 1!

@Pilotus13 and @LZ_Starbuck
Soooo.....I went and did the one thing I really try to avoid doing if at all possible.
I modified the core game files.
And I went DEEEEEEEEP.

I added new toggle options to the Preferences screen that will allow players to toggle fetish content on or off at their choosing.
Which was actually surprisingly easy, but never having done it before, took me a bit to figure out HOW to do it.

On the back end, this creates new variables that can be checked to see if the option is enabled or not. Means mod devs like Pilotus can create all the NTR content he wants, throw a check in front of it to see if the player has NTR enabled, and then proceed or pass depending on the result.

I included a readme file. I started with NTR, Pregnancy, and Foot Fetish toggles for now. Mainly just as proof-of-concept.

Note to non-modders: This file contains no actual mod content, and does not currently have any effect on current mod content. Its up to the modders to create content that utilizes these options.
 
  • Like
Reactions: caleban

ParadigmShift

Member
Mar 4, 2019
112
145
Alright, now that I've gotten some sleep, I've been trying to think of a way to accomplish the same as above, but without modifying the base game files. Ive played around with several ideas (creating a "PC" in the players room to, creating a NEW room that I can stick a "control panel" in, creating a unique NPC like starbuck with special dialogue options that opens a menu where players can toggle fetish preferences, creating a "cheat" menu like Trollden's ie press F to open a Fetish Menu).

I like the preferences panel option because its clean and tidy, and init's at a very low level (-1500). But I have to modify core game files to accomplish it.
Ultimately, what I need to figure out is if there is a way to HOOK existing functions.

Edit: SO, because of the way the world is initialized, its not possible to create new locations or modify existing ones. The world is "built" (all the arrays are created) one time when you start or load a game, and thus don't actually exist when the game is launched until that point. Because of this, its not possible to append any new actions or create new rooms in this array at game launch. A function would have to be called after the game is loaded in some way to trigger the append.
Which leaves me with either figuring out how to hook existing function calls, creating a new NPC, or a "cheat menu" style window.

Custom NPCs currently require inserting functions into script.rpy to trigger their creation, but I could always piggyback on Starbucks function.
Could always add the functionality into Starbuck too, I suppose.

A standalone "cheat menu" seems to be the only option that can try be done that wont modify core game files, without knowing how to hook existing functions.
Ill look into that later. Spent enough time on this for now. I need to do something fun for a bit.
 

LZ_Starbuck

Member
Mar 25, 2019
189
337
Just FYI, my idea for pulling some of my stuff out of script.rpy is to create a new event with an extremely high chance of triggering, runs some code, and then removed itself from the list of possible events. Not sure if this will work or not.

As far why the serums are in script.rpy, that is because when I first attempted my serum mods, I tried putting then in a different file, but the list of possible serums is created when you start a new game, not when the game loads. Having the serums in a separate file broke saving and loading the game, as it would not save serum progress. However, having gained some experience with the code I think it is possible to pull it out, I just knew much less about what I was doing when I first attempted it.
 

ParadigmShift

Member
Mar 4, 2019
112
145
Just FYI, my idea for pulling some of my stuff out of script.rpy is to create a new event with an extremely high chance of triggering, runs some code, and then removed itself from the list of possible events. Not sure if this will work or not.

As far why the serums are in script.rpy, that is because when I first attempted my serum mods, I tried putting then in a different file, but the list of possible serums is created when you start a new game, not when the game loads. Having the serums in a separate file broke saving and loading the game, as it would not save serum progress. However, having gained some experience with the code I think it is possible to pull it out, I just knew much less about what I was doing when I first attempted it.
That's actually brilliant. Using a crisis event to initialize the new mod code. That would probably solve my problem as well.
 

ParadigmShift

Member
Mar 4, 2019
112
145
Actually looks like a pretty straight forward system migration. I expected something more...significant. Havent completely mapped out the serum system functions, but adding new traits doesnt seem to be any harder than it previously was. Soon as I (or Starbuck...probably Starbuck) figure out how to create a crisis event that will remove itself from the list of possible events after firing, it should be easy to move a lot of the mods to their own rpy files.

Currently I'm going with the idea of your mother gifting you a PC early on to have in your room that will function for stuff like Fetish toggles (to start with) and more functions can be added with time.

Edit:
Got it boys! Attached is a simple mod file that can be used as an example. In a nut shell, it does 2 things.
#1 It defines the functions for my height modification serum traits (for an example)
#2 It creates a crisis event that creates the arrays for those serum traits, and appends them to the existing list of traits. The event uses a version check variable for its requirement, so once the event has fired, it will always return false for event availability ie. it will only fire once.

Upsides:
#1 It can be installed and run on an existing save game at any time. No need to create a new save game to initialize the new serum traits.

Downsides:
#1 Once initialized, if a new version is released, a new game will be required to clean the old data and initialize with the new updated mod.
#2 Its using the crisis event system, which by default has a 10% chance of firing for any event. This specific event is weighted pretty heavily, so when the crisis event fires, its almost guaranteed to be the Initialization event the first time, but it might take a few game days to get it to fire naturally.
I tried to figure out how to use the mandatory crisis list, but couldn't quite figure it out. Ill probably revisit this once I get my PC mod coded, and use it to call the init event.

On the bright side, Vren indicated in the script he's wanting to add serum mod support eventually, so maybe his system will work better and solve these problems. But for now, release the mod hounds of war, and let the good times roll!
Or something like that.

Edit 2: This mod is meant for v15+. Anyone that tries to use it on an older version and complains it doesn't work will be made fun of with a french accent! Now go away, or I shall taunt you a second time!
 
  • Like
Reactions: The Grifter

LZ_Starbuck

Member
Mar 25, 2019
189
337
I took a look at the serum changes briefly. Seems like it should be fairly straight forward to pull my custom serums out of script.rpy, but unfortunately I won't have time to work on it until late this week ( Thursday or later)
 

Rastafoo

Well-Known Member
Jun 6, 2018
1,541
3,163
Someone tell me, is this game worth playing?

I played Lab Rats 1 and loved it, but this one seems sketchy...
 

Bloodly

Active Member
Feb 27, 2019
616
471
It's gone from a fixed time and narrative to free-form, do-as-you-like with random events', infinite time. The game loop is there, there aren't that many events as yet, the progression is there and mostly complete, corruption is fully functional, though as with all such things it takes a great deal of time.

You have to decide whether that interests you.

The biggest pain is dealing with worker happiness when you don't know what the problem is.
 

ParadigmShift

Member
Mar 4, 2019
112
145
Generally, when workers aren't happy, it means they may not be getting paid enough, and thus need a raise (they'll eventually tell you their quitting unless they get a raise, or you can give them a performance review), or something they're doing is hitting on their "dislike" or "hate" list. Could be clothes they're wearing (or not wearing), could be the job they're doing. Could be they're prudish and don't appreciate you fucking their coworker on their desk and getting everything all sticky.

The world may never know....
 

Bloodly

Active Member
Feb 27, 2019
616
471
That's the problem. If they're unhappy, they don't tell you, and 'make small talk' has low odds of even hitting something, then it has to hit something you don't already know. A Performance Review won't have them tell you if there's something they dislike either.

It's very frustrating to watch someone's happiness drain down and down and keep getting message and you want to do something but you can't because you don't know what the problem is and they refuse to talk about it.
 

LZ_Starbuck

Member
Mar 25, 2019
189
337
I got my content mod mostly compatible with the new patch. The new serum mechanics are honestly pretty straightforward. I haven't had the chance to pull everything out of script.rpy, I was mainly just coding to try and get everything compatible with 15.0. Also spotted a couple bugs and typos with the new content. I'm not sure if I should try to actively fix those or not.

As for new room mechanics, that would definitely be good to have available, but so far I haven't needed to do that for my mods. I would maybe take a look at the code Vren has in place for work functions, like serum development, hiring, etc.
 
  • Like
Reactions: The Grifter
3.40 star(s) 127 Votes