diff --git a/.Experimental/CVRLuaToolsExtension/LuaToolsExtension/Extensions/CVRLuaClientBehaviourExtensions.cs b/.Experimental/CVRLuaToolsExtension/LuaToolsExtension/Extensions/CVRLuaClientBehaviourExtensions.cs
index 5dc7b86..8c07542 100644
--- a/.Experimental/CVRLuaToolsExtension/LuaToolsExtension/Extensions/CVRLuaClientBehaviourExtensions.cs
+++ b/.Experimental/CVRLuaToolsExtension/LuaToolsExtension/Extensions/CVRLuaClientBehaviourExtensions.cs
@@ -1,7 +1,6 @@
using ABI.CCK.Components;
using ABI.Scripting.CVRSTL.Client;
using System.Diagnostics;
-using ABI_RC.Scripting.Persistence;
using MTJobSystem;
using UnityEngine;
@@ -109,11 +108,8 @@ public static class CVRLuaClientBehaviourExtensions
behaviour._startupMessageQueue.Clear(); // will be repopulated
behaviour.LogInfo("[CVRLuaToolsExtension] Resetting script...\n");
- // remove the script from the persistence manager, as the storage needs to be reinitialized
- PersistenceManager.HandleUnsubscribe(behaviour.Storage, behaviour.script, behaviour.Context.ParentContent.ContentType, behaviour.Context.AssetID);
-
behaviour.script = null;
- behaviour.script = LuaScriptFactory.ForLuaBehaviour(behaviour, boundObjectEntries, behaviour.gameObject, behaviour.transform);
+ behaviour.script = LuaScriptFactory.ForLuaBehaviour(behaviour, boundObjectEntries, behaviour.gameObject, behaviour.transform, PersistentDataPath);
behaviour.InitTimerIfNeeded(); // only null if crashed prior
behaviour.script.AttachDebugger(behaviour.timer); // reattach the debugger
diff --git a/ASTExtension/Main.cs b/ASTExtension/Main.cs
index 461dc16..f7b7115 100644
--- a/ASTExtension/Main.cs
+++ b/ASTExtension/Main.cs
@@ -121,8 +121,7 @@ public class ASTExtensionMod : MelonMod
private void OnLocalAvatarLoad()
{
- _currentAvatarSupported = FindSupportedParameter(out string parameterName);
- if (!_currentAvatarSupported)
+ if (!FindSupportedParameter(out string parameterName))
return;
if (!AttemptCalibrateParameter(parameterName, out float minHeight, out float maxHeight, out float modifier))
diff --git a/ConfigureCalibrationPose/ConfigureCalibrationPose.csproj b/ConfigureCalibrationPose/ConfigureCalibrationPose.csproj
deleted file mode 100644
index 5a8badc..0000000
--- a/ConfigureCalibrationPose/ConfigureCalibrationPose.csproj
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
- YouAreMineNow
-
-
diff --git a/ConfigureCalibrationPose/Main.cs b/ConfigureCalibrationPose/Main.cs
deleted file mode 100644
index 179f7e4..0000000
--- a/ConfigureCalibrationPose/Main.cs
+++ /dev/null
@@ -1,543 +0,0 @@
-using System.Reflection;
-using ABI_RC.Core.Player;
-using ABI_RC.Systems.IK;
-using ABI_RC.Systems.IK.SubSystems;
-using ABI_RC.Systems.InputManagement;
-using ABI_RC.Systems.Movement;
-using HarmonyLib;
-using MelonLoader;
-using RootMotion.FinalIK;
-using UnityEngine;
-
-namespace NAK.ConfigureCalibrationPose;
-
-public class ConfigureCalibrationPoseMod : MelonMod
-{
- #region Enums
-
- private enum CalibrationPose
- {
- TPose,
- APose,
- IKPose,
- BikePose,
- RacushSit,
- CCKSitting,
- CCKCrouch,
- CCKProne,
- }
-
- #endregion Enums
-
- #region Melon Preferences
-
- private static readonly MelonPreferences_Category Category =
- MelonPreferences.CreateCategory(nameof(ConfigureCalibrationPose));
-
- private static readonly MelonPreferences_Entry EntryCalibrationPose =
- Category.CreateEntry("calibration_pose", CalibrationPose.APose, display_name: "Calibration Pose",
- description: "What pose to use for FBT calibration.");
-
- #endregion Melon Preferences
-
- #region Melon Events
-
- public override void OnInitializeMelon()
- {
- #region BodySystem Patches
-
- HarmonyInstance.Patch(
- typeof(BodySystem).GetMethod(nameof(BodySystem.MuscleUpdate),
- BindingFlags.Public | BindingFlags.Instance),
- prefix: new HarmonyMethod(typeof(ConfigureCalibrationPoseMod).GetMethod(nameof(OnPreBodySystemMuscleUpdate),
- BindingFlags.NonPublic | BindingFlags.Static))
- );
-
- #endregion BodySystem Patches
- }
-
- #endregion Melon Events
-
- #region Harmony Patches
-
- private static bool OnPreBodySystemMuscleUpdate(ref float[] muscles)
- {
- PlayerSetup playerSetup = PlayerSetup.Instance;
- IKSystem ikSystem = IKSystem.Instance;
- ref HumanPose humanPose = ref ikSystem._humanPose;
-
- if (BodySystem.isCalibrating)
- {
- switch (EntryCalibrationPose.Value)
- {
- default:
- case CalibrationPose.TPose:
- for (int i = 0; i < MusclePoses.TPoseMuscles.Length; i++)
- ikSystem.ApplyMuscleValue((MuscleIndex) i, MusclePoses.TPoseMuscles[i], ref muscles);
- break;
- case CalibrationPose.APose:
- for (int i = 0; i < MusclePoses.APoseMuscles.Length; i++)
- ikSystem.ApplyMuscleValue((MuscleIndex) i, MusclePoses.APoseMuscles[i], ref muscles);
- break;
- case CalibrationPose.IKPose:
- for (int i = 0; i < MusclePoses.IKPoseMuscles.Length; i++)
- ikSystem.ApplyMuscleValue((MuscleIndex) i, MusclePoses.IKPoseMuscles[i], ref muscles);
- break;
- case CalibrationPose.BikePose:
- for (int i = 0; i < MusclePoses.TPoseMuscles.Length; i++)
- ikSystem.ApplyMuscleValue((MuscleIndex) i, 0f, ref muscles);
- break;
- case CalibrationPose.CCKSitting:
- for (int i = 0; i < CCKSittingMuscles.Length; i++)
- ikSystem.ApplyMuscleValue((MuscleIndex) i, CCKSittingMuscles[i], ref muscles);
- break;
- case CalibrationPose.CCKCrouch:
- for (int i = 0; i < CCKCrouchMuscles.Length; i++)
- ikSystem.ApplyMuscleValue((MuscleIndex) i, CCKCrouchMuscles[i], ref muscles);
- break;
- case CalibrationPose.CCKProne:
- for (int i = 0; i < CCKProneMuscles.Length; i++)
- ikSystem.ApplyMuscleValue((MuscleIndex) i, CCKProneMuscles[i], ref muscles);
- break;
- case CalibrationPose.RacushSit:
- for (int i = 0; i < RacushSitMuscles.Length; i++)
- ikSystem.ApplyMuscleValue((MuscleIndex) i, RacushSitMuscles[i], ref muscles);
- break;
- }
-
- humanPose.bodyPosition = Vector3.up;
- humanPose.bodyRotation = Quaternion.identity;
- }
- else if (BodySystem.isCalibratedAsFullBody && BodySystem.TrackingPositionWeight > 0f)
- {
- BetterBetterCharacterController characterController = playerSetup.CharacterController;
-
- bool isRunning = characterController.IsMoving();
- bool isGrounded = characterController.IsGrounded();
- bool isFlying = characterController.IsFlying();
- bool isSwimming = characterController.IsSwimming();
-
- if ((BodySystem.PlayRunningAnimationInFullBody
- && (isRunning || !isGrounded && !isFlying && !isSwimming)))
- {
- ikSystem.applyOriginalHipPosition = true;
- ikSystem.applyOriginalHipRotation = true;
-
- IKSolverVR solver = IKSystem.vrik.solver;
- BodySystem.SetPelvisWeight(solver.spine, 0f);
- BodySystem.SetLegWeight(solver.leftLeg, 0f);
- BodySystem.SetLegWeight(solver.rightLeg, 0f);
- }
- else
- {
- ikSystem.applyOriginalHipPosition = true;
- ikSystem.applyOriginalHipRotation = false;
- humanPose.bodyRotation = Quaternion.identity;
- }
- }
-
- return false; // dont run original
- }
-
- #endregion Harmony Patches
-
- #region Custom Pose Arrays
-
- private static readonly float[] CCKSittingMuscles =
- [
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- -0.8000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- -0.8000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- -1.0000f,
- 0.0000f,
- -0.3000f,
- 0.3000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- -1.0000f,
- 0.0000f,
- -0.3000f,
- 0.3000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f
- ];
-
- private static readonly float[] CCKCrouchMuscles =
- [
- -1.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.5000f,
- 0.0000f,
- 0.0000f,
- 0.5000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- -0.6279f,
- 0.0000f,
- 0.0000f,
- -0.8095f,
- 0.0000f,
- -1.0091f,
- 0.0000f,
- 0.0000f,
- -0.4126f,
- 0.0013f,
- -0.0860f,
- -0.9331f,
- -0.0869f,
- -1.3586f,
- 0.1791f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- -0.1998f,
- -0.2300f,
- 0.1189f,
- 0.3479f,
- 0.1364f,
- -0.3737f,
- 0.0069f,
- 0.0000f,
- 0.0000f,
- -0.1994f,
- -0.2301f,
- 0.0267f,
- 0.7532f,
- 0.1922f,
- 0.0009f,
- -0.0005f,
- -1.4747f,
- -0.0443f,
- -0.3347f,
- -0.3062f,
- -0.7596f,
- -1.2067f,
- -0.7329f,
- -0.7329f,
- -0.5984f,
- -2.7162f,
- -0.7439f,
- -0.7439f,
- -0.5812f,
- 1.8528f,
- -0.7520f,
- -0.7520f,
- -0.7242f,
- 0.5912f,
- -0.7632f,
- -0.7632f,
- -1.4747f,
- -0.0443f,
- -0.3347f,
- -0.3062f,
- -0.7596f,
- -1.2067f,
- -0.7329f,
- -0.7329f,
- -0.5984f,
- -2.7162f,
- -0.7439f,
- -0.7439f,
- -0.5812f,
- 1.8528f,
- -0.7520f,
- 0.8104f,
- -0.7242f,
- 0.5912f,
- -0.7632f,
- 0.8105f
- ];
-
- private static readonly float[] CCKProneMuscles =
- [
- 0.6604f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.7083f,
- 0.0000f,
- 0.0000f,
- 0.7083f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.2444f,
- -0.0554f,
- -0.8192f,
- 0.9301f,
- 0.5034f,
- 1.0274f,
- -0.1198f,
- 0.5849f,
- 0.2360f,
- -0.0837f,
- -1.1803f,
- 0.9676f,
- 0.7390f,
- 0.9944f,
- -0.1717f,
- 0.5849f,
- 0.0000f,
- 0.0000f,
- 0.2823f,
- -0.6297f,
- 0.3200f,
- -0.3376f,
- 0.0714f,
- 0.9260f,
- -1.5768f,
- 0.0000f,
- 0.0000f,
- 0.1561f,
- -0.6712f,
- 0.2997f,
- -0.3392f,
- 0.0247f,
- 0.7672f,
- -1.5269f,
- -1.1422f,
- 0.0392f,
- 0.6457f,
- 0.0000f,
- 0.6185f,
- -0.5393f,
- 0.8104f,
- 0.8104f,
- 0.6223f,
- -0.8225f,
- 0.8104f,
- 0.8104f,
- 0.6218f,
- -0.3961f,
- 0.8104f,
- 0.8104f,
- 0.6160f,
- -0.3721f,
- 0.8105f,
- 0.8105f,
- -1.1422f,
- 0.0392f,
- 0.6457f,
- 0.0000f,
- 0.6185f,
- -0.5393f,
- 0.8104f,
- 0.8104f,
- 0.6223f,
- -0.8226f,
- 0.8104f,
- 0.8104f,
- 0.6218f,
- -0.3961f,
- 0.8104f,
- 0.8104f,
- 0.6160f,
- -0.3721f,
- 0.8105f,
- 0.8105f
- ];
-
- private static readonly float[] RacushSitMuscles =
- [
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- -0.7500f,
- -0.0002f,
- 0.1599f,
- -0.1500f,
- 0.1000f,
- 0.1300f,
- -0.0001f,
- 0.0000f,
- -0.7500f,
- -0.0002f,
- 0.1599f,
- -0.1500f,
- 0.1000f,
- 0.1300f,
- -0.0001f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.3927f,
- 0.3114f,
- 0.0805f,
- 0.9650f,
- -0.0536f,
- 0.0024f,
- 0.0005f,
- 0.0000f,
- 0.0000f,
- 0.3928f,
- 0.3114f,
- 0.0805f,
- 0.9650f,
- -0.0536f,
- 0.0024f,
- 0.0005f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f,
- 0.0000f
- ];
-
- #endregion Custom Pose Arrays
-}
\ No newline at end of file
diff --git a/ConfigureCalibrationPose/Properties/AssemblyInfo.cs b/ConfigureCalibrationPose/Properties/AssemblyInfo.cs
deleted file mode 100644
index 1fdc09d..0000000
--- a/ConfigureCalibrationPose/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using MelonLoader;
-using NAK.ConfigureCalibrationPose.Properties;
-using System.Reflection;
-
-[assembly: AssemblyVersion(AssemblyInfoParams.Version)]
-[assembly: AssemblyFileVersion(AssemblyInfoParams.Version)]
-[assembly: AssemblyInformationalVersion(AssemblyInfoParams.Version)]
-[assembly: AssemblyTitle(nameof(NAK.ConfigureCalibrationPose))]
-[assembly: AssemblyCompany(AssemblyInfoParams.Author)]
-[assembly: AssemblyProduct(nameof(NAK.ConfigureCalibrationPose))]
-
-[assembly: MelonInfo(
- typeof(NAK.ConfigureCalibrationPose.ConfigureCalibrationPoseMod),
- nameof(NAK.ConfigureCalibrationPose),
- AssemblyInfoParams.Version,
- AssemblyInfoParams.Author,
- downloadLink: "https://github.com/NotAKidoS/NAK_CVR_Mods/tree/main/ConfigureCalibrationPose"
-)]
-
-[assembly: MelonGame("Alpha Blend Interactive", "ChilloutVR")]
-[assembly: MelonPlatform(MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
-[assembly: MelonPlatformDomain(MelonPlatformDomainAttribute.CompatibleDomains.MONO)]
-[assembly: MelonColor(255, 246, 25, 99)] // red-pink
-[assembly: MelonAuthorColor(255, 158, 21, 32)] // red
-[assembly: HarmonyDontPatchAll]
-
-namespace NAK.ConfigureCalibrationPose.Properties;
-internal static class AssemblyInfoParams
-{
- public const string Version = "1.0.0";
- public const string Author = "NotAKidoS";
-}
\ No newline at end of file
diff --git a/ConfigureCalibrationPose/README.md b/ConfigureCalibrationPose/README.md
deleted file mode 100644
index f17ba48..0000000
--- a/ConfigureCalibrationPose/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# ConfigureCalibrationPose
-
-Select FBT calibration pose.
-
----
-
-Here is the block of text where I tell you this mod is not affiliated with or endorsed by ABI.
-https://documentation.abinteractive.net/official/legal/tos/#7-modding-our-games
-
-> This mod is an independent creation not affiliated with, supported by, or approved by Alpha Blend Interactive.
-
-> Use of this mod is done so at the user's own risk and the creator cannot be held responsible for any issues arising from its use.
-
-> To the best of my knowledge, I have adhered to the Modding Guidelines established by Alpha Blend Interactive.
diff --git a/ConfigureCalibrationPose/format.json b/ConfigureCalibrationPose/format.json
deleted file mode 100644
index 6324d2b..0000000
--- a/ConfigureCalibrationPose/format.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "_id": -1,
- "name": "ConfigureCalibrationPose",
- "modversion": "1.0.0",
- "gameversion": "2025r179",
- "loaderversion": "0.6.1",
- "modtype": "Mod",
- "author": "NotAKidoS",
- "description": "Lets you bring held & attached props through world loads.\nhttps://youtu.be/9P6Jeh-VN58?si=eXTPGyKB_0wq1gZO",
- "searchtags": [
- "prop",
- "spawn",
- "friend",
- "load"
- ],
- "requirements": [
- "None"
- ],
- "downloadlink": "https://github.com/NotAKidoS/NAK_CVR_Mods/releases/download/r46/ConfigureCalibrationPose.dll",
- "sourcelink": "https://github.com/NotAKidoS/NAK_CVR_Mods/tree/main/ConfigureCalibrationPose/",
- "changelog": "- Initial Release",
- "embedcolor": "#00FFFF"
-}
\ No newline at end of file
diff --git a/README.md b/README.md
index 39be991..e3217d1 100644
--- a/README.md
+++ b/README.md
@@ -8,10 +8,9 @@
|------|-------------|----------|
| [ASTExtension](ASTExtension/README.md) | Extension mod for [Avatar Scale Tool](https://github.com/NotAKidoS/AvatarScaleTool): | [Download](https://github.com/NotAKidoS/NAK_CVR_Mods/releases/download/r46/ASTExtension.dll) |
| [AvatarQueueSystemTweaks](AvatarQueueSystemTweaks/README.md) | Small tweaks to the Avatar Queue System. | [Download](https://github.com/NotAKidoS/NAK_CVR_Mods/releases/download/r46/AvatarQueueSystemTweaks.dll) |
-| [ConfigureCalibrationPose](ConfigureCalibrationPose/README.md) | Select FBT calibration pose. | No Download |
| [CustomSpawnPoint](CustomSpawnPoint/README.md) | Replaces the unused Images button in the World Details page with a button to set a custom spawn point. | [Download](https://github.com/NotAKidoS/NAK_CVR_Mods/releases/download/r46/CustomSpawnPoint.dll) |
| [DoubleTapJumpToExitSeat](DoubleTapJumpToExitSeat/README.md) | Replaces seat exit controls with a double-tap of the jump button, avoiding accidental exits from joystick drift or opening the menu. | [Download](https://github.com/NotAKidoS/NAK_CVR_Mods/releases/download/r46/DoubleTapJumpToExitSeat.dll) |
-| [FuckToes](FuckToes/README.md) | Prevents VRIK from autodetecting toes in Halfbody or Fullbody. | [Download](https://github.com/NotAKidoS/NAK_CVR_Mods/releases/download/r46/FuckToes.dll) |
+| [FuckToes](FuckToes/README.md) | Prevents VRIK from autodetecting toes in Halfbody or Fullbody. | No Download |
| [KeepVelocityOnExitFlight](KeepVelocityOnExitFlight/README.md) | Keeps the player's velocity when exiting flight mode. Makes it possible to fling yourself like in Garry's Mod. | [Download](https://github.com/NotAKidoS/NAK_CVR_Mods/releases/download/r46/KeepVelocityOnExitFlight.dll) |
| [LazyPrune](LazyPrune/README.md) | Prevents loaded objects from immediately unloading on destruction. Should prevent needlessly unloading & reloading all avatars/props on world rejoin or GS reconnection. | [Download](https://github.com/NotAKidoS/NAK_CVR_Mods/releases/download/r46/LazyPrune.dll) |
| [PropLoadingHexagon](PropLoadingHexagon/README.md) | https://github.com/NotAKidoS/NAK_CVR_Mods/assets/37721153/a892c765-71c1-47f3-a781-bdb9b60ba117 | [Download](https://github.com/NotAKidoS/NAK_CVR_Mods/releases/download/r46/PropLoadingHexagon.dll) |