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

5.00 star(s) 35 Votes
Apr 26, 2022
40
8
So, I've just tested this (after I figured out which version of the game I had to download), and it still works:

1) It seems like every character in this game has it's on variable with the image_tag property:
For Tony it's t.image_tag, for Anne it's a.image_tag, for Ryan it's r.image_tag and so on -- there are roughly about 110 different image_tag variables. If you search for them (like in the screenshot above), you can also see all the usable values for those, like "Tony", "Anne" and "Ryan" for example.

2) If you want to change someones image, you just have to change its personal image_tag variable to the character you want to have displayed instead, like:
In this example I have replace the images for Tony, Anne and Ryan to "Deilvery guy".

3) The result looks like this:


In the screenshot you posted, you have replace t.image_tag (that's Tony's image!) with "Anne", so whenever Tony is talking, you should see Anne's picture. But your second screenshot shows a dialogue line from Anne herself, which (according to your first screenshot) shouldn't have changed at all.

Hope that helps!
Thank you, even so it is not the same as the first time that option appeared since before, in a dialogue I changed the image of x character for that of x character but in the next dialogue the image returned to the original, it is as if only It was changed for a single scene or a single dialogue
 

theMickey_

Engaged Member
Mar 19, 2020
2,166
2,735
but in the next dialogue the image returned to the original
Can't reproduce that. If you follow my previous post, once you change a picture, it does not automatically switch back to the original -- I've just skipped through multiple days, and both Anne's and Tony's pictures are still that of a Delivery guy ;-)
 

Daddy-S

Member
Aug 27, 2022
270
1,041
I get this error with urm + 3rd party I-patch. Not sure if its interesting or helpful info but there it is.
 

0x52

Ren'Py Magician
Modder
Donor
Game Developer
May 23, 2019
1,646
6,356
I get this error with urm + 3rd party I-patch. Not sure if its interesting or helpful info but there it is.
Seems like this occurs because you have the "Skip splashscreen" option enabled.
Assuming you've enabled this option globally through another game, you could disabled it again that way and try again.
 
  • Like
Reactions: "CJ"

RabidSloth

Well-Known Member
Dec 4, 2018
1,099
1,431
Hi, I have a quick question. I'm thinking of expanding my currently limited Ren'Py modding knowledge and modding some games just for personal use. So far I (mostly) just know how to do things like edit dialogue and images.

But some of the things that I would specifically like to learn how to do involve things like:

1) Creating different dialogue branches for certain scenes. For example; "Do you want to be more [Dominant] or [Submissive]?". Writing the branches separately and then adding a way in-game to choose which one gets used for the scene.

2) Create a new modded ending for a game using assets from other alternate endings.

Would this mod and its tutorials help me achieve those specific goals, or no? Thank you for any info or tips btw =)

Just to clarify: I'm talking about modding already completed games, not making my own (not yet anyway).
 

0x52

Ren'Py Magician
Modder
Donor
Game Developer
May 23, 2019
1,646
6,356
If it comes to that, I want to ask, is it possible to do something with my patch that it would work with your mod (if I install both your mod and my patch, my patch does not work, no bugs)?
p.s. I have zero coding knowledge, just know this function(text.replace), and a few others.
The piece of code you've attached is not related to the issue, it's this part:
Python:
class LabelOverridesSwitch(object):
    def __init__(self, passthru):
        self.ipatch = set()
        self.passthru = passthru
    def get(self, key, default=None):
        return key + "_i" if key in self.ipatch else self.passthru.get(key, default)

if not isinstance(config.label_overrides, LabelOverridesSwitch):
    config.label_overrides = LabelOverridesSwitch(config.label_overrides)
