SamuZai
vrengames
vrengames

patreon


Lab Rats 2 v0.49.1 Release! Get it here!

Lab Rats 2 v0.49.1 is Out! Download it Now!

PC: Lab Rats 2 v0.49.2-PC
Mac: Lab Rats 2 v0.49.2-Mac
Android: Lab Rats 2 v0.49.2-Android 

LR 2 v0.49.1 is finished and ready for it's public release! This update adds the ability to hire Jennifer, Lily, Gabrielle, and Rebecca onto your Pharmaceutical business team! Each girl has unique requirements that you will need to meet (or subvert) to convince her to join you. That addition required a major rework of how NPC scheduling and jobs worked, so while I was at it I also made (almost) all other NPC's hirable as well! Now you can invite your favourite NPC's from around town to fill critical business positions.

Now that every NPC is a valid recruit the default method of accepting applications felt a little tame. A whole batch of business policies have been added to let you screen your applicants, only accepting applications from women who fit your specific criteria. Each enabled filtering policy increases the cost of finding new recruits, but with enough money you can now narrow down your search for the perfect ~bimbo secretary~ quality employee!

There have been a whole collection of other fixes, improvements, typo corrections, and tweaks. Serum price calculations were about 50% bugged, so that's been resolved. Girlfriends can now be invited on fuck-dates if their Sluttiness is high enough, and without the risk of someone interrupting you. The business policy UI now displays what prerequisites are required before something can be purchased. Strippers can now give you a private dance at the strip club, if you're willing to pay for it. Several business policies that mention seeking more or less experienced candidates now adjust the age range of the candidate that will be found.

Enjoy, and here's a changelog with the full list of changes!

*CHANGES AND ADDITIONS*

- Added list_of_instantiation_labels, useful for mods to instantate saveable constructs or modify existing lists.

- Added Job class. Each job has a title and related Role that is given when a Person starts that job. Each Person can have only one job.

- Added on_hire and on_fire functions to Job class. Called when a person's job is changed, in case special variables need to be set up.

- Added "job_known" field in event_triggers_dict. If True, you know what a person's new job is, otherwise listed as Unknown.

- Added strippler_role and stripper_job.

- Added stripper role to Gabrielle when you find her at the stripclub.

- Added ability to ask for a private dance from strippers when they are at work.

- Added special private dance branch for Gabrielle when she's working as a stripper.

- Added Schedule class to centralise weekly and daily planning functionality.

- Added DailySchedule class to hold information about location plans for a specific day.

- Removed old schedule Dict from Person class. Now stores an instance of Schedule with the non-work locations that person would like to be at for each day/time.

- Added Job class. A "Job" is a collection of a Role, map location, and Schedule.

