Mod Ren'Py Universal Gallery Unlocker [2024-01-24] [ZLZK]

5.00 star(s) 2 Votes

Twistty

The Happy Beaver
Donor
Respected User
Former Staff
Sep 9, 2016
4,389
39,267
how do you use it for a .rar engine? Because I tried to use it on a game called Viv: The Game by putting the whole thing in the game folder and it didn't work.
.rar is like .7z or .zip
You need to unzip the contents, then add them to the game folder.
 

ZLZK

Member
Modder
Jul 2, 2017
293
770
it just happen with UGU , teste with and without it
Error is from other mod not the game.
But as I have mentioned lieing about something being in list may crash some games.
There you have one.

If you want to disable this feature,
remove/comment this code:
Python:
                if isinstance(o, (set, list, dict)):
                    f = lambda *args: True
                    o = type(o.__class__.__name__, (o.__class__,), dict(__contains__=f))(o)
 
  • Like
Reactions: Flojo23

cheatshitboy

New Member
Aug 13, 2020
9
1
Just want to say great work on this, it works on the vast majority of games ive tried it on. But it only half works on changeling tale, any chance theirs a way to have it fully unlock the games gallery?
 

RedFox374

Newbie
Jun 25, 2019
70
52
ZLZK hey i tryed useing you unlocker on https://f95zone.to/threads/santa-lucia-build-41-gallery-stormsinger-studios.44668/ and it some what worked some what did not you see it unlocked the Gallery but all so force enables some of the filters in preferences in the game and it will not let you disable them the filter in quston are show in the atached pic. was wornding if you cud have a look at it and see what ya thank all so i am useing the attached .v of your mod
 

ZLZK

Member
Modder
Jul 2, 2017
293
770
ZLZK hey i tryed useing you unlocker on https://f95zone.to/threads/santa-lucia-build-41-gallery-stormsinger-studios.44668/ and it some what worked some what did not you see it unlocked the Gallery but all so force enables some of the filters in preferences in the game and it will not let you disable them the filter in quston are show in the atached pic. was wornding if you cud have a look at it and see what ya thank all so i am useing the attached .v of your mod
It's how this unlocker works, and if you remove this feature, it might not unlock scenes.
Python:
                # Make all missing persistent variables to be True.
                @Hook(renpy.game.Persistent, '__getattr__')
                def hijack(func, self, name):
                    if name.startswith("_"):
                        return func(self, name)
                    else:
                        return True

                # Make all persistent variables to be True.
                @Hook(renpy.game.Persistent, '__getattribute__')
                def hijack(func, self, name):
                    if name.startswith("_"):
                        return func(self, name)
                    else:
                        return mod._swap(func(self, name))
Remove this or if you want to get it to work with that game,
you need to filter out filter names in those functions,
which is too bothersome to do and would apply to that game only.
 

QwertyUser1234abc

New Member
Jan 6, 2019
4
1
I have no clue what I'm looking at, but I figured that copying the error would at least help. There are some scenes that will sometimes start, but crash before getting to the end, and some entire galleries in the menu that crash upon trying to open. I'm on windows and the game is Fetish Locator Week 3. Let me know if you need more info, and thanks in advance for any advice.







Code:
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/code/screens/extended/screens_fl.rpy", line 27, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 27, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 31, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 33, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 33, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 40, in execute
  File "game/code/screens/screens.rpy", line 497, in execute
  File "game/code/screens/screens.rpy", line 497, in execute
  File "game/code/screens/screens.rpy", line 538, in execute
  File "game/code/screens/screens.rpy", line 541, in execute
  File "game/code/screens/screens.rpy", line 546, in execute
  File "game/code/screens/screens.rpy", line 550, in execute
  File "game/code/screens/screens.rpy", line 581, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 40, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 42, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 57, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 63, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 64, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 65, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 65, in <module>
  File "game/code/functions.rpy", line 282, in is_gallery_slot_unlocked
