Really? Thats half the fun the game has to offer.hi can i suggest taht you add an option to just set all opinions to love and discovered ?
Really? Thats half the fun the game has to offer.hi can i suggest taht you add an option to just set all opinions to love and discovered ?
yup. got the same problem. very unfortunate.Got the same issue with the same exception whenever whenever I click "Appoint a slave" too. Think this release turned the dungeon into a $10,000 red leathery paperweight.
Quick question just to make sure: Did you start a new game after downloading/installing the new release of the mod or did you load a game save created on an earlier version of the mod?yup. got the same problem. very unfortunate.![]()
Quick question just to make sure: Did you start a new game after downloading/installing the new release of the mod or did you load a game save created on an earlier version of the mod?
I didnt unlock the dungoen myself yet (since I am not a big fan of the feature itself), so I cant test it at the moment.
new game, new folder. everything is new.Quick question just to make sure: Did you start a new game after downloading/installing the new release of the mod or did you load a game save created on an earlier version of the mod?
I didnt unlock the dungoen myself yet (since I am not a big fan of the feature itself), so I cant test it at the moment.
Okay. Will have to unlock the dungoen myself then and see if I get the same error as you guys. Tried looking into the game files but couldnt find a posible source for the error yet. But I will keep looking into it, since the modders wont be working on the mod for some time since they got to take care of RL stuff.new game, new folder. everything is new.
Okay. Will have to unlock the dungoen myself then and see if I get the same error as you guys. Tried looking into the game files but couldnt find a posible source for the error yet. But I will keep looking into it, since the modders wont be working on the mod for some time since they got to take care of RL stuff.
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/script.rpy", line 374, in script call
$ picked_option.call_action()
File "game/script.rpy", line 374, in script call
$ picked_option.call_action()
File "game/Mods/Room/actions/dungeon_room_actions.rpy", line 22, in script
call screen enhanced_main_choice_display(build_menu_items([get_sorted_people_list(mc.location.people, "Turn into slave", ["Back"])]))
File "renpy/common/000statements.rpy", line 569, in execute_call_screen
store._return = renpy.call_screen(name, *args, **kwargs)
File "game/Mods/Screens/enhanced_business_ui.rpy", line 2, in execute
screen business_ui(): #Shows some information about your business.
File "game/Mods/Screens/enhanced_business_ui.rpy", line 2, in execute
screen business_ui(): #Shows some information about your business.
File "game/Mods/Screens/enhanced_business_ui.rpy", line 5, in execute
frame:
File "game/Mods/Screens/enhanced_business_ui.rpy", line 10, in execute
vbox:
File "game/Mods/Screens/enhanced_business_ui.rpy", line 16, in execute
textbutton "Employee Count: " + str(mc.business.get_employee_count()) + "/" + str(mc.business.max_employee_count):
File "game/Mods/Screens/enhanced_business_ui.rpy", line 16, in <module>
textbutton "Employee Count: " + str(mc.business.get_employee_count()) + "/" + str(mc.business.max_employee_count):
File "game/major_game_classes/business_related/Business.rpy", line 839, in get_employee_count
return len(self.get_employee_list())
File "game/Mods/Core/Mechanics/Business_Extensions/business_class_extensions.rpy", line 368, in business_get_employee_list
return [x for x in self.research_team + self.production_team + self.supply_team + self.market_team + self.hr_team if x.is_available]
File "game/bugfix_additions/mapped_list.rpy", line 64, in __iter__
found = next((x for x in item_list if x.identifier == item), None)
File "game/bugfix_additions/mapped_list.rpy", line 64, in <genexpr>
found = next((x for x in item_list if x.identifier == item), None)
AttributeError: 'unicode' object has no attribute 'identifier'
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "game/script.rpy", line 374, in script call
$ picked_option.call_action()
File "game/script.rpy", line 374, in script call
$ picked_option.call_action()
File "game/Mods/Room/actions/dungeon_room_actions.rpy", line 22, in script
call screen enhanced_main_choice_display(build_menu_items([get_sorted_people_list(mc.location.people, "Turn into slave", ["Back"])]))
File "renpy/ast.py", line 2010, in execute
self.call("execute")
File "renpy/ast.py", line 1998, in call
return renpy.statements.call(method, parsed, *args, **kwargs)
File "renpy/statements.py", line 278, in call
return method(parsed, *args, **kwargs)
File "renpy/common/000statements.rpy", line 569, in execute_call_screen
store._return = renpy.call_screen(name, *args, **kwargs)
File "renpy/exports.py", line 3132, in call_screen
rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward)
File "renpy/ui.py", line 298, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File "renpy/display/core.py", line 3276, in interact
repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, **kwargs)
File "renpy/display/core.py", line 3694, in interact_core
root_widget.visit_all(lambda i : i.per_interact())
File "renpy/display/core.py", line 568, in visit_all
d.visit_all(callback, seen)
File "renpy/display/core.py", line 568, in visit_all
d.visit_all(callback, seen)
File "renpy/display/core.py", line 568, in visit_all
d.visit_all(callback, seen)
File "renpy/display/screen.py", line 432, in visit_all
callback(self)
File "renpy/display/core.py", line 3694, in <lambda>
root_widget.visit_all(lambda i : i.per_interact())
File "renpy/display/screen.py", line 443, in per_interact
self.update()
File "renpy/display/screen.py", line 631, in update
self.screen.function(**self.scope)
File "game/Mods/Screens/enhanced_business_ui.rpy", line 2, in execute
screen business_ui(): #Shows some information about your business.
File "game/Mods/Screens/enhanced_business_ui.rpy", line 2, in execute
screen business_ui(): #Shows some information about your business.
File "game/Mods/Screens/enhanced_business_ui.rpy", line 5, in execute
frame:
File "game/Mods/Screens/enhanced_business_ui.rpy", line 10, in execute
vbox:
File "game/Mods/Screens/enhanced_business_ui.rpy", line 16, in execute
textbutton "Employee Count: " + str(mc.business.get_employee_count()) + "/" + str(mc.business.max_employee_count):
File "game/Mods/Screens/enhanced_business_ui.rpy", line 16, in <module>
textbutton "Employee Count: " + str(mc.business.get_employee_count()) + "/" + str(mc.business.max_employee_count):
File "game/major_game_classes/business_related/Business.rpy", line 839, in get_employee_count
return len(self.get_employee_list())
File "game/Mods/Core/Mechanics/Business_Extensions/business_class_extensions.rpy", line 368, in business_get_employee_list
return [x for x in self.research_team + self.production_team + self.supply_team + self.market_team + self.hr_team if x.is_available]
File "game/bugfix_additions/mapped_list.rpy", line 64, in __iter__
found = next((x for x in item_list if x.identifier == item), None)
File "game/bugfix_additions/mapped_list.rpy", line 64, in <genexpr>
found = next((x for x in item_list if x.identifier == item), None)
AttributeError: 'unicode' object has no attribute 'identifier'
Windows-10-10.0.19041
Ren'Py 7.4.8.1895
Lab Rats 2 - Down to Business v0.49.2.1
Mon Mar 14 05:56:48 2022
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/script.rpy", line 374, in script call
$ picked_option.call_action()
File "game/script.rpy", line 374, in script call
$ picked_option.call_action()
File "game/Mods/Room/actions/dungeon_room_actions.rpy", line 25, in script
if person_choice == "Back":
File "game/Mods/Room/actions/dungeon_room_actions.rpy", line 27, in <module>
elif person_choice.personality is alpha_personality:
AttributeError: 'Action' object has no attribute 'personality'
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "game/script.rpy", line 374, in script call
$ picked_option.call_action()
File "game/script.rpy", line 374, in script call
$ picked_option.call_action()
File "game/Mods/Room/actions/dungeon_room_actions.rpy", line 25, in script
if person_choice == "Back":
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/Mods/Room/actions/dungeon_room_actions.rpy", line 27, in <module>
elif person_choice.personality is alpha_personality:
AttributeError: 'Action' object has no attribute 'personality'
Windows-10-10.0.19041
Ren'Py 7.4.8.1895
Lab Rats 2 - Down to Business v0.49.2.1
Mon Mar 14 05:57:18 2022
Ah, the second crash report is a very good lead. Hopefully this will let me track it down nowCode:I'm sorry, but an uncaught exception occurred. While running game code: File "game/script.rpy", line 374, in script call $ picked_option.call_action() File "game/script.rpy", line 374, in script call $ picked_option.call_action() File "game/Mods/Room/actions/dungeon_room_actions.rpy", line 22, in script call screen enhanced_main_choice_display(build_menu_items([get_sorted_people_list(mc.location.people, "Turn into slave", ["Back"])])) File "renpy/common/000statements.rpy", line 569, in execute_call_screen store._return = renpy.call_screen(name, *args, **kwargs) File "game/Mods/Screens/enhanced_business_ui.rpy", line 2, in execute screen business_ui(): #Shows some information about your business. File "game/Mods/Screens/enhanced_business_ui.rpy", line 2, in execute screen business_ui(): #Shows some information about your business. File "game/Mods/Screens/enhanced_business_ui.rpy", line 5, in execute frame: File "game/Mods/Screens/enhanced_business_ui.rpy", line 10, in execute vbox: File "game/Mods/Screens/enhanced_business_ui.rpy", line 16, in execute textbutton "Employee Count: " + str(mc.business.get_employee_count()) + "/" + str(mc.business.max_employee_count): File "game/Mods/Screens/enhanced_business_ui.rpy", line 16, in <module> textbutton "Employee Count: " + str(mc.business.get_employee_count()) + "/" + str(mc.business.max_employee_count): File "game/major_game_classes/business_related/Business.rpy", line 839, in get_employee_count return len(self.get_employee_list()) File "game/Mods/Core/Mechanics/Business_Extensions/business_class_extensions.rpy", line 368, in business_get_employee_list return [x for x in self.research_team + self.production_team + self.supply_team + self.market_team + self.hr_team if x.is_available] File "game/bugfix_additions/mapped_list.rpy", line 64, in __iter__ found = next((x for x in item_list if x.identifier == item), None) File "game/bugfix_additions/mapped_list.rpy", line 64, in <genexpr> found = next((x for x in item_list if x.identifier == item), None) AttributeError: 'unicode' object has no attribute 'identifier' -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 374, in script call $ picked_option.call_action() File "game/script.rpy", line 374, in script call $ picked_option.call_action() File "game/Mods/Room/actions/dungeon_room_actions.rpy", line 22, in script call screen enhanced_main_choice_display(build_menu_items([get_sorted_people_list(mc.location.people, "Turn into slave", ["Back"])])) File "renpy/ast.py", line 2010, in execute self.call("execute") File "renpy/ast.py", line 1998, in call return renpy.statements.call(method, parsed, *args, **kwargs) File "renpy/statements.py", line 278, in call return method(parsed, *args, **kwargs) File "renpy/common/000statements.rpy", line 569, in execute_call_screen store._return = renpy.call_screen(name, *args, **kwargs) File "renpy/exports.py", line 3132, in call_screen rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward) File "renpy/ui.py", line 298, in interact rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs) File "renpy/display/core.py", line 3276, in interact repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, **kwargs) File "renpy/display/core.py", line 3694, in interact_core root_widget.visit_all(lambda i : i.per_interact()) File "renpy/display/core.py", line 568, in visit_all d.visit_all(callback, seen) File "renpy/display/core.py", line 568, in visit_all d.visit_all(callback, seen) File "renpy/display/core.py", line 568, in visit_all d.visit_all(callback, seen) File "renpy/display/screen.py", line 432, in visit_all callback(self) File "renpy/display/core.py", line 3694, in <lambda> root_widget.visit_all(lambda i : i.per_interact()) File "renpy/display/screen.py", line 443, in per_interact self.update() File "renpy/display/screen.py", line 631, in update self.screen.function(**self.scope) File "game/Mods/Screens/enhanced_business_ui.rpy", line 2, in execute screen business_ui(): #Shows some information about your business. File "game/Mods/Screens/enhanced_business_ui.rpy", line 2, in execute screen business_ui(): #Shows some information about your business. File "game/Mods/Screens/enhanced_business_ui.rpy", line 5, in execute frame: File "game/Mods/Screens/enhanced_business_ui.rpy", line 10, in execute vbox: File "game/Mods/Screens/enhanced_business_ui.rpy", line 16, in execute textbutton "Employee Count: " + str(mc.business.get_employee_count()) + "/" + str(mc.business.max_employee_count): File "game/Mods/Screens/enhanced_business_ui.rpy", line 16, in <module> textbutton "Employee Count: " + str(mc.business.get_employee_count()) + "/" + str(mc.business.max_employee_count): File "game/major_game_classes/business_related/Business.rpy", line 839, in get_employee_count return len(self.get_employee_list()) File "game/Mods/Core/Mechanics/Business_Extensions/business_class_extensions.rpy", line 368, in business_get_employee_list return [x for x in self.research_team + self.production_team + self.supply_team + self.market_team + self.hr_team if x.is_available] File "game/bugfix_additions/mapped_list.rpy", line 64, in __iter__ found = next((x for x in item_list if x.identifier == item), None) File "game/bugfix_additions/mapped_list.rpy", line 64, in <genexpr> found = next((x for x in item_list if x.identifier == item), None) AttributeError: 'unicode' object has no attribute 'identifier' Windows-10-10.0.19041 Ren'Py 7.4.8.1895 Lab Rats 2 - Down to Business v0.49.2.1 Mon Mar 14 05:56:48 2022
Code:I'm sorry, but an uncaught exception occurred. While running game code: File "game/script.rpy", line 374, in script call $ picked_option.call_action() File "game/script.rpy", line 374, in script call $ picked_option.call_action() File "game/Mods/Room/actions/dungeon_room_actions.rpy", line 25, in script if person_choice == "Back": File "game/Mods/Room/actions/dungeon_room_actions.rpy", line 27, in <module> elif person_choice.personality is alpha_personality: AttributeError: 'Action' object has no attribute 'personality' -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 374, in script call $ picked_option.call_action() File "game/script.rpy", line 374, in script call $ picked_option.call_action() File "game/Mods/Room/actions/dungeon_room_actions.rpy", line 25, in script if person_choice == "Back": 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/Mods/Room/actions/dungeon_room_actions.rpy", line 27, in <module> elif person_choice.personality is alpha_personality: AttributeError: 'Action' object has no attribute 'personality' Windows-10-10.0.19041 Ren'Py 7.4.8.1895 Lab Rats 2 - Down to Business v0.49.2.1 Mon Mar 14 05:57:18 2022
have your fun finding it![]()
yeah i simply pressed ignore on the crash report and found out that there is a second one right after that. if i keep pressing on ignore it will just loop those two crash reports.Ah, the second crash report is a very good lead. Hopefully this will let me track it down now
Different uniform colors is caused by the uniform policy "Relaxed Uniform Color Policy"What is this about city and pornstar?
I don't even know how far barista and gym girl go. Don't know how to get mom fucked by her boss once the event passes. Don't know what to do with the strip club once it is unlocked. Haven't started on coco or the salon woman.
What do I do with the coop students working on the weekend? I can't even dose them.
No idea why everyone wears different color uniforms or how to stop that...
don't think pornstar ever got fully implementedWhat is this about city and pornstar?
I don't even know how far barista and gym girl go. Don't know how to get mom fucked by her boss once the event passes. Don't know what to do with the strip club once it is unlocked. Haven't started on coco or the salon woman.
What do I do with the coop students working on the weekend? I can't even dose them.
No idea why everyone wears different color uniforms or how to stop that...
I was finally able to unlock the dungeon and replicate the error. Took me some time to finally locate the cause for the crash (by comparing the files from last mod version to the actual one) and some trial and error, I found a fix for the crash. Not sure if it will affect other aspects of the game and cause an error elsewhere, but so far everything seems to be working as intended.yeah i simply pressed ignore on the crash report and found out that there is a second one right after that. if i keep pressing on ignore it will just loop those two crash reports.
# get a sorted list of people to use with main_choice_display
def get_sorted_people_list(list_of_people, title, back_extension = None, reverse = False):
people_list.sort(key = sort_display_list_extra, reverse = reverse)
people_list.insert(0, title)
if not back_extension is None:
people_list.extend(["Back"])
return people_list
# get a sorted list of people to use with main_choice_display
def get_sorted_people_list(list_of_people, title, back_extension = None, reverse = False):
people_list = []
people_list.extend(list_of_people)
people_list.sort(key = sort_display_list_extra, reverse = reverse)
people_list.insert(0, title)
if not back_extension is None:
people_list.extend(["Back"])
return people_list
Neat solution! Though I'm not comfortable redefining an array in a core function like get_sorted_people_list. As you say, might break something else.I was finally able to unlock the dungeon and replicate the error. Took me some time to finally locate the cause for the crash (by comparing the files from last mod version to the actual one) and some trial and error, I found a fix for the crash. Not sure if it will affect other aspects of the game and cause an error elsewhere, but so far everything seems to be working as intended.
The problem is found in /game/mods/core/mechanics/list_functions.rpy line 70 and following:
needs to be changed intoCode:# get a sorted list of people to use with main_choice_display def get_sorted_people_list(list_of_people, title, back_extension = None, reverse = False): people_list.sort(key = sort_display_list_extra, reverse = reverse) people_list.insert(0, title) if not back_extension is None: people_list.extend(["Back"]) return people_list
This solved the crashing issue for me, but as stated above, it might or might not cause problems somewhere else, so use it at own riskCode:# get a sorted list of people to use with main_choice_display def get_sorted_people_list(list_of_people, title, back_extension = None, reverse = False): people_list = [] people_list.extend(list_of_people) people_list.sort(key = sort_display_list_extra, reverse = reverse) people_list.insert(0, title) if not back_extension is None: people_list.extend(["Back"]) return people_list![]()
call screen enhanced_main_choice_display(build_menu_items([get_sorted_people_list(known_people_at_location(mc.location), "Turn into slave", ["Back"])]))
Okay, your solution sounds safer than mine... but whats the deal with your provided scripts.rpa? It doesnt seem to have anything to do with the solution and also isnt part of the original gamefiles or the ones provided by the bugfix/mod. So I will not touch it...Neat solution! Though I'm not comfortable redefining an array in a core function like get_sorted_people_list. As you say, might break something else.
I did find the immediate problem though: mc.location.people appears to call an action function, rather than the array it's implied call. If it's replaced with known_people_at_location(mc.location), which appears to be the right way to call that array, that also fixes the problem and won't chance breaking anything else.
So replace enhanced_main_choice_display in dungeon_room_appoint_slave_label (Mods/Room/actions/dungeon_room_actions.rpy) with:
Or for anybody who doesn't want to dirty their hands with code, download the following scripts.rpa and replace the file in your Lab Rats 2/game/ directory:Code:enhanced_main_choice_display(build_menu_items([get_sorted_people_list(known_people_at_location(mc.location), "Turn into slave", ["Back"])]))You must be registered to see the links
It just repackages the fixed dungeon_room_actions.rpyc into the modded scripts.rpa for anybody who downloaded the fully packaged modded game. I forgot it's also distributed uncompressed, so if anybody has the unpackaged version you can download this dungeon_room_actions.rpy and replace the one in your "Lab Rats 2/Mods/Room/actions/" directory with it:Okay, your solution sounds safer than mine... but whats the deal with your provided scripts.rpa? It doesnt seem to have anything to do with the solution and also isnt part of the original gamefiles or the ones provided by the bugfix/mod. So I will not touch it...
I did look through some other modfiles and found out that the function I fixed is used in other places as well. Without my change, it results in the same crash. My fix works for those other instances as well, so it seems I was on the right track and my fix was the intended fix in the first place. But your variant works as well, but only for the dungeonIt just repackages the fixed dungeon_room_actions.rpyc into the modded scripts.rpa for anybody who downloaded the fully packaged modded game. I forgot it's also distributed uncompressed, so if anybody has the unpackaged version you can download this dungeon_room_actions.rpy and replace the one in your "Lab Rats 2/Mods/Room/actions/" directory with it:You must be registered to see the links
Good catch. Thinking about it all the get_sorted_people_list function change should do is refresh the array every time it's called, which seems to clear out the bad action object that somehow is getting thrown in that array. But I don't know enough about the codebase to know whether that action object has a purpose or whether clearing the array on function call might interfere with sequencing in some arguments. Ideally the array shouldn't have mixed types in the first place.I did look through some other modfiles and found out that the function I fixed is used in other places as well. Without my change, it results in the same crash. My fix works for those other instances as well, so it seems I was on the right track and my fix was the intended fix in the first place. But your variant works as well, but only for the dungeon
I just noticed that Tristim has been working on the mod on his beta branch and fixed the list_function.rpy issue 3 days ago... well, a lot of time wasted on this issue... should have checked the beta branch first, just didnt expected him to be working on it so soonGood catch. Thinking about it all the get_sorted_people_list function change should do is refresh the array every time it's called, which seems to clear out the bad action object that somehow is getting thrown in that array. But I don't know enough about the codebase to know whether that action object has a purpose or whether clearing the array on function call might interfere with sequencing in some arguments. Ideally the array shouldn't have mixed types in the first place.
Your's might be the better solution then for the other cases you've found.