Mod Ren'Py Our Red String JDMOD [0.12.1.2.a] [JohnDupont]

5.00 star(s) 2 Votes

Sherka

Member
Oct 1, 2017
242
1,316
Hey, so I have a strange problem, it happened to me even with the mod in GGGB, when I start a new game it doesn't detect any readed dialogue, so I cannot skip, but if I load a game already saved before installing the mod it does recognizes the dialogs as readed, but it is as if it did not have the mod. Any solution?
From a new game:
Con mod.png
A load from a game before the mod:
Screenshot_1.png
 

JohnDupont

Active Member
Modder
May 26, 2017
808
2,712
Hey, so I have a strange problem, it happened to me even with the mod in GGGB, when I start a new game it doesn't detect any readed dialogue, so I cannot skip, but if I load a game already saved before installing the mod it does recognizes the dialogs as readed, but it is as if it did not have the mod. Any solution?
From a new game:
View attachment 1566567
A load from a game before the mod:
View attachment 1566569
Settings → Skip unseen text should be a quick fix.
 

Sherka

Member
Oct 1, 2017
242
1,316
Settings → Skip unseen text should be a quick fix.
I know that, but the point of skipping text already read is that if you come to a dialogue unseen, it stops, marking that you have not read it, with skipping unseen text, I risk skipping a dialogue that has not been read. That was the point of why I installed the mod, use the in-game walkthrough to find out if I have avoided better answers and explore the game a lot more
 

JohnDupont

Active Member
Modder
May 26, 2017
808
2,712
I know that, but the point of skipping text already read is that if you come to a dialogue unseen, it stops, marking that you have not read it, with skipping unseen text, I risk skipping a dialogue that has not been read. That was the point of why I installed the mod, use the in-game walkthrough to find out if I have avoided better answers and explore the game a lot more
Since the JDMOD uses its own script rather than replacing the original one, what you've seen during your unmodded playthrough doesn't matter. Both versions are independant.
 

ArcherHades46

Newbie
Jan 13, 2022
73
61
The question is, does anyone have a save of the regular versions? The game crashed because of the antivirus. Can you share it?
 

aba01