KeyError: u'd21s99n01'

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "renpy/common/_layout/screen_main_menu.rpym", line 28, in script
    python hide:
  File "renpy/ast.py", line 1131, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "renpy/python.py", line 1061, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "renpy/common/_layout/screen_main_menu.rpym", line 28, in <module>
    python hide:
  File "renpy/common/_layout/screen_main_menu.rpym", line 35, in _execute_python_hide
    ui.interact()
  File "renpy/ui.py", line 299, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "renpy/display/core.py", line 3377, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, pause_modal=pause_modal, **kwargs) # type: ignore
  File "renpy/display/core.py", line 3810, in interact_core
    root_widget.visit_all(lambda i : i.per_interact())
  File "renpy/display/core.py", line 582, in visit_all
    d.visit_all(callback, seen)
  File "renpy/display/core.py", line 582, in visit_all
    d.visit_all(callback, seen)
  File "renpy/display/core.py", line 582, in visit_all
    d.visit_all(callback, seen)
  File "renpy/display/core.py", line 582, in visit_all
    d.visit_all(callback, seen)
  File "renpy/display/screen.py", line 451, in visit_all
    callback(self)
  File "renpy/display/core.py", line 3810, in <lambda>
    root_widget.visit_all(lambda i : i.per_interact())
  File "renpy/display/screen.py", line 462, in per_interact
    self.update()
  File "renpy/display/screen.py", line 653, in update
    self.screen.function(**self.scope)
  File "game/code/screens/extended/screens_fl.rpy", line 27, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 27, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 31, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 33, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 33, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 40, in execute
  File "game/code/screens/screens.rpy", line 497, in execute
  File "game/code/screens/screens.rpy", line 497, in execute
  File "game/code/screens/screens.rpy", line 538, in execute
  File "game/code/screens/screens.rpy", line 541, in execute
  File "game/code/screens/screens.rpy", line 546, in execute
  File "game/code/screens/screens.rpy", line 550, in execute
  File "game/code/screens/screens.rpy", line 581, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 40, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 42, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 57, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 63, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 64, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 65, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 65, in <module>
  File "game/code/functions.rpy", line 282, in is_gallery_slot_unlocked
KeyError: u'd21s99n01'

Windows-10-10.0.19041 AMD64
Ren'Py 7.5.3.22090809
Fetish Locator Week 3 3.0.15
Mon Jun  5 18:05:47 2023
 

ZLZK

Member
Modder
Jul 2, 2017
293
770
I have no clue what I'm looking at, but I figured that copying the error would at least help. There are some scenes that will sometimes start, but crash before getting to the end, and some entire galleries in the menu that crash upon trying to open. I'm on windows and the game is Fetish Locator Week 3. Let me know if you need more info, and thanks in advance for any advice.







Code:
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/code/screens/extended/screens_fl.rpy", line 27, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 27, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 31, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 33, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 33, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 40, in execute
  File "game/code/screens/screens.rpy", line 497, in execute
  File "game/code/screens/screens.rpy", line 497, in execute
  File "game/code/screens/screens.rpy", line 538, in execute
  File "game/code/screens/screens.rpy", line 541, in execute
  File "game/code/screens/screens.rpy", line 546, in execute
  File "game/code/screens/screens.rpy", line 550, in execute
  File "game/code/screens/screens.rpy", line 581, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 40, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 42, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 57, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 63, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 64, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 65, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 65, in <module>
  File "game/code/functions.rpy", line 282, in is_gallery_slot_unlocked
