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

5.00 star(s) 37 Votes

pattricktiefer

New Member
Sep 17, 2023
1
0
I get this error whenever I press alt + m:
Code:
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00action_data.rpy", line 178, in SetLocalVariable
    return SetDict(sys._getframe(1).f_locals, name, value)
AttributeError: 'ADVCharacter' object has no attribute '_getframe'

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

Full traceback:
  File "prologue.rpyc", line 93, in script
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\ast.py", line 1628, in execute
    choice = renpy.exports.menu(choices, self.set, args, kwargs, item_arguments)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\exports.py", line 990, in menu
    rv = renpy.store.menu(new_items)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\exports.py", line 1226, in display_menu
    rv = renpy.ui.interact(mouse='menu', type=type, roll_forward=roll_forward)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\ui.py", line 297, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\core.py", line 2702, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, **kwargs)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\core.py", line 3094, in interact_core
    root_widget.visit_all(lambda i : i.per_interact())
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\screen.py", line 430, in visit_all
    callback(self)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\core.py", line 3094, in <lambda>
    root_widget.visit_all(lambda i : i.per_interact())
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\screen.py", line 440, in per_interact
    self.update()
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\screen.py", line 625, in update
    self.screen.function(**self.scope)
  File "0x52-URM/screens/main.rpy.x52", line 72, in execute
  File "0x52-URM/screens/main.rpy.x52", line 72, in execute
  File "0x52-URM/screens/main.rpy.x52", line 82, in execute
  File "0x52-URM/screens/main.rpy.x52", line 114, in execute
  File "0x52-URM/screens/main.rpy.x52", line 143, in execute
  File "0x52-URM/screens/main.rpy.x52", line 158, in execute
  File "0x52-URM/screens/main.rpy.x52", line 161, in execute
  File "0x52-URM/screens/main.rpy.x52", line 164, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 5, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 5, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 13, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 53, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 59, in execute
  File "0x52-URM/screens/utils.rpy.x52", line 67, in execute
  File "0x52-URM/screens/utils.rpy.x52", line 67, in execute
  File "0x52-URM/screens/utils.rpy.x52", line 68, in execute
  File "0x52-URM/screens/utils.rpy.x52", line 71, in execute
  File "0x52-URM/screens/utils.rpy.x52", line 74, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 59, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 60, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 61, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 63, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 66, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 66, in keywords
  File "<screen language>", line 66, in <module>
  File "renpy/common/00action_data.rpy", line 178, in SetLocalVariable
    return SetDict(sys._getframe(1).f_locals, name, value)
AttributeError: 'ADVCharacter' object has no attribute '_getframe'

Windows-8-6.2.9200
Ren'Py 7.3.5.606
Pale Carnations Ch4Up3
Sat Jan 13 15:38:23 2024
 

0x52

Ren'Py Magician
Modder
Donor
Game Developer
May 23, 2019
1,674
6,511
I get this error whenever I press alt + m:
Code:
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00action_data.rpy", line 178, in SetLocalVariable
    return SetDict(sys._getframe(1).f_locals, name, value)
AttributeError: 'ADVCharacter' object has no attribute '_getframe'

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

Full traceback:
  File "prologue.rpyc", line 93, in script
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\ast.py", line 1628, in execute
    choice = renpy.exports.menu(choices, self.set, args, kwargs, item_arguments)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\exports.py", line 990, in menu
    rv = renpy.store.menu(new_items)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\exports.py", line 1226, in display_menu
    rv = renpy.ui.interact(mouse='menu', type=type, roll_forward=roll_forward)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\ui.py", line 297, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\core.py", line 2702, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, **kwargs)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\core.py", line 3094, in interact_core
    root_widget.visit_all(lambda i : i.per_interact())
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\core.py", line 541, in visit_all
    d.visit_all(callback, seen)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\screen.py", line 430, in visit_all
    callback(self)
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\core.py", line 3094, in <lambda>
    root_widget.visit_all(lambda i : i.per_interact())
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\screen.py", line 440, in per_interact
    self.update()
  File "C:\Users\natha\Desktop\games\storage\roblox\old\PaleCarnations-Ch4Up3-pc\renpy\display\screen.py", line 625, in update
    self.screen.function(**self.scope)
  File "0x52-URM/screens/main.rpy.x52", line 72, in execute
  File "0x52-URM/screens/main.rpy.x52", line 72, in execute
  File "0x52-URM/screens/main.rpy.x52", line 82, in execute
  File "0x52-URM/screens/main.rpy.x52", line 114, in execute
  File "0x52-URM/screens/main.rpy.x52", line 143, in execute
  File "0x52-URM/screens/main.rpy.x52", line 158, in execute
  File "0x52-URM/screens/main.rpy.x52", line 161, in execute
  File "0x52-URM/screens/main.rpy.x52", line 164, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 5, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 5, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 13, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 53, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 59, in execute
  File "0x52-URM/screens/utils.rpy.x52", line 67, in execute
  File "0x52-URM/screens/utils.rpy.x52", line 67, in execute
  File "0x52-URM/screens/utils.rpy.x52", line 68, in execute
  File "0x52-URM/screens/utils.rpy.x52", line 71, in execute
  File "0x52-URM/screens/utils.rpy.x52", line 74, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 59, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 60, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 61, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 63, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 66, in execute
  File "0x52-URM/screens/vars.rpy.x52", line 66, in keywords
  File "<screen language>", line 66, in <module>
  File "renpy/common/00action_data.rpy", line 178, in SetLocalVariable
    return SetDict(sys._getframe(1).f_locals, name, value)
