WhileLoopTimeout is a ResoniteModLoader mod for Resonite that guards ProtoFlux While/AsyncWhile loops against runaway execution. The mod tracks how long a loop runs during a single engine tick and aborts execution once it exceeds a configurable timeout (default: 30 s), preventing world lockups while still allowing legitimate long-running work.
- Install ResoniteModLoader.
- Download the latest
WhileLoopTimeout.dllfrom this repo’s Releases page and place it in therml_modsfolder inside your Resonite install (e.g.,C:\Program Files (x86)\Steam\steamapps\common\Resonite\rml_mods). Create the folder if it does not exist. - (Optional) Tweak the Timeout config entry if you need a shorter or longer guard window.
- Launch Resonite and confirm the mod loads via the in-game logs if desired.
- Install the .NET 9 SDK.
dotnet build WhileLoopTimeout.slnauto-detectsResonitenext to the repo, the default Steam Windows path, then the default Steam Linux path. If the game lives elsewhere, pass-p:ResoniteAssembliesDir="/absolute/path/to/Resonite"so the build can findFrooxEngine.dll,Elements.Core.dll,Libraries/ResoniteModLoader.dll, andrml_libs/0Harmony.dll.- Set
CopyToMods=truewhen invokingdotnet buildto copy the compiled DLL into$(ResoniteAssembliesDir)/rml_modsafter each build. - Drop
ResoniteHotReloadLib.dll(andResoniteHotReloadLibCore.dll) into$(ResoniteAssembliesDir)/rml_libsand build with-p:EnableResoniteHotReloadLib=trueif you want the Dev Tool’s Hot Reload Mods panel to reload this mod without restarting Resonite. Leave the property unset on machines without the DLL.