Mod Ren'Py Universal Ren'Py Mod / URM [2.2.1] (mod any Ren'Py game yourself)

5.00 star(s) 33 Votes

0x52

Ren'Py Magician
Modder
Donor
Game Developer
May 23, 2019
1,595
6,052
URM is just getting better and better with each update, thanks.

Feature request: How about have an option to show the code for each choice in a notification slider, or an overlay on the screen, without having to click through the screen popups, such as: having to click the "Choices Detected" icon, and then click "code" for each choice.

This would make URM act like a customized walkthrough mod where it shows the score along with each choice without any extra clicking or need for additional user interaction.

For example, let's say the game has the choices:

"Check her out"

"Keep walking"

There could be an option in URM in the Notifications setting for "Code Notification", that is similar to the "Code Detected" popout that pops out of the side of the screen whenever a choice has code associated with it, with the code shown, that looks like:

Choices Code Detected
# Code
1 jenny_love +=1
2 jenny_love -=1

Then the user could just glance at the side of the screen for a moment, and then click the choice on the game that they want. This would eliminate the need to click through the URM popups and code buttons for every choice to see the code.

Another feature would be to make the notification popout have a transparent background, but this is more an asthetic choice.

What do you think? I think this would be incredibly useful, and make using your mod even more of a seamless experience.
Yes. I've been thinking about this. But there are some things to consider:
  • What if the code for a choice/path contains multiple lines?
  • I would like to also show the condition for a choice/path
  • I would like the possibility to only show the active choice/path, but I'm not sure how to show the condition for a possible "else" choice/path. Because that would be if non of the previous conditions matched

The mod doesn't work on college kings
See this:
Reporting an issue
When reporting an issue with URM, please include the information below:
  • Are you using the latest version of URM?
  • Which game has the issue (preferable a link to the game's thread)
  • If it's a crash (grey screen) attach the "traceback.txt" file
  • What did you do that caused the issue?
  • Attach a screenshot of the issue (if possible)
  • When URM gave an error (not a grey crash screen), check the log.txt file for lines starting with "0x52:"
 

Smarmint

Well-Known Member
Mar 23, 2019
1,250
4,894
Yes. I've been thinking about this. But there are some things to consider:
  • What if the code for a choice/path contains multiple lines?
I was thinking about that also. For the issue with multiple lines, what about showing each code element on its own line? Like this:

(Alignment in the forum screen isn't preserved quite right. jenny_love and friends_wb is meant to be right aligned with each other, a few spaces after the choice number.)

Choices Code Detected​
# Code​
1 jenny_love +=1​
friends_wb = 1​
2 jenny_love -=1​
friends_wb = 0​

  • I would like to also show the condition for a choice/path
  • I would like the possibility to only show the active choice/path, but I'm not sure how to show the condition for a possible "else" choice/path. Because that would be if non of the previous conditions matched
If I am understanding you correctly, you want to show all the features of the current Show Choices screen, in the quick code slider. How about for the quick code popout/slider, instead of showing any of the conditions for each choice/path, just show the "visible" paths, and their code lines.

The code notification slider, at least in my mind, isn't meant to replace all the features of the full choices notification screen. The current choices notification screen, with the conditions shown would still be there as always, and will show when the user clicks on the "show choices" icon in the notification. The quick code notification option is just meant as a quick summary of the code for each of the visible choices on the screen, if any.
 
Last edited:
  • Like
Reactions: 0x52

mentar2000

New Member
Apr 3, 2017
11
5
Is there a way to sort the search results, or a way to change the column sizes on found results? I've gota a few games that the names of the results are too long to actually read without hitting the remember button to read the whole thing.
 
  • Like
Reactions: Lure of Chaos

Lure of Chaos

Member
Apr 21, 2020
113
100
Mod not working for Re:Dreamer; https://f95zone.to/threads/re-dreamer-v0-12-0-dream-team-studio.42775/

Crashes when initial bar is loading and nothing pops up. There was no traceback.txt only traceback.pyo and I couldn't upload it.
true
Code:
Bootstrap to the start of init.init took 0.10s
Early init took 0.00s
Loader init took 0.40s
Loading error handling took 0.14s
Loading script took 3.49s
Loading save slot metadata. took 0.34s
Loading persistent took 0.01s
Faled to initialize steam: WindowsError(126, '')
Set script version to: (7, 5, 3)
 - Init at script.rpyc:176 took 0.89174 s.
 

hideouz

Member
Apr 15, 2018
119
70
hey,
i got a problem with this newest version
i play being a dik, ep1-8 and use scrappy mod and also your urm mod
when i take a choice, where i get points and scroll back to look the other answer, the points dont roll back..
example, choice gives -1 points and i scroll back before the choice, i still get the -1 points, coz it doesnt rollback to before the choice..^^
hope, you understand, what i mean ;]
never had that problem in any version of your mod before - i use atm the your mod version 30.10.22, coz its the last one, that worked
regards
 

0x52

Ren'Py Magician
Modder
Donor
Game Developer
May 23, 2019
1,595
6,052
Mod not working for Re:Dreamer; https://f95zone.to/threads/re-dreamer-v0-12-0-dream-team-studio.42775/

Crashes when initial bar is loading and nothing pops up. There was no traceback.txt only traceback.pyo and I couldn't upload it.
They did something to the game that causes this. If you add an empty .rpy file to the game folder the same thing happens.

Is there a way to sort the search results, or a way to change the column sizes on found results? I've gota a few games that the names of the results are too long to actually read without hitting the remember button to read the whole thing.
Sorting in search is on my todo list. I have to think about resizing the columns, I don't like to have the buttons behind the variable on the other end of the screen. And I certainly don't want the headache of trying to create user resizable columns.

hey,
i got a problem with this newest version
i play being a dik, ep1-8 and use scrappy mod and also your urm mod
when i take a choice, where i get points and scroll back to look the other answer, the points dont roll back..
example, choice gives -1 points and i scroll back before the choice, i still get the -1 points, coz it doesnt rollback to before the choice..^^
hope, you understand, what i mean ;]
never had that problem in any version of your mod before - i use atm the your mod version 30.10.22, coz its the last one, that worked
regards
Does your problem still occur with only one of the mods installed or only with the combination?
 
  • Like
Reactions: Lure of Chaos

hideouz

Member
Apr 15, 2018
119
70
Does your problem still occur with only one of the mods installed or only with the combination?
hmm, cant rly test that
i use 8.2 version of the game with 8.2 mod - coz 8.3 deleted some audio files
dno what files/folders are the mod
i jus know, your old mod worked alltime fine (alltime both mods installed, yours and scrappys), till this version - january/march/august and october 2022 worked without problems
and gamefolder is alltime the same, jus deleted savefiles, when i wanted to play again^^

when i got some time, ill download the 8.3 version of the game and test again..

e: tested it now with 8.3 version of the game and only your new mod december 2022 and it fails - points dont rollback - i could do now with answer and scrollback get endless points and vice versa with -points..
so it must be your mod
 
Last edited:

Lure of Chaos

Member
Apr 21, 2020
113
100
Sorting in search is on my todo list. I have to think about resizing the columns, I don't like to have the buttons behind the variable on the other end of the screen. And I certainly don't want the headache of trying to create user resizable columns.
i'd suggest to use calculated widths if this is possible (for example columns Remeber and Watch, and buttons column for now wastes a lot of space). another option could be split a single row into 2 small rows

for now, i'd be grateful if rows had some borders or dividers, ideally zebra colored rows
 

Bingoogus

Engaged Member
Sep 5, 2021
2,819
6,593
How can i get this to work with an old save on Harem Hotel? New game saves it works fine but i had to stop using Ashram's mod due to his illness and am trying to use another user's save file without the mod but i cannot get it to work, no splash and alt+m does nothing.

To be clear:
New game = works
Loading older, unmodded and fully functional save = does not work

Edit: strange, playing for a bit i noticed the pathing options pop-up appearing, fiddling around in and then exiting 'alt+m' still didn't work, i jumped around a few screens, started dialogue a few times and then poof, it works again now... very weird but problem solved i guess.
 
Last edited:

Darksshades

Member
Feb 7, 2020
129
437
A small suggestion for the path option.

Often times there is only a single path option available and in that case there is no "Select" button to force the route where the conditions were not met.

E.g:
path.jpg

The condition is true and it'll already go into the current "Select" path.
In this case, there is no option to go into the path where the condition is False.
This might also apply for multiple paths too if they have an 'else' path where none of the paths are true.

Sorry if this was already mentioned, but i've found this situation a few times.

Great work as always, I'm always impressed with how much this mod evolves over time.
I specially loved the variable monitoring and better path detection.

--edit

It seems sometimes there is the "select" for the negative condition.
path2.jpg
So I guess the situations where there isn't one means there is no code if the active path conditions are not met.
It might still be useful to be able to chose to not go into it in case the path sets some variable inside which leads to future changes.

So maybe an option to ignore all paths and just skip the 'If' statement completely. But then again, this could potentially break a game here and there if using it where you shouldn't.

Idk, feel free to ignore this if you'd like, even I'm not sure of it anymore.
People can always just use the dev console and change the variable for the conditions manually if they really wanted to not go into the paths.
 
Last edited:

0x52

Ren'Py Magician
Modder
Donor
Game Developer
May 23, 2019
1,595
6,052
hmm, cant rly test that
i use 8.2 version of the game with 8.2 mod - coz 8.3 deleted some audio files
dno what files/folders are the mod
i jus know, your old mod worked alltime fine (alltime both mods installed, yours and scrappys), till this version - january/march/august and october 2022 worked without problems
and gamefolder is alltime the same, jus deleted savefiles, when i wanted to play again^^

when i got some time, ill download the 8.3 version of the game and test again..

e: tested it now with 8.3 version of the game and only your new mod december 2022 and it fails - points dont rollback - i could do now with answer and scrollback get endless points and vice versa with -points..
so it must be your mod
I have to look into this and will let you know.

i'd suggest to use calculated widths if this is possible (for example columns Remeber and Watch, and buttons column for now wastes a lot of space). another option could be split a single row into 2 small rows

for now, i'd be grateful if rows had some borders or dividers, ideally zebra colored rows
I do want to create alternating colored rows, but I don't want to make rows that exists of multiple lines.
When we have alternating colored rows it's no problem to put the buttons at the end and make the variable name as wide as possible.

A small suggestion for the path option.

Often times there is only a single path option available and in that case there is no "Select" button to force the route where the conditions were not met.

E.g:
View attachment 2307702

The condition is true and it'll already go into the current "Select" path.
In this case, there is no option to go into the path where the condition is False.
This might also apply for multiple paths too if they have an 'else' path where none of the paths are true.

Sorry if this was already mentioned, but i've found this situation a few times.

Great work as always, I'm always impressed with how much this mod evolves over time.
I specially loved the variable monitoring and better path detection.

--edit

It seems sometimes there is the "select" for the negative condition.
View attachment 2307739
So I guess the situations where there isn't one means there is no code if the active path conditions are not met.
It might still be useful to be able to chose to not go into it in case the path sets some variable inside which leads to future changes.

So maybe an option to ignore all paths and just skip the 'If' statement completely. But then again, this could potentially break a game here and there if using it where you shouldn't.

Idk, feel free to ignore this if you'd like, even I'm not sure of it anymore.
People can always just use the dev console and change the variable for the conditions manually if they really wanted to not go into the paths.
In your first example where there is only one option means there is no "else" in the code. I have something on my todo list to see if I can skip paths like those.
The game's code in that case would be something like this:
Python:
# Some dialogue

if points > 10:
    # Some extra dialogue
    
# Continue the dialogue
 

Lure of Chaos

Member
Apr 21, 2020
113
100
I do want to create alternating colored rows, but I don't want to make rows that exists of multiple lines.
When we have alternating colored rows it's no problem to put the buttons at the end and make the variable name as wide as possible.
I think making zebra rows is no trouble.
Yep, multiple rows is no use and yes, please try push buttons to the right, using 100% of current screen width
good luck, and i'd be glad to help as much as i can (though i'm lacking knowledge of Python and RenPy for now)
 
  • Like
