Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Having two issues:

The main one is Lint is crashing Renpy (not when I launch the Game itself, but when I am trying to Lint). I would get an error message of:

While running game code: File “game/defines/inline_conditions.rpy”, line 483, in add_conditional_tags raise Exception(“ERROR: Closing {/else} tag without corresponding {else}”) Exception: ERROR: Closing {/else} tag without corresponding {else}

With a whole bunch of lines without telling me what Rpy file and what line this error was reported from, I searched for {/else} throughout the entire project. I did make some changes to add {/else} where appropriate that I somehow missed, but to no avail. Now if I build and launch a game, not getting this crash.

So I tried to use the lint and the Launcher (tried 8.2.4 and 8.3), which gives this exception. However, the custom.txt gives this line:

Exception when trying to add inline Python linting: cannot import name ‘parse_general_expression_ver1’ from ‘store’ (unknown location)

Can you share a sample of the way you're writing some of your inline conditions? I talked more with Nim above offsite and you may be experiencing the same issue.

jw “{if tempcallb}[tempchar]{else}[rw]{/else}, {if tempcallb}take a search party to find our missing {if len(templist)>1}wolves{else}wolf{/else}{if not tempcallb}secure the premise”

mc_t “”” An eldritch wave crashed into the wards!

    Some slipped through...

    {if eldbool}But I seemed to be fine{else}Ugh, the headache from that{/else}

“””

Ok, narrowed down here issues are occuring. Moved the TL folder to a temporary folder. Now it is no longer crashing.

Ok, it had problems with evaluating a dictionary, which I solved by turning it into a temporary bool. The erroneous error message (sorry, but it is misleading) was likely triggered by the same error occurring in the translations.

deleted the problem code from the translation files, and now it is no longer giving me that crash.

(1 edit)

Edit: lol I missed there were more responses as I had to step away and didn't refresh the page. Thank you for the updates! I'll leave my original response here anyway, and I do intend to see if I can have better line returns for errors.

Hmm, this seems fine to me. The custom.txt line is irrelevant; it's just checking if you've got the inline python tool installed and need linting for it.

How are you running the linter? From the launcher lint option, or from an in-game button? 8.2+ properly parses lines using the say_menu_filter, so you can run it from the launcher rather than the custom in-game button.

My other thought is possibly that you have an {else} split up across multiple monologue lines - these are considered individual lines when considering text tags, rather than one text block, so an {else} that was left open, then two newlines to begin the next line, will not continue the {else} tag.

I'll see if I can modify the linter to return an actual line to look at as well!

Thank you for the response. Basically, I should run Lint before I run Generate Translations. ;) Once I got rid of the TL folder temporarily, Lint was able to capture the lines that were causing a problem.

Is it possible to just have your Linter just ignore anything in TL folders? Because if it checks through the code and go “Hey, we are having a problem parsing the line”, the moment you fix it, you got to generate a new translation anyways because Renpy will change the translation id and require you to create a new one. :)

My thought for ignoring the TL folder might not be a good idea. As I have come up with a few in the last few hours where I made a tag mistake (a { or } got deleted by accident)