KeyError: u'd21s99n01'

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "renpy/common/_layout/screen_main_menu.rpym", line 28, in script
    python hide:
  File "renpy/ast.py", line 1131, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "renpy/python.py", line 1061, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "renpy/common/_layout/screen_main_menu.rpym", line 28, in <module>
    python hide:
  File "renpy/common/_layout/screen_main_menu.rpym", line 35, in _execute_python_hide
    ui.interact()
  File "renpy/ui.py", line 299, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "renpy/display/core.py", line 3377, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, pause_modal=pause_modal, **kwargs) # type: ignore
  File "renpy/display/core.py", line 3810, in interact_core
    root_widget.visit_all(lambda i : i.per_interact())
  File "renpy/display/core.py", line 582, in visit_all
    d.visit_all(callback, seen)
  File "renpy/display/core.py", line 582, in visit_all
    d.visit_all(callback, seen)
  File "renpy/display/core.py", line 582, in visit_all
    d.visit_all(callback, seen)
  File "renpy/display/core.py", line 582, in visit_all
    d.visit_all(callback, seen)
  File "renpy/display/screen.py", line 451, in visit_all
    callback(self)
  File "renpy/display/core.py", line 3810, in <lambda>
    root_widget.visit_all(lambda i : i.per_interact())
  File "renpy/display/screen.py", line 462, in per_interact
    self.update()
  File "renpy/display/screen.py", line 653, in update
    self.screen.function(**self.scope)
  File "game/code/screens/extended/screens_fl.rpy", line 27, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 27, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 31, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 33, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 33, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 40, in execute
  File "game/code/screens/screens.rpy", line 497, in execute
  File "game/code/screens/screens.rpy", line 497, in execute
  File "game/code/screens/screens.rpy", line 538, in execute
  File "game/code/screens/screens.rpy", line 541, in execute
  File "game/code/screens/screens.rpy", line 546, in execute
  File "game/code/screens/screens.rpy", line 550, in execute
  File "game/code/screens/screens.rpy", line 581, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 40, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 42, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 57, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 63, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 64, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 65, in execute
  File "game/code/screens/extended/screens_fl.rpy", line 65, in <module>
  File "game/code/functions.rpy", line 282, in is_gallery_slot_unlocked
KeyError: u'd21s99n01'

Windows-10-10.0.19041 AMD64
Ren'Py 7.5.3.22090809
Fetish Locator Week 3 3.0.15
Mon Jun  5 18:05:47 2023
Mentioned above.

Error is from other mod not the game.
But as I have mentioned lieing about something being in list may crash some games.
There you have one.

If you want to disable this feature,
remove/comment this code:
Python:
                if isinstance(o, (set, list, dict)):
                    f = lambda *args: True
                    o = type(o.__class__.__name__, (o.__class__,), dict(__contains__=f))(o)
 

ZLZK

Member
Modder
Jul 2, 2017
293
770
is there a way to change name with UGU ?
If it's persistent variable:
Python:
                # Make all missing persistent variables to be True.
                @Hook(renpy.game.Persistent, '__getattr__')
                def hijack(func, self, name):
                    if name.startswith("_"):
                        return func(self, name)
                    elif name == "name_of_name_variable":
                        return "name"
                    else:
                        return True

                # Make all persistent variables to be True.
                @Hook(renpy.game.Persistent, '__getattribute__')
                def hijack(func, self, name):
                    if name.startswith("_"):
                        return func(self, name)
                    elif name == "name_of_name_variable":
                        return "name"
                    else:
                        return mod._swap(func(self, name))
Either way you need to know variable name.
 
  • Like
Reactions: Flojo23

QwertyUser1234abc

New Member
Jan 6, 2019
4
1
Mentioned above.
I took your advice and removed that section. The error still pops up, but clicking "Ignore" once the error popped up in week 2 makes the scene proceed. I still got an error in week 3, but once I click "Ignore", it starts a new game instead of proceeding with the scene. With that being said, I'm not actually complaining, I just wanted to say thanks for helping out strangers that ask the exact same question a hundred times in a row. Lol

Is there a way to send a private chat on this website? I'd like to send you a Visa gift card as a thanks for the help.
 

ZLZK

Member
Modder
Jul 2, 2017
293
770
I took your advice and removed that section. The error still pops up, but clicking "Ignore" once the error popped up in week 2 makes the scene proceed. I still got an error in week 3, but once I click "Ignore", it starts a new game instead of proceeding with the scene. With that being said, I'm not actually complaining, I just wanted to say thanks for helping out strangers that ask the exact same question a hundred times in a row. Lol
Seems like scenes need to be added to some list.
So this unlocker won't work it that game.
File "game/code/functions.rpy", line 282, in is_gallery_slot_unlocked
KeyError: u'd21s99n01'
But I bet that if you change this function to return True it would work.

Is there a way to send a private chat on this website? I'd like to send you a Visa gift card as a thanks for the help.
I don't need anything in return.
 
5.00 star(s) 2 Votes