This partially breaks Ren'Py's label override mechanism.
You could change it to something like this to have at least some compatibility with Ren'Py's implementation, but it's still not perfect.
Python:
class LabelOverridesSwitch(object):
    def __init__(self, passthru):
        self.ipatch = set()
        self.passthru = passthru
    def get(self, key, default=None):
        return key + "_i" if key in self.ipatch else self.passthru.get(key, default)
    def __getitem__(self, key):
        return self.get(key)
    def __setitem__(self, key, value):
        self.passthru[key] = value
    def __delitem__(self, key):
        if key in self.passthru:
            del self.passthru[key]
        elif key in self.ipatch:
            self.ipatch.remove(key)

if not isinstance(config.label_overrides, LabelOverridesSwitch):
    config.label_overrides = LabelOverridesSwitch(config.label_overrides)
But I don't see why you need this LabelOverridesSwitch. You could just use the config.label_overrides as intended. This would be all the code you need in the first init block:
Python:
config.label_overrides['Fish1'] = 'Fish1_i'
config.label_overrides['Day9'] = 'Day9_i'
config.label_overrides['Acryroom'] = 'Acryroom_i'
config.label_overrides['VisitM26'] = 'VisitM26_i'
config.label_overrides['cel34V'] = 'VisitM26_i'

Hi, I have a quick question. I'm thinking of expanding my currently limited Ren'Py modding knowledge and modding some games just for personal use. So far I (mostly) just know how to do things like edit dialogue and images.

But some of the things that I would specifically like to learn how to do involve things like:

1) Creating different dialogue branches for certain scenes. For example; "Do you want to be more [Dominant] or [Submissive]?". Writing the branches separately and then adding a way in-game to choose which one gets used for the scene.

2) Create a new modded ending for a game using assets from other alternate endings.

Would this mod and its tutorials help me achieve those specific goals, or no? Thank you for any info or tips btw =)

Just to clarify: I'm talking about modding already completed games, not making my own (not yet anyway).
You cannot use URM do add scenes, if that's what you're asking.
 

Paranoiaaaaaa

Member
Jul 13, 2018
100
74
Hi, is it possible to add a “choose both” button when players need make dicisions.
Like when choose to visit which girl, we can “choose both” to get all the points and flags.
Its a basic feature for many mods.
Of course I know there is chance to broken the game, maybe you can have it disabled by default or add some notice.
 
  • Thinking Face
Reactions: Belzeebub$

Tiur

Well-Known Member
Nov 13, 2021
1,179
3,192
Hi, is it possible to add a “choose both” button when players need make dicisions.
Like when choose to visit which girl, we can “choose both” to get all the points and flags.
Its a basic feature for many mods.
Of course I know there is chance to broken the game, maybe you can have it disabled by default or add some notice.
No, that involves rewriting the jump and label code in ways specific to each individual game.
 
  • Like
Reactions: 0x52

k1bell

Newbie
Sep 15, 2017
71
124
Hey there, was using the mod with Heads will Roll - Downfall.
Stuff was working all fine, until I decided to click on Snapshots in the URM which gave me errors.
And now I can't access URM with Alt-M as it will try to access the Snapshot tab directly which will give errors again.
Is there a way to open URM at another page?
 
Last edited:

WeAreChecking