- Each Person now stores a Job (unemployeed is it's own "job" for coding purposes). Each person can only have one job at a time.

- Added Jobs for each of the core business jobs (research, marketing, production, supply, HR)

- Added Jobs for many special roles (stripper, prostitute, and similar).

- Added special Jobs for most of the special characters (Jennifer, Lily, Rebecca, Nora, Alexia, etc.) 

- Added multiple unimportant jobs for random characters to have (barista, cashier, etc.)

- Girls will check their Job schedule, if one exists, to see where they should be. If their job doesn't require them to be somewhere they will fall back to their normal schedule.

- Added override schedule, which has the highest destination priority. Used when a character needs to be forced to a location, is very pregnant, etc.

- Added "Offer to hire her" option to most job roles. Requires 20 Love to ask, and some jobs will require extra motivation to convince the girl to leave.

- Updated all events that maniuplated someone's schedule to work with the new Schedule system.

- Added event to have Gabrielle quit her job at the strip club and come work for you.

- Added recruitment critiera business policies, letting you only recruit applicants with tiny/small/large/huge breasts.

- Added recruit sex skill improvement policy.

- Many business policies now modify the age cap and floor of a new recruit.

- Added exclusive_tag to policies. When a policy is toggled on it will toggle off any policies with the same tag. 

- Added recruitment criteria business policies for candidate age.

- Added recruitment criteria business policies for candidate relationship status.

- Added recruitment criteria business policies for candidate height.

- Added recruitment criteria business policy for candidate mother/childless status.

- Refactored Policy class. Added own_requirement and active_requirement lists, which hold business policies that msut be owned/active to purchse.

- Policy.requirement can now be used for a generic non-policy based requirement. If a string is returned that string is displayed on the business policy UI. 

- Business policy UI now display what prerequisits you need before you can purchase a locked policy.

- Added ability to convince Jennifer to quit her job, and optionally hire her to your business.

- Updated many of Jennifer's work based events to check if she is actually at work.

- Added event to convince Lily to drop out of school and work for your business.

- Added event to convince Rebecca to come work for you.

- Added fuck date to girlfriend (and girlfriend-like) date list.

- Added a pregnancy related sex goal. Only generated if pregnancy content is turned on.

- Added unit tests for Job, Schedule, DailySchedule classes.

- Updated unit tests for Person class to cover new schedule functionality.

- Added a "salary_modifier" field to Person class. Modifies the amount of pay a character would demand from it's base theoretical amount.

- Updated Emily's event to properly trigger orgasms when appropriate.

Comments

Don't get fined ... this is easy to avoid. For profit make stuff that is not illegal. Everything that has Attn: 0 is fine. Like Primitive Serum (Tier 0) + Basic Medical Application or + Synthetic Hair Bleach + Caffeine Infusion in Tier 1 and so on Only sell Serums with Attn >1 if you are fullfill a contract and than again you can get 99 Attention without Problems if you don't buy the Organisation Policies that allow you to get more attention without getting in trouble like National Sales (+100 Potential Attention) Public Charity Work (-10 additonal Attention per day (so -20 per day) And in my opinion the strongest Publish Cover Story (-1 Attention on a Serum that has more than 0 Attention, so you cann sell Attn 1 Serums for 0 Attention) If you want to get to good economy try staying on Tier 0 for the time until you have 2 Supplier, 2 Produktion, 1 Marketmanager and 1 HR and the following policies Batch Size Improvement 1 and 2 (3 is debatable because it takes so much money) and Production Line Expansion 1, if you have this go for the attention lowering policies establish cover story ans public charity work so you can better fullfill the contracts without getting fined And if you still think the system is to hard, activate the console To activate console - edit the following file \Lab_Rats_2-v0.xx.0-pc\renpy\common\00console.rpy Find this line (around line 108) config.console = False and edit it to True. Than restart the game, load your save pres shift and o (not 0) and type mc.free_clarity=200000; mc.business.funds=500000 press enter und escape to return to the game, with that you should not worry about your economic and you can do what is more fun for you.

Victor

Started a new game, managed to earn a bit and bought a few crucial policies, had 1030$ left, got fined 1000$ by city representative, managed to trickle by for a few weeks with rubbish serum and managed to research something better. But I cannot produce the new serum because of the new tier system. Out of money and out of Clarity not sure if I should try to claw by a bit more or restart from scratch... Profit + fine system is *possible* to endure, but it's overly harsh IMO.

slashdot56

Put a girl in marketing, don't use auto-sell, and only sell when value is maxed. Make sure you fill every contract. It doesn't take much effort to create a serum to satisfy their requirements

Baarogue

is anyone else struggling to keep the business afloat in the newer versions? The profit seems to fall off quicker than i can get new traits researched, so after a few weeks i am in what feels like a spiral. Im not advocating for the price never changing, but its pretty brutal in the early game at least, i dont think i have even gotten past maybe month 2 or 3 max, either i just dont make enough or i get slammed with a fine i cant make back in 2 days Any advice would be appreciated

Bennet

I'm sorry, but an uncaught exception occurred. While running game code: File "game/script.rpy", line 262, in script call $ picked_option.call_action() File "game/general_actions/location_actions/business_actions.rpy", line 167, in script python: #Build our list of candidates with our proper recruitment requirements File "game/general_actions/location_actions/business_actions.rpy", line 171, in candidates.append(make_person(mc.business.generate_candidate_requirements())) File "game/helper_functions/random_generation_functions.rpy", line 11, in make_person return_character = create_random_person(**requirement_dict) File "game/helper_functions/random_generation_functions.rpy", line 48, in create_random_person age = renpy.random.randint(age_floor,age_ceiling) ValueError: empty range for randrange() (28,20, -8) -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 262, in script call $ picked_option.call_action() File "game/general_actions/location_actions/business_actions.rpy", line 167, in script python: #Build our list of candidates with our proper recruitment requirements File "renpy/ast.py", line 923, in execute renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store) File "renpy/python.py", line 2235, in py_exec_bytecode exec(bytecode, globals, locals) File "game/general_actions/location_actions/business_actions.rpy", line 171, in candidates.append(make_person(mc.business.generate_candidate_requirements())) File "game/helper_functions/random_generation_functions.rpy", line 11, in make_person return_character = create_random_person(**requirement_dict) File "game/helper_functions/random_generation_functions.rpy", line 48, in create_random_person age = renpy.random.randint(age_floor,age_ceiling) File "/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/random.py", line 244, in randint File "/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/random.py", line 220, in randrange ValueError: empty range for randrange() (28,20, -8) Windows-10-10.0.19041 Ren'Py 7.4.8.1895 Lab Rats 2 - Down to Business v0.49.1 Wed Feb 9 12:37:00 2022

marc0815

When you have SEX Skill Improvement Active in Business Policies, the follow exception happens. ``` I'm sorry, but an uncaught exception occurred. While running game code: File "game/script.rpy", line 262, in script call $ picked_option.call_action() File "game/general_actions/location_actions/business_actions.rpy", line 167, in script python: #Build our list of candidates with our proper recruitment requirements File "game/general_actions/location_actions/business_actions.rpy", line 171, in candidates.append(make_person(mc.business.generate_candidate_requirements())) File "game/helper_functions/random_generation_functions.rpy", line 11, in make_person return_character = create_random_person(**requirement_dict) File "game/helper_functions/random_generation_functions.rpy", line 199, in create_random_person generate_insta = generate_insta, generate_dikdok = generate_dikdok, generate_onlyfans = generate_onlyfans) File "game/major_game_classes/character_related/Person.rpy", line 214, in __init__ self.sex_skills["Anal"] = sex_list[3] #The girls skill at different positions that involve anal sex. IndexError: list index out of range -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 262, in script call $ picked_option.call_action() File "game/general_actions/location_actions/business_actions.rpy", line 167, in script python: #Build our list of candidates with our proper recruitment requirements File "renpy/ast.py", line 923, in execute renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store) File "renpy/python.py", line 2235, in py_exec_bytecode exec(bytecode, globals, locals) File "game/general_actions/location_actions/business_actions.rpy", line 171, in candidates.append(make_person(mc.business.generate_candidate_requirements())) File "game/helper_functions/random_generation_functions.rpy", line 11, in make_person return_character = create_random_person(**requirement_dict) File "game/helper_functions/random_generation_functions.rpy", line 199, in create_random_person generate_insta = generate_insta, generate_dikdok = generate_dikdok, generate_onlyfans = generate_onlyfans) File "game/major_game_classes/character_related/Person.rpy", line 214, in __init__ self.sex_skills["Anal"] = sex_list[3] #The girls skill at different positions that involve anal sex. File "renpy/python.py", line 992, in __getitem__ rv = list.__getitem__(self, index) IndexError: list index out of range Windows-10-10.0.22000 Ren'Py 7.4.8.1895 Lab Rats 2 - Down to Business v0.49.1 Wed Feb 9 03:27:29 2022 ```

Hansel Perse

[code] I'm sorry, but an uncaught exception occurred. While running game code: File "game/script.rpy", line 259, in script call call talk_person(picked_option) from _call_talk_person File "game/script.rpy", line 376, in script call $ _return.call_action(the_person) File "game/game_roles/role_stripper.rpy", line 11, in script if the_person.has_role(cousing_role): File "game/game_roles/role_stripper.rpy", line 11, in if the_person.has_role(cousing_role): NameError: name 'cousing_role' is not defined -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 259, in script call call talk_person(picked_option) from _call_talk_person File "game/script.rpy", line 376, in script call $ _return.call_action(the_person) File "game/game_roles/role_stripper.rpy", line 11, in script if the_person.has_role(cousing_role): File "renpy/ast.py", line 1893, in execute if renpy.python.py_eval(condition): File "renpy/python.py", line 2266, in py_eval return py_eval_bytecode(code, globals, locals) File "renpy/python.py", line 2259, in py_eval_bytecode return eval(bytecode, globals, locals) File "game/game_roles/role_stripper.rpy", line 11, in if the_person.has_role(cousing_role): NameError: name 'cousing_role' is not defined Windows-10-10.0.19041 Ren'Py 7.4.8.1895 Lab Rats 2 - Down to Business v0.49.1 Tue Feb 8 22:44:04 2022 [/code]

Dassath

<p style="color: #008600;">The whole batch of business policies that have been added is really impressive, there are really a lot of them and they are only for the good!</p>

VitAnyaNaked

Won't let me hire people [code] I'm sorry, but an uncaught exception occurred. While running game code: File "game/script.rpy", line 262, in script call $ picked_option.call_action() File "game/general_actions/location_actions/business_actions.rpy", line 167, in script python: #Build our list of candidates with our proper recruitment requirements File "game/general_actions/location_actions/business_actions.rpy", line 171, in candidates.append(make_person(mc.business.generate_candidate_requirements())) File "game/helper_functions/random_generation_functions.rpy", line 11, in make_person return_character = create_random_person(**requirement_dict) File "game/helper_functions/random_generation_functions.rpy", line 199, in create_random_person generate_insta = generate_insta, generate_dikdok = generate_dikdok, generate_onlyfans = generate_onlyfans) File "game/major_game_classes/character_related/Person.rpy", line 214, in __init__ self.sex_skills["Anal"] = sex_list[3] #The girls skill at different positions that involve anal sex. IndexError: list index out of range

And... cousin broken again here... game/game_roles/role_cousin.rpy line 1101'ish # $ the_person.apply_outfit(old_outfit, ignore_base = True) $ the_person.apply_outfit(the_person.planned_outfit) $ the_person.draw_person()

Sidrew

also in game/game_roles/role_stripper.rpy: line 85

Also.... in game/game_roles/role_stripper.py: line 48 ... missing a pretty key parameter in the function call... should be this: call strip_tease(the_person, for_pay = True, skip_intro = True, start_girl_state = strip_dancing)

Sidrew

Found and fixed, there will be a bugfix patch out tomorrow (should be save compatible, fingers crossed)

Vren

Found and fixed the issue, there will be a bug fix patch released tomorrow.

Vren

Found and fixed the issue, there will be a bugfix release tomorrow that will fix this up.

Vren

Found and fixed. I'll be putting out a bugfix update tomorrow that will include this fix (and should be save compatible, though that might change depending on other bugs).

Vren

And... another silly typo breaking the game: game/game_roles/role_stripper.rpy: line 11 cousin_role not cousing_role

Sidrew

ooo thanks loads!! do u know the correct traits to tweak for them? or is there someway to tinker the save file to turn them on?

DreadRex

``` I'm sorry, but an uncaught exception occurred. While running game code: File "game/script.rpy", line 262, in script call $ picked_option.call_action() File "game/general_actions/location_actions/business_actions.rpy", line 167, in script python: #Build our list of candidates with our proper recruitment requirements File "game/general_actions/location_actions/business_actions.rpy", line 171, in candidates.append(make_person(mc.business.generate_candidate_requirements())) File "game/helper_functions/random_generation_functions.rpy", line 11, in make_person return_character = create_random_person(**requirement_dict) File "game/helper_functions/random_generation_functions.rpy", line 48, in create_random_person age = renpy.random.randint(age_floor,age_ceiling) ValueError: empty range for randrange() (28,20, -8) -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 262, in script call $ picked_option.call_action() File "game/general_actions/location_actions/business_actions.rpy", line 167, in script python: #Build our list of candidates with our proper recruitment requirements File "renpy/ast.py", line 923, in execute renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store) File "renpy/python.py", line 2235, in py_exec_bytecode exec(bytecode, globals, locals) File "game/general_actions/location_actions/business_actions.rpy", line 171, in candidates.append(make_person(mc.business.generate_candidate_requirements())) File "game/helper_functions/random_generation_functions.rpy", line 11, in make_person return_character = create_random_person(**requirement_dict) File "game/helper_functions/random_generation_functions.rpy", line 48, in create_random_person age = renpy.random.randint(age_floor,age_ceiling) File "/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/random.py", line 244, in randint File "/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/random.py", line 220, in randrange ValueError: empty range for randrange() (28,20, -8) Windows-10-10.0.19041 Ren'Py 7.4.8.1895 Lab Rats 2 - Down to Business v0.49.1 Tue Feb 8 14:38:10 2022 ```

philip ash

The lap dance is broken also: While running game code: File "game/script.rpy", line 259, in script call call talk_person(picked_option) from _call_talk_person File "game/script.rpy", line 376, in script call $ _return.call_action(the_person) File "game/game_roles/role_stripper.rpy", line 80, in script "She waits patiently as you tuck the bills under the edge of her [the_item.display_name]." AttributeError: 'RevertableList' object has no attribute 'display_name' -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 259, in script call call talk_person(picked_option) from _call_talk_person File "game/script.rpy", line 376, in script call $ _return.call_action(the_person) File "game/game_roles/role_stripper.rpy", line 80, in script "She waits patiently as you tuck the bills under the edge of her [the_item.display_name]." File "renpy/ast.py", line 716, in execute renpy.exports.say(who, what, *args, **kwargs) File "renpy/exports.py", line 1417, in say who(what, *args, **kwargs) File "renpy/character.py", line 1210, in __call__ what = self.prefix_suffix("what", self.what_prefix, what, self.what_suffix) File "renpy/character.py", line 1129, in prefix_suffix return (sub(prefix) + sub(body) + sub(suffix)) File "renpy/character.py", line 1109, in sub return renpy.substitutions.substitute(s, scope=scope, force=force, translate=translate)[0] File "renpy/substitutions.py", line 270, in substitute s = formatter.vformat(s, (), kwargs) File "/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/string.py", line 563, in vformat File "/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/string.py", line 585, in _vformat File "/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/string.py", line 652, in get_field AttributeError: 'RevertableList' object has no attribute 'display_name' Windows-10-10.0.19041 Ren'Py 7.4.8.1895 Lab Rats 2 - Down to Business v0.49.1 Tue Feb 8 09:26:56 2022

NuTrix

I'm sorry, but an uncaught exception occurred. While running game code: File "game/script.rpy", line 262, in script call $ picked_option.call_action() File "game/general_actions/location_actions/business_actions.rpy", line 167, in script python: #Build our list of candidates with our proper recruitment requirements File "game/general_actions/location_actions/business_actions.rpy", line 171, in candidates.append(make_person(mc.business.generate_candidate_requirements())) File "game/helper_functions/random_generation_functions.rpy", line 11, in make_person return_character = create_random_person(**requirement_dict) File "game/helper_functions/random_generation_functions.rpy", line 48, in create_random_person age = renpy.random.randint(age_floor,age_ceiling) ValueError: empty range for randrange() (28,20, -8) -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 262, in script call $ picked_option.call_action() File "game/general_actions/location_actions/business_actions.rpy", line 167, in script python: #Build our list of candidates with our proper recruitment requirements File "renpy/ast.py", line 923, in execute renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store) File "renpy/python.py", line 2235, in py_exec_bytecode exec(bytecode, globals, locals) File "game/general_actions/location_actions/business_actions.rpy", line 171, in candidates.append(make_person(mc.business.generate_candidate_requirements())) File "game/helper_functions/random_generation_functions.rpy", line 11, in make_person return_character = create_random_person(**requirement_dict) File "game/helper_functions/random_generation_functions.rpy", line 48, in create_random_person age = renpy.random.randint(age_floor,age_ceiling) File "/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/random.py", line 244, in randint File "/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/random.py", line 220, in randrange ValueError: empty range for randrange() (28,20, -8) Windows-10-10.0.19041 Ren'Py 7.4.8.1895 Lab Rats 2 - Down to Business v0.49.1 Tue Feb 8 23:15:01 2022

Madara

When trying to hire someone: This happens when the Recruitment Sex Skill Improvement Policy is active. While running game code: File "game/script.rpy", line 262, in script call $ picked_option.call_action() File "game/general_actions/location_actions/business_actions.rpy", line 167, in script python: #Build our list of candidates with our proper recruitment requirements File "game/general_actions/location_actions/business_actions.rpy", line 171, in candidates.append(make_person(mc.business.generate_candidate_requirements())) File "game/helper_functions/random_generation_functions.rpy", line 11, in make_person return_character = create_random_person(**requirement_dict) File "game/helper_functions/random_generation_functions.rpy", line 199, in create_random_person generate_insta = generate_insta, generate_dikdok = generate_dikdok, generate_onlyfans = generate_onlyfans) File "game/major_game_classes/character_related/Person.rpy", line 214, in __init__ self.sex_skills["Anal"] = sex_list[3] #The girls skill at different positions that involve anal sex. IndexError: list index out of range -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 262, in script call $ picked_option.call_action() File "game/general_actions/location_actions/business_actions.rpy", line 167, in script python: #Build our list of candidates with our proper recruitment requirements File "renpy/ast.py", line 923, in execute renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store) File "renpy/python.py", line 2235, in py_exec_bytecode exec(bytecode, globals, locals) File "game/general_actions/location_actions/business_actions.rpy", line 171, in candidates.append(make_person(mc.business.generate_candidate_requirements())) File "game/helper_functions/random_generation_functions.rpy", line 11, in make_person return_character = create_random_person(**requirement_dict) File "game/helper_functions/random_generation_functions.rpy", line 199, in create_random_person generate_insta = generate_insta, generate_dikdok = generate_dikdok, generate_onlyfans = generate_onlyfans) File "game/major_game_classes/character_related/Person.rpy", line 214, in __init__ self.sex_skills["Anal"] = sex_list[3] #The girls skill at different positions that involve anal sex. File "renpy/python.py", line 992, in __getitem__ rv = list.__getitem__(self, index) IndexError: list index out of range Windows-10-10.0.19041 Ren'Py 7.4.8.1895 Lab Rats 2 - Down to Business v0.49.1 Tue Feb 8 08:05:24 2022

NuTrix

you can find the serums in the /game/major_game_classes/serum_related/_serum_traits.rpy at line 1341 if you wish to. in short you have Motherly Devotion, Sisterly Obedience, Cousinly Hate, Auntly Potential, Meritocratic Attraction, Lovers Attraction, Distilled Disgust, Pleasurable Obedience, Rapid Corruption, Natural Talent, Human Breeding Hormones, Trance Inducer. Walktrough &lt;- nicht das ich wüßte. Yes every serum works also on named characters.

Victor

Is there any list of All the serums u can get from the observation research? and walkthrough of events for each named/main character? can we also customise the traits of them?

DreadRex


More Creators