You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hook detour safety: Added try/catch to all 26 hook detours across 10 files. Unhandled exceptions in hook detours propagate back into native FFXIV game threads and cause instant crashes. All detours now log errors and fall back to calling the original game function.
Static hook fix: Fixed two Hook fields that were incorrectly marked static (GPoseService, CameraService). Static hooks survive plugin reload within a game session — the old detour stayed wired without being disposed, risking double-hook on reload.
Init race fix: Added _disposed guard in the RunOnTick startup callback. If the plugin is unloaded during the 2-tick delay before init fires, the callback now returns early instead of initialising services that will never be cleaned up.
Cleanup: Removed GC.SuppressFinalize calls on classes without finalizers. Replaced ReadOnlySeString.ToString() with .ExtractText() on 17 Lumina sheet field accesses (item/dye/emote/weather/facewear names). Fixed CharacterInitializeDetour typo. Fixed actor speed not restoring to 1.0 on entity dispose when a speed override was active.