Newbie
Feb 20, 2018
72
15
"What happens next is part of the game"
It's no crash, the error is part of the game. If I remember correct, you need to press the buttons below (rollback, ignore, reload, ...)
When I check the Gallery it has so many more scenes :(
 

Solomon Grundy

Active Member
Nov 25, 2021
553
1,344
When I check the Gallery it has so many more scenes :(
You seem to not be understanding what people are telling you. The game did not crash and it isn't over. The "error" screen you're seeing is part of the game. Pick the different options at the bottom and see what happens, the game will give you some hints on what to pick next to move forward with the story.
 

JasperJunot

New Member
Jan 16, 2018
1
1
can someone please provide me an installation guide. patreon is geoblocked in my country. so i cant access the page. please give a guide

JDMOD: How to Install
Like Ren'Py, JDMODs are compatible with Windows, MAC, Linux and Android but, in order to be used on the later, they need to be installed before .

To install a JDMOD, follow these two simple steps:
  • Step 1 : Extract the .7z file.
  • Step 2 : Drop the extracted folder, named "JDMOD", in the folder named "game". The latter is in the same folder as the .exe you use to launch the game. For MAC, you can find it in "Game .app\Contents\Resources\autorun" .



If you executed the instructions correctly:



You can uninstall a JDMOD by deleting the folder named "JDMOD". I recommend doing it before installing a new version.
 
  • Like
Reactions: JohnDupont

jmacks928

New Member
Oct 17, 2020
7
12
I just encountered the Ren'Py error shown below. I searched the thread and this doesn't seem to be a known error. Anyone else encountered this?

I tried decompiling everyting with UnRen (v0.91) but it won't decompile anything under the JDMOD folder so I couldn't look at the code to figure out what might be wrong.

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

While running game code:
Exception: Switch could not choose a displayable.

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

Full traceback:
  File "game/JDMOD/scripts/story/chapter9_axel.rpyc", line 527, in script
    ÷ 㽗ʸɨB<
  File "renpy/ast.py", line 1397, in execute
    renpy.exports.with_statement(trans, paired)
  File "renpy/exports.py", line 1646, in with_statement
    return renpy.game.interface.do_with(trans, paired, clear=clear)
  File "renpy/display/core.py", line 2610, in do_with
    clear=clear)
  File "renpy/display/core.py", line 3101, 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 3611, in interact_core
    self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)
  File "renpy/display/core.py", line 2441, in draw_screen
    renpy.config.screen_height,
  File "render.pyx", line 492, in renpy.display.render.render_screen
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 777, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/transition.py", line 367, in render
    bottom = render(self.old_widget, width, height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 777, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 777, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/transform.py", line 933, in render
    return transform_render(self, width, height, st, at)
  File "accelerator.pyx", line 116, in renpy.display.accelerator.transform_render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/image.py", line 501, in render
    return wrap_render(self.target, width, height, st, at)
  File "renpy/display/image.py", line 307, in wrap_render
    rend = render(child, w, h, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 777, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 339, in render
    surf = render(self.child, width, height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 339, in render
    surf = render(self.child, width, height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1358, in render
    self.update(st, at)
  File "renpy/display/layout.py", line 1336, in update
    child, redraw = self.function(st, at, *self.args, **self.kwargs)
  File "renpy/display/layout.py", line 1416, in condition_switch_show
    return condition_switch_pick(switch), None
  File "renpy/display/layout.py", line 1412, in condition_switch_pick
    raise Exception("Switch could not choose a displayable.")
Exception: Switch could not choose a displayable.

Windows-10-10.0.19041
Ren'Py 7.4.4.1439
Our Red String v0.9
Fri Mar 25 16:43:18 2022
 

JohnDupont

Active Member
Modder
May 26, 2017
808
2,712
I just encountered the Ren'Py error shown below. I searched the thread and this doesn't seem to be a known error. Anyone else encountered this?

I tried decompiling everyting with UnRen (v0.91) but it won't decompile anything under the JDMOD folder so I couldn't look at the code to figure out what might be wrong.

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

While running game code:
Exception: Switch could not choose a displayable.

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

Full traceback:
  File "game/JDMOD/scripts/story/chapter9_axel.rpyc", line 527, in script
    ÷ 㽗ʸɨB<
  File "renpy/ast.py", line 1397, in execute
    renpy.exports.with_statement(trans, paired)
  File "renpy/exports.py", line 1646, in with_statement
    return renpy.game.interface.do_with(trans, paired, clear=clear)
  File "renpy/display/core.py", line 2610, in do_with
    clear=clear)
  File "renpy/display/core.py", line 3101, 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 3611, in interact_core
    self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)
  File "renpy/display/core.py", line 2441, in draw_screen
    renpy.config.screen_height,
  File "render.pyx", line 492, in renpy.display.render.render_screen
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 777, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/transition.py", line 367, in render
    bottom = render(self.old_widget, width, height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 777, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 777, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/transform.py", line 933, in render
    return transform_render(self, width, height, st, at)
  File "accelerator.pyx", line 116, in renpy.display.accelerator.transform_render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/image.py", line 501, in render
    return wrap_render(self.target, width, height, st, at)
  File "renpy/display/image.py", line 307, in wrap_render
    rend = render(child, w, h, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 777, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 339, in render
    surf = render(self.child, width, height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 339, in render
    surf = render(self.child, width, height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1358, in render
    self.update(st, at)
  File "renpy/display/layout.py", line 1336, in update
    child, redraw = self.function(st, at, *self.args, **self.kwargs)
  File "renpy/display/layout.py", line 1416, in condition_switch_show
    return condition_switch_pick(switch), None
  File "renpy/display/layout.py", line 1412, in condition_switch_pick
    raise Exception("Switch could not choose a displayable.")
Exception: Switch could not choose a displayable.

Windows-10-10.0.19041
Ren'Py 7.4.4.1439
Our Red String v0.9
Fri Mar 25 16:43:18 2022
1. Your issue is similar this one and this one.

2. The line is show lenabra at rig with long. It refers to this image:
Python:
image lenabra = Composite(
    (640, 1080),
    (0, 0),"lenanude.webp", # BASE BODY
    (0, 0), ConditionSwitch( # MAKEUP
        "lena_makeup == 0", Null(),
        "lena_makeup == 1", "lena_eyeshadow1.webp",
        "lena_makeup == 2", "lena_eyeshadow2.webp"),
    (0, 0), ConditionSwitch( # NECKLACE
        "lena_necklace == 0", Null(),
        "lena_necklace == 'choker'", "lena_choker.webp",
        "lena_necklace == 'seymour'", "lena_sy_collar.webp"),
    (0, 0), ConditionSwitch( # PIERCING1
        "lena_piercing1 == False", Null(),
        "lena_piercing1 == True", "lena_navel1.webp"),
    (0, 0), ConditionSwitch( # PIERCING2
        "lena_piercing2 == False", Null(),
        "lena_piercing2 == True", "lena_navel2.webp"),
    (0, 0), ConditionSwitch( # TATOO 1
        "lena_tattoo1 == False", Null(),
        "lena_tattoo1 == True", "lena_tattoo1.webp"),
    (0, 0), ConditionSwitch( # TATOO 2
        "lena_tattoo2 == False", Null(),
        "lena_tattoo2 == True", "lena_tattoo2.webp"),
    (0, 0), ConditionSwitch( # TATOO 3
        "lena_tattoo3 == False", Null(),
        "lena_tattoo3 == True", "lena_tattoo3.webp"),
    (0, 0), ConditionSwitch( # EARRINGS
        "lena_look != 'charisma'", Null(),
        "lena_look == 'charisma'", "lena_charisma1_earrings.webp"),
    (0, 0), ConditionSwitch( # UNDERWEAR
        "lena_look == 1", "lenacomfy.webp",
        "lena_look == 2", "lenabra.webp",
        "lena_look == 3", "lenabra2.webp",
        "lena_look == 'sexy'", "lenanobra2.webp",
        "lena_look == 'sexy1'", "lenabra2.webp",
        "lena_look == 'underwear2'", "lena_underwear2.webp",
        "lena_look == 4", "lenabra2.webp",
        "lena_look == 'gold'", "lena_gold.webp",
        "lena_look == 'charisma'", "lenanobra2.webp",
        "lena_look == 'wits'", "lenabra2.webp",
        "lena_look == 'athletics'", "lenabra2.webp",
        "lena_look == 'lust'", "lena_lust1_bra.webp",
        "lena_look == 'black_lingerie2'", "lena_lingerie1b.webp",
        "lena_look == 'black_lingerie3'", "lena_lingerie1c.webp",
        "lena_look == 'black_lingerie'", "lena_lingerie1a.webp"),
    (0, 0), ConditionSwitch( #FACES
        "flena == 'sad'", "lenasad.webp",
        "flena == 'blush'", "lenablush.webp",
        "flena == 'cry'", "lenacry.webp",
        "flena == 'drama'", "lenadrama.webp",
        "flena == 'evil'", "lenaevil.webp",
        "flena == 'flirt'", "lenaflirt.webp",
        "flena == 'flirtevil'", "lenaflirt.webp",
        "flena == 'flirtshy'", "lenaflirtshy.webp",
        "flena == 'happy'", "lenahappy.webp",
        "flena == 'mad'", "lenamad.webp",
        "flena == 'serious'", "lenaserious.webp",
        "flena == 'shy'", "lenashy.webp",
        "flena == 'slut'", "lenaslut.webp",
        "flena == 'slutshy'", "lenaslutshy.webp",
        "flena == 'smile'", "lenasmile.webp",
        "flena == 'surprise'", "lenasurprise.webp",
        "flena == 'worried'", "lenaworried.webp",
        "flena == 'n'", "lena.webp")
    )
I wasn't able to replicate this error specifically.

3. On my playthrough, I encountered a similar error when Lena arrives at Axel's studio. The game tries to show ian at left but Ian's look being set to 'n' isn't a condition for the image.

I was able to replicate this specific bug in the base game. Therefore, as far as I'm aware, this is part of the base game and should be solved my EvaKiss.
Code:
```
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/scripts/story/chapter9_axel.rpy", line 135, in script
    i "Lena."
Exception: Switch could not choose a displayable.

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

Full traceback:
  File "game/JDMOD/scripts/story/chapter_9.rpyc", line 15, in script call
    86�P���j#O�7�9׼����kn��k�zW��o�yt7��Q������贱�iΟ��
  File "game/scripts/story/chapter9_axel.rpy", line 135, in script
    i "Lena."
  File "renpy/ast.py", line 715, in execute
    renpy.exports.say(who, what, *args, **kwargs)
  File "renpy/exports.py", line 1393, in say
    who(what, *args, **kwargs)
  File "renpy/character.py", line 1205, in __call__
    self.do_display(who, what, cb_args=self.cb_args, dtt=dtt, **display_args)
  File "renpy/character.py", line 871, in do_display
    **display_args)
  File "renpy/character.py", line 621, in display_say
    rv = renpy.ui.interact(mouse='say', type=type, 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 3101, 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 3611, in interact_core
    self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)
  File "renpy/display/core.py", line 2441, in draw_screen
    renpy.config.screen_height,
  File "render.pyx", line 492, in renpy.display.render.render_screen
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 777, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 777, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 777, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/transform.py", line 933, in render
    return transform_render(self, width, height, st, at)
  File "accelerator.pyx", line 116, in renpy.display.accelerator.transform_render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/image.py", line 501, in render
    return wrap_render(self.target, width, height, st, at)
  File "renpy/display/image.py", line 307, in wrap_render
    rend = render(child, w, h, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 777, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 339, in render
    surf = render(self.child, width, height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 339, in render
    surf = render(self.child, width, height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1358, in render
    self.update(st, at)
  File "renpy/display/layout.py", line 1336, in update
    child, redraw = self.function(st, at, *self.args, **self.kwargs)
  File "renpy/display/layout.py", line 1416, in condition_switch_show
    return condition_switch_pick(switch), None
  File "renpy/display/layout.py", line 1412, in condition_switch_pick
    raise Exception("Switch could not choose a displayable.")
Exception: Switch could not choose a displayable.
```
 

jmacks928

New Member
Oct 17, 2020
7
12
1. Your issue is similar this one and this one.
You don't have permission to view the spoiler content. Log in or register now.
I wasn't able to replicate this error specifically.

3. On my playthrough, I encountered a similar error when Lena arrives at Axel's studio. The game tries to show ian at left but Ian's look being set to 'n' isn't a condition for the image.

I was able to replicate this specific bug in the base game. Therefore, as far as I'm aware, this is part of the base game and should be solved my EvaKiss.
Thank you for looking in to this. Do you by chance know a way to get past this error? My game is stuck here because none of the options on the Traceback screen work except Rollback which simply puts me back to right before the error occurs.
 

JohnDupont

Active Member
Modder
May 26, 2017
808
2,712
Thank you for looking in to this. Do you by chance know a way to get past this error? My game is stuck here because none of the options on the Traceback screen work except Rollback which simply puts me back to right before the error occurs.
I can think of 3 ways, from easiest to hardest:
  1. use the Ignore option as many times as needed: The error will keep happening as long as the faulty image is part of the scene but ignoring will get you past the scene.
  2. use the console (Shift + O) to check which variable is causing the error: Type lena_makeup then Enter and check if its value is a condition for the image in the code above. Keep going with all the variables until you identify the problem then change the faulty variable's value. My guess is flena == 'sad' is causing this issue.
  3. do solution 2 but, instead of changing the variable, add the condition to the image's code.
If you choose 2 or 3, please report it on EvaKiss' Discord. It'll help them solve the issue for everyone.
 
  • Like
Reactions: jmacks928
5.00 star(s) 2 Votes