Reactions: 0x52

lazysherlock

Newbie
Nov 28, 2021
45
51
Training Slayer v21.0 crashes on startup https://f95zone.to/threads/training-slayer-v21-0-bokundev.114021/

```
I'm sorry, but errors were detected in your script. Please correct the
errors listed below, and try again.


File "game/0x52/classes/settings.rpy", line 45: invalid syntax
except Exception, e:
^


File "game/0x52/framework/API.rpy", line 95: invalid syntax
except Exception, e:
^


Ren'Py Version: Ren'Py 8.0.3.22090809
Sat Jan 14 20:48:44 2023
```
 

0x52

Ren'Py Magician
Modder
Donor
Game Developer
May 23, 2019
1,595
6,052
i keep getting a crash even after reinstalling the game (https://f95zone.to/threads/lab-rats-2-v0-51-1-vren.7260/) it happen after i was looking through the mod settings and pressed one of them, now it happens as soon as i open urm
Seems like you have another mod installed that causes this?

Training Slayer v21.0 crashes on startup https://f95zone.to/threads/training-slayer-v21-0-bokundev.114021/

```
I'm sorry, but errors were detected in your script. Please correct the
errors listed below, and try again.


File "game/0x52/classes/settings.rpy", line 45: invalid syntax
except Exception, e:
^


File "game/0x52/framework/API.rpy", line 95: invalid syntax
except Exception, e:
^


Ren'Py Version: Ren'Py 8.0.3.22090809
Sat Jan 14 20:48:44 2023
```
Looks like you're using an old URM version (from before 1.9.4 (July 2022))
 

TheSidewinder

Well-Known Member
Mar 31, 2020
1,584
2,875
0x52 Has anyone mentioned issues with URM in "The Roommate"?

It worked early in the game, and I do have saved variables from that point but at today's point, in-game, search no longer works, it returns no results (even for the vars I have saved). The fact it worked, and now doesn't, seems... odd.
 

FaceCrap

Active Member
Oct 1, 2020
882
619
0x52 Has anyone mentioned issues with URM in "The Roommate"?

It worked early in the game, and I do have saved variables from that point but at today's point, in-game, search no longer works, it returns no results (even for the vars I have saved). The fact it worked, and now doesn't, seems... odd.
Funny this, I was about to post about this game myself when I saw yours. It's not the first time " The Roommate" causes odd behavior, although that one is fixed.
Back to searching, I found out the girls have a lastname so I tried searching for it but I did get an error ...
Code:
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00library.rpy", line 268, in say
    who(what, interact=interact, *args, **kwargs)
  File "game/0x52/framework/inputs.rpy", line 85, in enter
TypeError: isinstance() arg 2 must be a class, type, or tuple of classes and types
I also had JokerLeader's walkthrough installed and Penfold's transparent text box mod. (as in past tense because I had soo much shit with the latest release I dropped it for now)

Odd thing, when I tried reproducing this error, it just brought back only the MC's lastname... seems it has a problem finding object properties in this one (all girls seems to be an object with properties, e.g. Kari would have multiple properties as in kari.lastname).
No idea why it threw that error the first time and not on subsequent searches...

This game also has weird issues with rollling back and then encountering a local label (of the form .label) if you continue, plus the latest release gave me soo much shit with fatal errors on loading old saved games, I dropped it for now. Maybe I'll revisit it in the future after I cooled down and more updates have been released.

PS. The variables screen could also do with pagination. Like the Renaming screen in the past, this one too causes slowdown when you're tracking a lot of variables. Not as much as the Renaming screen did but noticable

EDIT: I dug up a backup from saturday (thank god for nightly backups). I added an example of the odd error you can get after a roll-back and continue...
 
Last edited:
  • Like
Reactions: TheSidewinder

mesungehaul

Newbie
Feb 1, 2018
90
311
Latest version of URM, latest version of "Town of Magic"

Got a crash immediately after pressing `Start` on the main menu.

Code:
I'm sorry, but an uncaught exception occurred.
While loading <renpy.display.im.Image object ('0x52/images/urm_vertical.x52') at 0x7fa363170640>:
  File "renpy/common/00gamemenu.rpy", line 170, in script
    $ ui.interact()
  File "renpy/common/00gamemenu.rpy", line 170, in <module>
    $ ui.interact()
OSError: Couldn't find file '0x52/images/urm_vertical.x52'.
-- Full Traceback ------------------------------------------------------------
Full traceback:
  File "renpy/common/00gamemenu.rpy", line 170, in script
    $ ui.interact()
  File "/home/username/Downloads/Town of Magic/renpy/ast.py", line 1131, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "/home/username/Downloads/Town of Magic/renpy/python.py", line 1061, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "renpy/common/00gamemenu.rpy", line 170, in <module>
    $ ui.interact()
  File "/home/username/Downloads/Town of Magic/renpy/ui.py", line 299, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "/home/username/Downloads/Town of Magic/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 "/home/username/Downloads/Town of Magic/renpy/display/core.py", line 3912, in interact_core
    self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)
  File "/home/username/Downloads/Town of Magic/renpy/display/core.py", line 2602, in draw_screen
    surftree = renpy.display.render.render_screen(
  File "render.pyx", line 495, in renpy.display.render.render_screen
  File "render.pyx", line 266, in renpy.display.render.render
  File "/home/username/Downloads/Town of Magic/renpy/display/layout.py", line 884, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 266, in renpy.display.render.render
  File "/home/username/Downloads/Town of Magic/renpy/display/transition.py", line 378, in render
    top = render(self.new_widget, width, height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 266, in renpy.display.render.render
  File "/home/username/Downloads/Town of Magic/renpy/display/layout.py", line 884, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 266, in renpy.display.render.render
  File "/home/username/Downloads/Town of Magic/renpy/display/layout.py", line 884, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 266, in renpy.display.render.render
  File "/home/username/Downloads/Town of Magic/renpy/display/screen.py", line 704, in render
    child = renpy.display.render.render(self.child, w, h, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 266, in renpy.display.render.render
  File "/home/username/Downloads/Town of Magic/renpy/display/layout.py", line 884, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 266, in renpy.display.render.render
  File "/home/username/Downloads/Town of Magic/renpy/display/dragdrop.py", line 474, in render
    cr = render(child, width, height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 266, in renpy.display.render.render
  File "/home/username/Downloads/Town of Magic/renpy/display/transform.py", line 747, in render
    return transform_render(self, width, height, st, at)
  File "accelerator.pyx", line 187, in renpy.display.accelerator.transform_render
  File "render.pyx", line 266, in renpy.display.render.render
  File "/home/username/Downloads/Town of Magic/renpy/display/layout.py", line 1334, in render
    surf = render(child,
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 266, in renpy.display.render.render
  File "/home/username/Downloads/Town of Magic/renpy/display/layout.py", line 1105, in render
    surf = render(d, width - x, rh, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 266, in renpy.display.render.render
  File "/home/username/Downloads/Town of Magic/renpy/display/layout.py", line 1060, in render
    surf = render(d, rw, height - y, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 266, in renpy.display.render.render
  File "/home/username/Downloads/Town of Magic/renpy/display/transform.py", line 747, in render
    return transform_render(self, width, height, st, at)
  File "accelerator.pyx", line 187, in renpy.display.accelerator.transform_render
  File "render.pyx", line 266, in renpy.display.render.render
  File "/home/username/Downloads/Town of Magic/renpy/display/im.py", line 627, in render
    return cache.get(self, render=True)
  File "/home/username/Downloads/Town of Magic/renpy/display/im.py", line 295, in get
    surf = image.load()
  File "/home/username/Downloads/Town of Magic/renpy/display/im.py", line 720, in load
    raise e
  File "/home/username/Downloads/Town of Magic/renpy/display/im.py", line 685, in load
    filelike = renpy.loader.load(self.filename)
  File "/home/username/Downloads/Town of Magic/renpy/loader.py", line 820, in load
    raise IOError("Couldn't find file '%s'." % name)
OSError: Couldn't find file '0x52/images/urm_vertical.x52'.
Linux-6.1.6-arch1-1-x86_64-with-glibc2.36 x86_64
Ren'Py 8.0.3.22090809
Town of Magic 0.64.010
Wed Jan 18 15:28:05 2023
Ignoring and then trying to open the menu also yeets a traceback, this time saying it can't find `FontAwesome5Free-blablabla.otf.x52`
 
Last edited:
5.00 star(s) 33 Votes