diff --git a/QSB/Utility/Deterministic/DeterministicManager.cs b/QSB/Utility/Deterministic/DeterministicManager.cs
index d4bd4b01..d5a5a15b 100644
--- a/QSB/Utility/Deterministic/DeterministicManager.cs
+++ b/QSB/Utility/Deterministic/DeterministicManager.cs
@@ -24,7 +24,7 @@ public static class DeterministicManager
if (!_patched)
{
- _harmony.PatchAll(typeof(OWRigidbodyPatches));
+ _harmony.PatchAll(typeof(DeterministicRigidbodyPatches));
_patched = true;
}
};
diff --git a/QSB/Utility/Deterministic/OWRigidbodyPatches.cs b/QSB/Utility/Deterministic/DeterministicRigidbodyPatches.cs
similarity index 93%
rename from QSB/Utility/Deterministic/OWRigidbodyPatches.cs
rename to QSB/Utility/Deterministic/DeterministicRigidbodyPatches.cs
index 3005321e..e3eaa585 100644
--- a/QSB/Utility/Deterministic/OWRigidbodyPatches.cs
+++ b/QSB/Utility/Deterministic/DeterministicRigidbodyPatches.cs
@@ -4,9 +4,16 @@ using UnityEngine;
namespace QSB.Utility.Deterministic;
+///
+/// used to capture the true path of a rigidbody before it unparents
+///
[HarmonyPatch(typeof(OWRigidbody))]
-public static class OWRigidbodyPatches
+public static class DeterministicRigidbodyPatches
{
+ ///
+ /// changing the parent has to be deferred until Start to preserve the sibling index.
+ /// for example, anglerfish bodies all share the same parent, so unparenting one clobbers the sibling index of all the others.
+ ///
private static readonly Dictionary _setParentQueue = new();
[HarmonyPrefix]