From 83c0039d52f6f67dcda386b45152fe5dd8f5b7d5 Mon Sep 17 00:00:00 2001 From: iisaev Date: Sat, 24 Oct 2026 11:29:07 +0200 Subject: [PATCH] Root nodes join through ModRoot.AddDeferred, so a reload that unloads the mod first never hands Godot a freed node Co-Authored-By: Claude Opus 5.5 --- src/AudioModInitializer.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/AudioModInitializer.cs b/src/AudioModInitializer.cs index 6f9517d..acf3747 100644 --- a/src/AudioModInitializer.cs +++ b/src/AudioModInitializer.cs @@ -49,8 +49,8 @@ namespace Cthangover.Mods.Audio // setting up autoload children, so a direct AddChild is rejected. // Deferred calls run in FIFO order, which keeps AudioService ahead // of MusicPlayerBehaviour — its OnReady resolves AudioService. - root.CallDeferred("add_child", new AudioService { Name = "AudioService" }); - root.CallDeferred("add_child", new MusicPlayerBehaviour { Name = "MusicPlayer" }); + ModRoot.AddDeferred(new AudioService { Name = "AudioService" }); + ModRoot.AddDeferred(new MusicPlayerBehaviour { Name = "MusicPlayer" }); } private static void EnsureEventSubscriptions()