Skip to content

v0.2.26

Choose a tag to compare

@BluntEXE BluntEXE released this 26 May 07:38
· 21 commits to main since this release

v0.2.26

Stability fixes (dalamud-review audit)

  • 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.