Skip to content

Releases: BluntEXE/StarfallStudio

v0.2.35

Choose a tag to compare

@BluntEXE BluntEXE released this 06 Jul 14:50

Fix: guard weapon draw data pointer reads to prevent AV crash race

v0.2.34's null-guard checked the character's native pointer once at the
top of FromCharacter, but GetWeaponDrawObjectData independently
re-fetched Native() and dereferenced it without a check. A
redraw/destroy race between the initial guard and the weapon-hidden
reads still produced an AccessViolationException with the same crash
signature. This release adds the missing null guard at the source and
both call sites (read + write paths).

v0.2.34

Choose a tag to compare

@BluntEXE BluntEXE released this 06 Jul 12:13

Fix actor spinning when moving in open world GPose
Fix crash (AccessViolation) during EnableDraw when SetRotation hook fired on a stale actor
Fix crash (AccessViolation) reading appearance from a character mid-redraw
Fix crash (AccessViolation) polling draw state on a character mid-redraw

v0.2.33-testing

v0.2.33-testing Pre-release
Pre-release

Choose a tag to compare

@BluntEXE BluntEXE released this 22 Jun 16:18

Testing build — fixes crash introduced in v0.2.32-testing.

Root cause: SetRotation hook was skipping the original call during EnableDraw, leaving the game's model matrix uninitialised. This caused an AccessViolationException in native code that bypassed all managed exception handling and crashed the game.

Fix: Always call the original SetRotation first, then apply the transform override on top. This should also resolve the odd camera zoom behaviour reported alongside the crash.

Spinning model fix from v0.2.32 is preserved.

v0.2.32-testing

v0.2.32-testing Pre-release
Pre-release

Choose a tag to compare

@BluntEXE BluntEXE released this 19 Jun 15:49

Testing build: fix model spinning when selected actor moves in open world GPose (crowded areas). Hook SetRotation in addition to SetPosition to fully lock the frozen transform.

v0.2.31 - Starfall File Formats & Full Rebrand

Choose a tag to compare

@BluntEXE BluntEXE released this 30 May 16:47

What's New

  • Scene files now save as .starscn (old .brioscn files still load)
  • Project files now save as .starproj (old .brioproj files still load)
  • AutoSaves now use .starautosave (old .brioautosave files still load)
  • All ImGui window IDs renamed starfall_* — fixes conflicts when Brio is loaded alongside Starfall Studio
  • All remaining Brio-named source files renamed to Starfall equivalents

v0.2.30

Choose a tag to compare

@BluntEXE BluntEXE released this 26 May 18:38
  • Rename Show/Hide actor visibility methods to MakeInvisible/MakeVisible for accurate semantics
  • Remove redundant GC.SuppressFinalize calls (no destructors present)

v0.2.29

Choose a tag to compare

@BluntEXE BluntEXE released this 26 May 08:46

Fix gap between icon and text on buttons

v0.2.28

Choose a tag to compare

@BluntEXE BluntEXE released this 26 May 08:28

Fix 'Add new source' button clipping — was showing 'Add new sour'

v0.2.27

Choose a tag to compare

@BluntEXE BluntEXE released this 26 May 08:19

Fix button text alignment and icon=None layout\n\n- 'Browse for File' was showing as 'rowse for File'\n- 'Add new source' was showing as 'Add new sour'\n- Root cause: ButtonTextAlign formula in Button() helper was incorrect\n- Fix: corrected formula, iconWidth=0 when no icon

v0.2.26

Choose a tag to compare

@BluntEXE BluntEXE released this 26 May 07:38

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.