I don't know if this will be of help, but if you don't want to use FOSE, perhaps a OnLoad begin block is what you need? Or is it a global variable in a quest?
OnLoad is for when the model renders (even if disabled). Without FOSE, a script could be made to run all the way through and only once per save load using a "Constant" global set to 0 by default as a check.
scn RunOnceAfterLoadingSaveQuestSCPTBegin GameMode If bDoOnceGLOB Return ; Minimize resource consumption Else Set bDoOnceGLOB to 1 ;Do stuff EndIfEnd
Since the "Constant" global's value won't persist in a save, it will revert to 0 and ensure everything happens, but only once per save load.
If you opt to go the FOSE route, I'd recommend GetGameLoaded rather than GetGameRestarted as you'll probably want your script to run after loading any given save to ensure things aren't botched by saved data if one loads multiple saves between game restarts.