That’s very kind of you, thank you! A link to my website (https://kigyodev.com/) should be fine for Steam. Glad my tool has been helpful! :D
KigyoDev
Creator of
Recent community posts
I'm really sorry I missed your last comment!
I've personally been using Ren'Py 8 ever since the launch of this tool, but I downloaded 7.8.7 to test this, and I got it to work just fine in a fresh test project.
To make absolutely sure, is your wordcounter file inside of your project's game/ folder? (A screenshot of how your folder structure is set up might also help.)
I'll also admit Ren'Py not respecting your "character counts by speaking character" setting is very strange. Does it only do that if the wordcounter is there, or in general?
Thank you again for this awesome plugin!
Unfortunately, I can't seem to get it working with LayeredImageProxy. It always gives me one of two errors:
When using outline_transform() directly:
File "game/outline_shader.rpy", line 244, in <module> u_width float(width) ~~~~~^^^^^^^ TypeError: float() argument must be a string or a real number, not 'MultiBox'
When using a transform that makes use of outline_transform():
File "game/outline_shader.rpy", line 247, in <module> u_line_color Color(color).rgba ~~~~~^^^^^^^ TypeError: 'MultiBox' object is not iterable
I got these in a sample project simply by doing:
layeredimage eileen base:
always "eileen.png"
image eileen = LayeredImageProxy("eileen base", [outline_transform()])
I'm happy to provide more detail in case there's a specific part of the error message that would help!
Ohhh, please note that wordcounter_hidden_files only hides those specific file statistics from your view - their word counts will still be included in the character-specific and overall totals.
To exclude unused labels entirely, you'd want to look at script_ignore_path instead. Unlike wordcounter_hidden_files, this one makes sure the words won't be counted at all. (Otherwise, they work exactly the same when it comes to file name matching.)
- Specifically, you'd want to put your unused script parts in a separate file, let's say "wip_route.rpy"
- You can then set script_ignore_path = ["wip_route.rpy"]
- Or script_ignore_path = ["wip"]
- Depending on your preferences, you can either name specific files or broadly exclude all files mentioning a certain keyword
Likewise, I have no idea if this would fully resolve your problem, but maybe simply adding ".rpyc" to script_ignore_path would do the trick for the second issue? I've personally never run into this issue, so I'm unfortunately not sure how to validate it.
Thank you so much for your interest! I'm so glad you enjoyed the stream and had a good time with SpookY2K!
Regarding your question, the two endings that are already in the Demo will more or less stay as they are. We might decide to add more CGs or do minor edits, but no major story changes/additions are planned at the moment.
I'm not sure what's going on with my Ren'Py right now, but since trying 8.4.1 and going back to 8.3.7 due to various errors, all my save files either jump back to the very start of a label, or immediately crash upon being loaded. One of the errors I get when loading a save is:
File "game/script/system/plugins/inline_conditions.rpy", line 544, in check_for_seen_conditional if store.just_seen_conditional: AttributeError: 'StoreModule' object has no attribute 'just_seen_conditional'
It's the type of crash that doesn't just display an error screen, but fully shuts down the game and opens traceback.txt
just_seen_conditional is defaulted correctly, and I've (so far) used inline conditions only in one single line of my game, so I have no idea what's going wrong here. When I remove inline conditions, other variables of mine cause issues as well, but they don't fully shut down the game, so this seems to be the most "severe" one. I'd appreciate any help!
NVM: I did manage to restore my old .rpyc files and all the crash problems have been resolved. While I still don't get why this would affect defaulted variables, this is no longer really problem.
Alright, now I've successfully caused a new problem:

So far, truncate_text runs fine until it actually has to cut something off. Whenever I set ysize or a surrounding fixed to a value smaller than what could contain the full text, it throws the error above. For example:
truncate_text last_phrase text_size 20 ysize 30
Here, last_phrase gets information attached to each save file and is defined on the save screen:
$ last_phrase = FileJson(slot, "last_line", empty="", missing=" ")
While "last_line" is obtained like this:
def the_lastline(d):
mylast_line = getattr(store, '_last_raw_what', '',)
if not mylast_line:
mylast_line = getattr(store, '_last_choice_what', '',)
if mylast_line == "ending":
line_take = str(len(true_endings))+ _("/14 Rehabilitated")
else:
line_take = renpy.substitute(renpy.filter_text_tags(mylast_line, allow=[]))
line_take = line_take.replace("\n", "")
line_take = line_take.replace("\\", "")
line_take = "\"" + line_take + "\""
if line_take == "\"\"":
line_take = ""
d["last_line"] = line_take I don't really know what's going on here, but I could imagine "_last_raw_what" is the issue (getting dialogue text instead of "normal" text).
Any idea for a workaround to make it compatible with truncate_text?
Thank you for reporting this! Unfortunately, I won't be able to resolve this without a major rewrite of the plugin's code, I'm sorry...
The code pays attention to blank spaces after each period or comma, so as long as you avoid those within the shader tag, it should always be fine - not just temporarily.
Wow, thank you so much for all your kind words! I’m glad to hear you’ve enjoyed everything so far and that the love and care I put into this game is noticed and appreciated. :D
I’ll keep working hard and hope you’ll enjoy the coming routes as well. Every character is important to me, so I’m definitely hoping to give Absen and Sed some chances to shine soon. Thank you again!!
This should be doable if you add
or renpy.get_statement_name() == "say-nvl"
to the bigger conditional inside the "add_speech_pauses" function. So it should look like:
def add_speech_pauses(text_input): if prev_filter: text_input = prev_filter(text_input) if persistent.speech_pauses is not True or preferences.text_cps == 0 or renpy.get_statement_name() == "say-nvl": return text_input return speech_pause_adder(text_input)
Thank you for considering to support me! Sep 2022 is just when that post was originally created (the link always stays the same), but the Beta is being updated every month with new content.
And an Android port is definitely something I’ll consider in the future! It could be tricky to make the escape rooms work on mobile resolutions, but I can at least try :D
Sadly, that didn't change anything. It still throws the same error (just with different line numbers, due to the few that were added).
I can only get the game to boot up by removing the "main_menu" AND "game_menu" part from RESTORE_FOCUS_SCREENS.
It also works if I remove [layer "game_menu"] from my "main_menu" screen and do:
define pad_config.RESTORE_FOCUS_SCREENS = [ ("main_menu", "game_menu"), "controller_remap" ]
So it seems like it doesn't really care what I put in the tuple?
So I finally got around to testing this out! Unfortunately, I immediately ran into a crash:
I'm sorry, but an uncaught exception occurred. While running game code: File "game/script/system/plugins/controller_support/controller_config.rpy", line 313, in script init 999 python in pad_config: File "game/script/system/plugins/controller_support/controller_config.rpy", line 313, in script init 999 python in pad_config: File "game/script/system/plugins/controller_support/controller_config.rpy", line 316, in <module> FOCUS_MANAGERS = [FocusManager(x) for x in RESTORE_FOCUS_SCREENS] File "game/script/system/plugins/controller_support/controller_config.rpy", line 316, in <lambda> FOCUS_MANAGERS = [FocusManager(x) for x in RESTORE_FOCUS_SCREENS] File "game/script/system/plugins/controller_support/controller_config.rpy", line 316, in <listcomp> FOCUS_MANAGERS = [FocusManager(x) for x in RESTORE_FOCUS_SCREENS] File "game/script/system/plugins/controller_support/controller_functions.rpy", line 339, in __init__ self.is_showing = renpy.get_screen(self.screen) Exception: Unknown layer 'game_menu'.
I'm using a custom layer for my in-game menus (including the main menu), and that seems to be causing a problem.




















