Assuming _game_mode-status is a dict and I know little of renpy's syntax. I am curious why you use keys() in
Python:
if "nude" in scribe._game_mode_status.keys()
It is creates a list (or dictkeys in python3) for no reason as you can use the in keyword directly on the dict, like
Python:
if "nude" in scribe._game_mode_status
Is it because of renpy?
It's a redundancy to prevent a possible error.
To use the optional game modes you have to download a new library of images to add to the ones in the game. This will eventually amount to a pretty large download. So to ease the burden and allow players some choice, I've set it up so you can download all the modes, just specific modes, just specific characters, or just specific modes for specific characters. This allows you to save download time and space if you so choose.
Essentially it works like this: When you start or load a game, renpy will check to see if you have the optional assets installed. If you do, then it adds an entry to the dictionary allowing you to turn it on. If you don't have them, or if you've deleted them since the last time you started the game, renpy will remove the key from the dictionary and simply not provide it as an option.
So when the image comes up, first renpy will check the dictionary to see if the key is there indicating the assets are available. Then it checks to see if you have that mode turned on. If you do, then it checks to make sure that the specified image is available and can be loaded. If all three of these checks clear, then it displays the image. If any of them fail, it skips the definition and moves down to the default.
It's a cautionary move that if I were coding this manually might make for extra work. But since the code is generated, I felt it was better to have an extra layer of protection to avoid possible exceptions.