[SOLVED] Whoops. Open Isadora File Loop
-
- Open a fresh file
- Go to Isadora > Isadora Preferences/Settings > General > After Loading File and select "Don't Activate Any Scene"
- Quit Isadora to make this preference change stick
- Open your problematic file
- Pause the engine
- Go into the Scene with the issue
- Disconnect the problem actors or adjust their settings.
By the way, if you're very paranoid and want a sure-fire way to prevent this kind of thing in the future, the setup pictured below will allow you to use an external text file to Gate off dangerous actors within your patch, meaning you can control whether or not those actors are executed using a method that exists outside of Isadora itself.
patch-external-file-gate-2024-08-13-4.0.zip
Here's how it works:
- Place a Gate and a small Trigger Delay between Enter Scene Trigger and the thing you want to trigger (the delay could be lower, 0.01 or so if you want, but 0.1 is already not very noticeable to humans in most circumstances).
- Make the Enter Scene Trigger actor trigger the "read" input on a Data Array actor before triggering the Gate (because of the Trigger Delay)
- The Data Array will check for a text file next to the Isadora file with the given name.
- The only thing in the text file is a single line that either has a '0' or a '1'.
- If the text file has '1', then the Gate will be open and the trigger will pass through.
- If the text file has '0', then the Gate will be closed and the trigger will not pass through.
Using this method lets you control a Gate upon entering a Scene by editing the external text file to either have '0' or '1' so that not having time to pause the engine isn't an issue.
The other solution is to start every file with a "Bookend" Scene that is completely blank to ensure you can never get stuck. (Though this doesn't work if you have Isadora Preferences set up to reload the same Scene that was last active upon launching a file. If it's for an installation or needs to run automatically, you can put Enter Scene Trigger > Trigger Delay 3 or 5 seconds > Jump +1 so that you'd have time to pause the engine if it requires manual intervention, but so it still can do its automated process after launching.)
-
@woland
Thanks L, that first method sorted it, although pausing the engine didn't work, but I edited the patch in blind mode. I knew there would be a way around. Maybe the default setting could be changed to 'None' ... feature request?? -
@dbini said:
Maybe the default setting could be changed to 'None' ... feature request??
I don't think this is something we want to change actually. Most people want their first Scene to start up immediately when they launch the program, especially installations. I think changing the default behavior here specifically to address the edge case of when someone has accidentally programmed a loop would serve fewer users than keeping this particular setting the way it is.
-
@dbini said:
although pausing the engine didn't work
You probably could have used that method to launch without activating a Scene then use the keyboard shortcut or menu option to create a new Scene and then paused it from that new, blank Scene. I didn't think of it before now though.
-
@woland
The pause engine thing worked with no scene active, but when i activated the offending scene, it did the open/close thing anyway, despite the engine being paused.
And, sorry I wasn't clear with the feature request - i meant within the Open Isadora File actor - I think the Close Mode input should default to 'none' so that when you trigger the trigger, it doesn't immediately close the current file, unless you really want it to. It's a bit scary testing the actor and the whole window disappears. at first i thought it was a crash, but then no crash report popped up. -
@dbini said:
And, sorry I wasn't clear with the feature request - i meant within the Open Isadora File actor - I think the Close Mode input should default to 'none' so that when you trigger the trigger, it doesn't immediately close the current file, unless you really want it to. It's a bit scary testing the actor and the whole window disappears. at first i thought it was a crash, but then no crash report popped up.
Ah, that's a very reasonable request. I'll log this tomorrow. Also, the actor still operating when the engine is paused sounds like a bug. I'll investigate that too.
-
@woland Thanks L,great solutions. I'll just add my 2 cents here. What about a "Pause engine" key combo at startup ? A little bit like a recovery mode on mac os..... Mayb eit is completely stupid.
-
I just found another solution: Change the name of the actual target file so that the actor throws up an error when it is triggered. Simple. (I have most of my best ideas whilst in the shower)
-
@dbini Simply genius. I would have never thought of that.
-
@armando said:
What about a "Pause engine" key combo at startup ? A little bit like a recovery mode on mac os..... Mayb eit is completely stupid.
Actually, I realized this is completely unnecessary and that there's an even simpler solution than my original ones.
Pause Engine is a program-wide action, it's not file-specific. This means you can:
- Open a different file (or no file).
- Pause the engine.
- Open the problem file.
- The engine is paused so nothing in the problem file will execute.
-
@dbini said:
The pause engine thing worked with no scene active, but when i activated the offending scene, it did the open/close thing anyway, despite the engine being paused.
I can't seem to reproduce this behavior. Could you please try to make it happen again and provide me with more detailed info so I can log this if it is a bug?
-
@woland - ticket submitted
-
Great, your steps caused it for me and I've logged it. Thanks for the assist :)