AttributeError: 'ADVCharacter' object has no attribute '_getframe'

Windows-8-6.2.9200
Ren'Py 7.3.5.606
Pale Carnations Ch4Up3
Sat Jan 13 15:38:23 2024
See:
You don't have permission to view the spoiler content. Log in or register now.
 
  • Like
Reactions: Feyd

skrusher

Active Member
May 11, 2019
616
1,784
Is it possible to ignore a condition so that the path detection doesn't pop up all the time?

Captura de Tela (57).png

He is an example. The condition "persistent.v_xray_enable" is all over the game. It would be great if we could ignore it so that the path detection just passes through it without popping up.

Right now I'm replaying the game with the "stop skipping on path detection" turn on to see if I've missed anything but since the game has many conditions that are not different paths, the detection pops up all the time and I have to check each one to see if it's a path or not.
 

matt767

Newbie
May 3, 2020
26
26
Hi

I love your mod its very useful.

However I do have one peeve. The update never works on Linux Ubuntu. You see it reloading but it never actually gets and set the new version. Not sure why. Some times you see a temp file in the game folder but no actual update.

Anyway keep up the great work!

Cheers
 

0x52

Ren'Py Magician
Modder
Donor
Game Developer
May 23, 2019
1,674
6,511
Hi

I love your mod its very useful.

However I do have one peeve. The update never works on Linux Ubuntu. You see it reloading but it never actually gets and set the new version. Not sure why. Some times you see a temp file in the game folder but no actual update.

Anyway keep up the great work!

Cheers
Thanks for the kind words.

Did you try updating from 2.0.2 to 2.0.3? Because 2.0.2 has a lot of self-update improvements.
When it fails from 2.0.2 or later to a new version, please close the game after the failed update and check the log.txt file. It should contain some lines starting with "0x52". (preferably send me the complete file)
 
  • Like
Reactions: Feyd

Johan_0000

Active Member
Apr 14, 2023
658
485
Keep in mind that I'm writing this without having tested the new version so maybe some things changed.

I want to apologize bc I have been using this tool for some time now and I just noticed that I never thanked the dev or expressed my gratitude for it.
This tool is amazing it'll work with most games, is compatible with most mod...

There are some things I think it could get better on, like :

1- The variable change notifications (a rly useful thing bc I don't know why but some games change variables after you made your choice). They can get slightly annoying when your rollback bc they multiply but that's not what's annoying.
The thing is you have to suppress the notiff yourself manually. meaning if you have 8 notifs you have to click on each of them and ignore them. It'd be great if there was smt like, after two or 3 (maybe make it customizable if possible) lines delete all notifications ; or making them fade after a certain time idk lol.

2- When I use the remember thingy. It'd be great if it could remember the kind of variable lists.
Exemple : when I try to remember Mc.stats where there are str, dex, agi... it just remember mc.stats with nothing inside.

3- This one kinda originated from the 2nd bc I thought maybe doing that was too complicated. Whatever it could still be useful and a good replacement/complement for 2 :
It'd be great if we could create a list/folder where we'd organize stats bc sometimes, on big game it can get messy with all the remembered stats. Especially if you come back to the game after some time lol

4-Being able to Make exceptions on path notifications. Like in some games you can choose the gender of your character and receive a path notification every time, afraid it might be smt you miss you always check. It can get annoying. So maybe making smt like : for(chosen var) don't notify!
lol Idk what I'm talking abt
EDIT/ nvm I think smn alrdy asked
This has been asked a couple of times in the past few days -- and has already been answered.
Sry if I used poor vocabulary I don't code so I don't rly know what stands for what. I hope what I said was understandable lol

Again thank you for this amazing tool.

THX
 
Last edited:

MasterMerp

Newbie
Oct 10, 2019
72
52
Love the mod and it is one of my defaults to use with every VN / Game

in the past i used to often just open the .urm file with notepad++ and edit the json, for e.g. replacing formatting of a lot of stuff (like reoccuring activity text in *asterisks*) as almost a batch job, saved the .urm, reloaded it into game and saved it from withing the mod again to populate it to the Roaming/Renpy directory too.

It seems you encode the .urm files differently now and not just in plain text json anymore
so just out of interest: was there a specific reson for that? :)
 

dioregul

Member
Oct 17, 2017
100
91
It seems you encode the .urm files differently now and not just in plain text json anymore
so just out of interest: was there a specific reson for that? :)
They are not encoded, just packed in zip file container. You can open urm as zip file and edit json files inside without problem.
 
  • Like
