something like this?
# store this file as e.g. loadcorrections.rpy in the game/ directory # I only user the special label after_load (https://www.renpy.org/doc/html/label.html#special-labels) for the examples # as this one in nicely encapsulated with a specific trigger condition: it is run once when a saved game is loaded # add it to the existing after_load in script.rpy:161 with e.g. "call variable_check_examples" # some of the examples will introduce variables prefixed with gry__, they will pollute the saves you are using to play # around but should not break anything, even after removing the script from your dev build # this PoC is based on itch's public version 0.2.3.14 label variable_check_examples: # simple example, as minimalistic as possible, to show the usage # it uses one of the early variables in the game, try it with loading a game safed before and after 'label s2e1satevtexts' happened if hasattr(renpy.store, 'sfpts'): "You texted with Saffryn and she gave you [sfpts] stars." else: "Not even played until the first evening? Or ignored all texts?" # more conplex, using again the variable above # assumption: later on you need to know which texts from Saffryn the player read # but you cannot decide this directly as the text trigger variable (sftxt) is reused (set to true again in 'label s2e2eve') # here you can combine the state of more than one variable to pinpoint the save game progress # you added the missing variables to the normal game flow scripts ("default gry__sf_1st_text_read = False", in the fitting label "$ gry__sf_1st_text_read = True") # but you need to fix it in existing saves, too if not hasattr(renpy.store, 'sftxt'): "S2E1/S2E1.rpy:570, do nothing" else: "at least reached the texting label of the first evening" if hasattr(renpy.store, 'sfpts'): "the first text from Saffryn was not ignored" "setting the correct value for the tracking variable gry__sf_1st_text_read" $ gry__sf_1st_text_read = True # assumption: you need to know if the player tried to enter the book nine times and the actual script reads now (S2E1/S2E1.rpy starting at 484): ## # "Text Gillie": # default gry__little_shit_barely_missed = False # if s2retries == 9: # $ gry__little_shit_barely_missed = True # #Aurum ponders for a minute while sitting on the chair he was just thrown into..again. # scene s2e1read19 # stop music fadeout 3.0 # "This isn't working... but I have a feeling that I'm not really in any mortal danger with her." ## if not hasattr(renpy.store, 'gry__little_shit_barely_missed'): # just to be sure that the variable _is_ set default gry__little_shit_barely_missed = False if s2retries == 9: # this variable is always set, already initialised with 'default s2retries = 2' $ gry__little_shit_barely_missed = True # and one more, here you had for whatever reason to retcon even more and the player has to decide if something happened # again fixed in the fixed release within the game flow but you need to set the correct values in existing saves # to nag the player only once and only in unpatched save games you need to add another tracking variable. # I used 'label s2e2firstpatrol' as example, in the corrected release you have something like ## # s "We trust you can remain professional." # s "You can, can't you?" # # retcon starts # default gry__mc_professional = False # menu: # "Yes": # $ gry__mc_professional = True # $ gry__mc_professional_loadcorrection_tracker = True # note: no default! # "I'll try my best": # $ gry__mc_professional = False # redundant actually, but whatever # $ gry__mc_professional_loadcorrection_tracker = True # note: no default! # # retcon ends, remainder of the original scene # # [..] # $ mainquest = 4 # # [..] ## # now you'll only have to ask the player once in after_load if mainquest >= 4 and not hasattr(renpy.store, 'gry__mc_professional_loadcorrection_tracker'): "Serafina asked you if you can remain professional around half-naked security members." menu: "You replied" "Yes": $ gry__mc_professional = True $ gry__mc_professional_loadcorrection_tracker = True "I'll try my best": $ gry__mc_professional = False $ gry__mc_professional_loadcorrection_tracker = True return