Newbie
Nov 29, 2020
97
68
Hi there, I was playing Misfits part 1 on android without any mods (because there aren't any) and whenever I click on search bar I get this error and It's the first time I got an error while using URM. Screenshot_2023-10-05-19-00-15-88_87e33e71e2d0cc351172f64a029bb9ee.jpg
Python:
```
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00action_other.rpy", line 540, in __eq__
TypeError: 'unicode' object is not callable

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

Full traceback:
  File "script.rpyc", line 144, in script call
  File "CH 1.rpyc", line 923, in script
  File "renpy/ast.py", line 921, in execute
  File "renpy/exports.py", line 1373, in say
  File "renpy/character.py", line 1266, in __call__
  File "renpy/character.py", line 930, in do_display
  File "renpy/character.py", line 666, in display_say
  File "renpy/ui.py", line 299, in interact
  File "renpy/display\core.py", line 3377, in interact
  File "renpy/display\core.py", line 3804, in interact_core
  File "renpy/display\core.py", line 582, in visit_all
  File "renpy/display\core.py", line 582, in visit_all
  File "renpy/display\core.py", line 582, in visit_all
  File "renpy/display\screen.py", line 451, in visit_all
  File "renpy/display\core.py", line 3804, in <lambda>
  File "renpy/display\screen.py", line 462, in per_interact
  File "renpy/display\screen.py", line 653, in update
  File "0x52/screens/main.rpy.x52", line 54, in execute
  File "0x52/screens/main.rpy.x52", line 54, in execute
  File "0x52/screens/main.rpy.x52", line 60, in execute
  File "renpy/common/00action_other.rpy", line 540, in __eq__
TypeError: 'unicode' object is not callable

```
 

0x52

Ren'Py Magician
Modder
Donor
Game Developer
May 23, 2019
1,646
6,356
Hey there, was using the mod with Heads will Fall - Downfall.
Stuff was working all fine, until I decided to click on Snapshots in the URM which gave me errors.
And now I can't access URM with Alt-M as it will try to access the Snapshot tab directly which will give errors again.
Is there a way to open URM at another page?
I'm unable to find "Heads will roll - Downfall" on this site, but it seems like they have assigned something to the "list".
You could delete the persistent file (or rename it to not lose it) in both the game/saves folder and in the Appdata and start the game again. URM will revert back to the "Search" tab.

But... them using "list" will break other things like sorting and textbox customization. And possibly internal Ren'Py things.

Hi there, I was playing Misfits part 1 on android without any mods (because there aren't any) and whenever I click on search bar I get this error and It's the first time I got an error while using URM. View attachment 2982109
Python:
```
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00action_other.rpy", line 540, in __eq__
TypeError: 'unicode' object is not callable

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

Full traceback:
  File "script.rpyc", line 144, in script call
  File "CH 1.rpyc", line 923, in script
  File "renpy/ast.py", line 921, in execute
  File "renpy/exports.py", line 1373, in say
  File "renpy/character.py", line 1266, in __call__
  File "renpy/character.py", line 930, in do_display
  File "renpy/character.py", line 666, in display_say
  File "renpy/ui.py", line 299, in interact
  File "renpy/display\core.py", line 3377, in interact
  File "renpy/display\core.py", line 3804, in interact_core
  File "renpy/display\core.py", line 582, in visit_all
  File "renpy/display\core.py", line 582, in visit_all
  File "renpy/display\core.py", line 582, in visit_all
  File "renpy/display\screen.py", line 451, in visit_all
  File "renpy/display\core.py", line 3804, in <lambda>
  File "renpy/display\screen.py", line 462, in per_interact
  File "renpy/display\screen.py", line 653, in update
  File "0x52/screens/main.rpy.x52", line 54, in execute
  File "0x52/screens/main.rpy.x52", line 54, in execute
  File "0x52/screens/main.rpy.x52", line 60, in execute
  File "renpy/common/00action_other.rpy", line 540, in __eq__
TypeError: 'unicode' object is not callable

```
Sorry, I can't explain this issue and it would be a lot of work to investigate.
 

k1bell

Newbie
Sep 15, 2017
71
124
I'm unable to find "Heads will roll - Downfall" on this site, but it seems like they have assigned something to the "list".
You could delete the persistent file (or rename it to not lose it) in both the game/saves folder and in the Appdata and start the game again. URM will revert back to the "Search" tab.

But... them using "list" will break other things like sorting and textbox customization. And possibly internal Ren'Py things.


Sorry, I can't explain this issue and it would be a lot of work to investigate.
Thanks, will give it a try.
You probably can't find it since
  1. I had a brainfart and wrote Heads will fall instead of Heads will roll.:eek:
  2. There isn't much sex in it
  3. It's free on Steam
 
Apr 1, 2018
231
126
Has anyone found a useful variable that can be manipulated in every renpy game? I have been curiously searching for something that exists in every renpy game that can changed to be of good use and ik some game devs have put dev panels in theirs I can't recall specific game examples but there was one where I found a variable name something along the line of "dev_tool" or "dev_menu" I know URM as is can easily replace and beat any "dev" menu but I'm just curious to see what possibly developers actually put in their dev menus. And than another where I had to type in a code to progress in game and I was trying to find the code through URM I mean is there such a way? To instead of looking for variables to manipulate or labels to play you find the answer or code that would let you progress?
 

Shiva11

Newbie
Feb 8, 2018
49
64
Not sure if this is the proper forum for enhancement requests for this excellent mod so please excuse if it's not.
I would like to have an option to control the width of the textbox. Here's an example:
screenshot0001.png

The original textbox is fine except for the annoying background gradient. (The purple color behind the text.)

screenshot0002.png

The modified textbox is what I'm looking for but the text is too wide now to read easily and the text runs into the QUICK MENU on the right. I would like to be able to shorten the right left and right margins of the text so it would appear in three or four lines instead of two as it is now.
 

Coin001

New Member
Oct 4, 2023
6
0
Universal Ren'Py Mod [1.15.2] How to set the language of other regions, I tried to change it myself but it was garbled
 

FiendPawPaw

New Member
Oct 7, 2023
1
0
Crashed in Corrupted Kingdoms v0.20.1

I'm sorry, but an uncaught exception occurred.

While running game code:
File "game/0x52/classes/main.rpy", line 203, in <module>
File "game/0x52/framework/01loader.rpy", line 34, in load_file
AttributeError: 'str' object has no attribute 'decode'

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

Full traceback:
File "0x52/classes/main.rpyc", line 199, in script
File "D:\COC and stuff\CorruptedKingdoms-0.20.1-pc\renpy\ast.py", line 1138, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "D:\COC and stuff\CorruptedKingdoms-0.20.1-pc\renpy\python.py", line 1122, in py_exec_bytecode
exec(bytecode, globals, locals)
File "game/0x52/classes/main.rpy", line 203, in <module>
File "game/0x52/framework/01loader.rpy", line 34, in load_file
AttributeError: 'str' object has no attribute 'decode'

Windows-10-10.0.22621 AMD64
Ren'Py 8.1.1.23060707
Corrupted Kingdoms 0.20.1
Fri Oct 6 19:06:18 2023
 

0x52

Ren'Py Magician
Modder
Donor
Game Developer
May 23, 2019
1,646
6,356
Hi. I ran into an uncaught exception when using this mod.

on this game
https://f95zone.to/threads/the-lewdest-house-v0-1-10-dmf.142759/
v0.1.10-pc

using v1.15.2 of universal renpy mod

start a new game. hit alt+m. go to rename screen and click on "rename a character" and it gives this uncaught exception
Code:
I'm sorry, but an uncaught exception occurred.

While processing text tag {color= #3d5577 } in '{noalt}{color= #3d5577 }Lana{/color}{color=#ffffff} &{/color} {color= #f26491 }Lola{/color} (twins)'.:
  File "game/Script/Chapter1/script-001.rpy", line 43, in script
    ronnie "The other day when we were together.."
Exception: Color string ' #3d5577 ' must be 3, 4, 6, or 8 hex digits long.

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

Full traceback:
  File "game/Script/Chapter1/script-001.rpy", line 43, in script
    ronnie "The other day when we were together.."
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\ast.py", line 921, in execute
    renpy.exports.say(who, what, *args, **kwargs)
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\exports.py", line 1373, in say
    who(what, *args, **kwargs)
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\character.py", line 1266, in __call__
    self.do_display(who, what, cb_args=self.cb_args, dtt=dtt, **display_args)
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\character.py", line 927, in do_display
    display_say(who,
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\character.py", line 666, in display_say
    rv = renpy.ui.interact(mouse='say', type=type, roll_forward=roll_forward)
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\ui.py", line 299, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\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 "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\display\core.py", line 3912, in interact_core
    self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\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 "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\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 "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\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 "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\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 "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\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 "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\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 "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\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 "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\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 "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\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 "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\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 "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\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 "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\display\layout.py", line 1847, in render
    cwidth, cheight = sizeit('c', width, height, 0, 0)
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\display\layout.py", line 1844, in sizeit
    rend = renpy.display.render.render_for_size(pos_d[pos], width, height, st, at)
  File "render.pyx", line 318, in renpy.display.render.render_for_size
  File "render.pyx", line 266, in renpy.display.render.render
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\display\viewport.py", line 256, in render
    surf = renpy.display.render.render(self.child, child_width, child_height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 266, in renpy.display.render.render
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\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 "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\display\behavior.py", line 885, in render
    rv = super(Button, self).render(width, height, st, at)
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\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 "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\text\text.py", line 2109, in render
    virtual_layout = Layout(self, width, height, renders, drawable_res=False, size_only=True)
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\text\text.py", line 627, in __init__
    self.paragraphs = self.segment(text.tokens, style, renders, text)
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\text\text.py", line 1195, in segment
    push().color = renpy.easy.color(value)
  File "D:\games_win\HG\The Lewdest House\thelewdesthouse-0.1.10-pc\renpy\color.py", line 167, in __new__
    raise Exception("Color string {!r} must be 3, 4, 6, or 8 hex digits long.".format(c))
Exception: Color string ' #3d5577 ' must be 3, 4, 6, or 8 hex digits long.

Windows-10-10.0.19045 AMD64
Ren'Py 8.0.3.22090809
The Lewdest House 0.1.10
Thu Oct  5 23:31:40 2023
it is saying
Exception: Color string ' #3d5577 ' must be 3, 4, 6, or 8 hex digits long.
and... it is 6 digits long. it is a valid color:

is it maybe the space before and after?

actually... is this maybe something that would occur in base game too if I reach that point and not just a URM problem?
This is not related to URM. The code causing the error is not URM code.

Not sure if this is the proper forum for enhancement requests for this excellent mod so please excuse if it's not.
I would like to have an option to control the width of the textbox. Here's an example:
View attachment 2984044

The original textbox is fine except for the annoying background gradient. (The purple color behind the text.)

View attachment 2984046

The modified textbox is what I'm looking for but the text is too wide now to read easily and the text runs into the QUICK MENU on the right. I would like to be able to shorten the right left and right margins of the text so it would appear in three or four lines instead of two as it is now.
This is already on my todo list ;)

Universal Ren'Py Mod [1.15.2] How to set the language of other regions, I tried to change it myself but it was garbled
Seems the game forcefully replaces the font. Could be that it's fixed by changing the font through the accessibility menu (press A and select a different font). If that doesn't help I would like to know which game you're trying

Crashed in Corrupted Kingdoms v0.20.1

I'm sorry, but an uncaught exception occurred.

While running game code:
File "game/0x52/classes/main.rpy", line 203, in <module>
File "game/0x52/framework/01loader.rpy", line 34, in load_file
AttributeError: 'str' object has no attribute 'decode'

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

Full traceback:
File "0x52/classes/main.rpyc", line 199, in script
File "D:\COC and stuff\CorruptedKingdoms-0.20.1-pc\renpy\ast.py", line 1138, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "D:\COC and stuff\CorruptedKingdoms-0.20.1-pc\renpy\python.py", line 1122, in py_exec_bytecode
exec(bytecode, globals, locals)
File "game/0x52/classes/main.rpy", line 203, in <module>
File "game/0x52/framework/01loader.rpy", line 34, in load_file
AttributeError: 'str' object has no attribute 'decode'

Windows-10-10.0.22621 AMD64
Ren'Py 8.1.1.23060707
Corrupted Kingdoms 0.20.1
Fri Oct 6 19:06:18 2023
Seems like it's something just for this game. When there are other games causing the same issue I will create a fix.
 
5.00 star(s) 35 Votes