Reactions: MasterMerp

0x52

Ren'Py Magician
Modder
Donor
Game Developer
May 23, 2019
1,674
6,511
1- The variable change notifications (a rly useful thing bc I don't know why but some games change variables after you made your choice). They can get slightly annoying when your rollback bc they multiply but that's not what's annoying.
The thing is you have to suppress the notiff yourself manually. meaning if you have 8 notifs you have to click on each of them and ignore them. It'd be great if there was smt like, after two or 3 (maybe make it customizable if possible) lines delete all notifications ; or making them fade after a certain time idk lol.
I think it will be complicated to get a solution for this that works for everybody. I'll think on this.

2- When I use the remember thingy. It'd be great if it could remember the kind of variable lists.
Exemple : when I try to remember Mc.stats where there are str, dex, agi... it just remember mc.stats with nothing inside.

3- This one kinda originated from the 2nd bc I thought maybe doing that was too complicated. Whatever it could still be useful and a good replacement/complement for 2 :
It'd be great if we could create a list/folder where we'd organize stats bc sometimes, on big game it can get messy with all the remembered stats. Especially if you come back to the game after some time lol
There's an item "variable groups" on the roadmap that should solve this.

Love the mod and it is one of my defaults to use with every VN / Game

in the past i used to often just open the .urm file with notepad++ and edit the json, for e.g. replacing formatting of a lot of stuff (like reoccuring activity text in *asterisks*) as almost a batch job, saved the .urm, reloaded it into game and saved it from withing the mod again to populate it to the Roaming/Renpy directory too.

It seems you encode the .urm files differently now and not just in plain text json anymore
so just out of interest: was there a specific reson for that? :)
Like dioregul said. The new files are just compressed, still containing JSON. You can just open them with 7zip for example.
This new format makes it easer for me to use and maintain.
 

matt767

Newbie
May 3, 2020
26
26
Thanks for the kind words.

Did you try updating from 2.0.2 to 2.0.3? Because 2.0.2 has a lot of self-update improvements.
When it fails from 2.0.2 or later to a new version, please close the game after the failed update and check the log.txt file. It should contain some lines starting with "0x52". (preferably send me the complete file)
Hi, yes I tried 2.0.2-> 2.0.3

It goes through all the actions, seems to download and "restart" but next time you start the game it is still 2.0.2.

Had the same issue with 1.x.x

It is no a huge issue as usually I just extract the new one in the game folder and done. Would be nice to save a little time with the update though.

Just wondered if it something linux specific.

I am a software developer actually but Java and c++ not python. I know a lot about linux.
 

_SomeOneElse_

Newbie
Jul 12, 2021
24
27
Thx for the great update 0x52 !

I use that mod a lot for changing the text style like size or adding a missing outline for some games. What I would like is/are additional options in the general text/font settings, that would allow to specify the width or a left and right margin for the textbox.
 
  • Like
Reactions: Andarilho

sipsipsap

Newbie
Aug 20, 2023
69
92
Dunno if this has been asked already, but would it be possible to implement the removal of any {w} Tag within text? I find it extremely annoying that I have to click multiple times to read a line and it actually gets confusing because my eyes jump back to the beginning every time I click my mouse.
That's what I am used to.
 

theMickey_

Engaged Member
Mar 19, 2020
2,198
2,834
...additional options in the general text/font settings, that would allow to specify the width or a left and right margin for the textbox...
See this :)
...would it be possible to implement the removal of any {w} Tag within text?
Hm, if it's in the text itself, URM should be able to remove it already...?! Have you tried it, and it didn't work? Or do you have an example game which uses it a lot so I can test it?
 

sipsipsap

Newbie
Aug 20, 2023
69
92
Edit: Problem is solved.

Hm, if it's in the text itself, URM should be able to remove it already...?! Have you tried it, and it didn't work? Or do you have an example game which uses it a lot so I can test it?
The point is to basically have an option that removes the tag automatically during runtime. I'm currently playing Deviant Anomalies and the only way how I was able to solve this is by editing the actual code files.

Did I miss a already existing feature that could do that?

Because manually editing text or variables isn't really the point because I'd have to do that for every game that uses this.
Now obviously it could break some games if URM does this but that's just user risk of using URM in the first place.
 
Last edited:
  • Like
Reactions: theMickey_

0x52

Ren'Py Magician
Modder
Donor
Game Developer
May 23, 2019
1,674
6,511
The point is to basically have an option that removes the tag automatically during runtime. I'm currently playing Deviant Anomalies and the only way how I was able to solve this is by editing the actual code files.

Did I miss a already existing feature that could do that?

Because manually editing text or variables isn't really the point because I'd have to do that for every game that uses this.
Now obviously it could break some games if URM does this but that's just user risk of using URM in the first place.
Did you try replacing {w} with something else?
1705607890423.png
URM currently doesn't support replacing with nothing, so I've entered a black space as replacement here.
 
5.00 star(s) 37 Votes