SpectralFix smooths the jagged, pixelated glow around Final Fantasy XI avatars, certain Trusts, mounts, and other glowing characters at modern resolutions.
It restores the soft aura without changing character files, replacing textures, or requiring anything from the game server. Install it once, and it loads with Ashita whenever the game starts.
| Original jagged aura | Default SpectralFix aura | Higher spread setting |
|---|---|---|
![]() |
![]() |
![]() |
The release page provides two downloads per release, one per Ashita plugin interface:
SpectralFix-<version>-Ashita-4.16.zipSpectralFix-<version>-Ashita-4.30.zip
The 4.16 and 4.30 labels are Ashita plugin interface versions, not
necessarily the version shown by the launcher. If you choose the wrong package,
Ashita will refuse to load it rather than damage anything; try the other package
or include your Ashita log when asking which one you need.
Required: FFXI's Blur Effect must remain enabled while using SpectralFix. If it is disabled, run
/localsettings blureffect on. Current tested clients recover immediately; if the corrected aura still does not appear, fully exit FFXI and relaunch once.
- Exit Final Fantasy XI completely.
- Download and extract the package matching your Ashita interface.
- Copy
spectralfix.dllinto Ashita'spluginsfolder. - Add
/load spectralfixnear the top of the Ashita startup script, before ordinary plugins and addons. - Launch the game normally.
Do not wait until after login and load SpectralFix manually. It must load from the startup script so it is present when FFXI creates the aura resources.
Do not unload or reload SpectralFix while the game is running. Exit the entire client before replacing or removing the DLL.
SpectralFix remains a 32-bit Windows Ashita plugin. Linux use means loading the same Windows DLL inside a 32-bit FFXI/Ashita process hosted by Wine; there is no native Linux build and the Ashita ABI is unchanged. Wine compatibility is experimental because v1.03 was not tested in a live Wine-hosted client.
The plugin can use a direct FFXiMain caller when Wine or a wrapper cannot produce a usable stack fingerprint, and it can recognize two interface pointers that resolve to the same canonical COM device. Neither fallback broadens the resource shape: both FFXiMain identity fields absent, a different logical device, an unproven DrawPrimitiveUP path, or a conflicting saved selector keeps the original 256x256 allocation.
Alternate device-interface pointers are validated once and retained in a bounded cache, so normal draws do not repeat COM identity queries. A caller-only or stack-only saved selector also stays at 256x256 when both identity fields become available; aura activity can save that stronger selector for the next full launch. Only one matching candidate ID can be selected and confirmed in a session.
Unknown graphics-hook owners are never overwritten. SetTexture observation can fall back to a narrow stage-zero query, while new enlargement remains blocked until required DrawPrimitiveUP correction is directly owned or recently observed forwarding into SpectralFix from the verified runtime device. Callbacks from a different device never count as forwarding evidence.
Ashita addons are well suited to commands, interface changes, and normal game events, but this problem happens earlier and deeper in FFXI's graphics system. SpectralFix must be present when the game creates the aura and must correct how that aura is drawn, which requires a native plugin.
Once SpectralFix enlarges the aura, it cannot safely shrink that live graphics resource again. Unloading the plugin would remove the matching corrections while the enlarged aura is still in use, which can place a large animated copy in the corner of the screen. Fully exiting the game clears those graphics resources and allows the next launch to start cleanly.
/spectralfixor/spectralfix helpshows the available settings./spectralfix spread <1.0-16.0>changes how far the aura spreads. The default is2.0./spectralfix opacity <0-100>changes the strength of the soft outer glow./spectralfix composite opacity <0-100>changes the strength of the inner glow. The default is25./spectralfix target <medium|high|ultra>changes aura quality after a full restart.highis recommended.
Use stock instead of a number to restore the original opacity behavior, or use
auto instead of a spread number to let SpectralFix scale it automatically.
Changes are saved for future launches.
If SpectralFix loads but the aura is missing or remains jagged, first run
/localsettings blureffect on. The corrected aura normally appears immediately.
If it does not, fully exit FFXI, relaunch once, and try the aura again.
Ashita does not expose this live setting to plugins, so SpectralFix does not try to detect it or display an automatic warning. Check it manually with the command above when troubleshooting.
Also confirm that /load spectralfix is near the top of the startup script. If
you loaded it manually after login, fully exit FFXI and let the startup script
load it during the next launch.
Run /spectralfix status and include the displayed information when reporting the
problem. SpectralFix also keeps a small troubleshooting log in
ashita/logs/spectralfix/.
For a Wine report, include the complete log from initialization through the aura
test plus: Wine version and runner, whether the prefix/process is 32-bit, the
Ashita interface package (4.16 or 4.30), the D3D8 implementation or wrapper,
startup-script placement, Blur Effect state, and /spectralfix status before and
after summoning an aura. Start with a fresh spectralfix.ini; if the log says a
selector was learned, fully exit the client and repeat once with the saved file.
SpectralFix is copyright (C) 2026 KraturLabs and licensed under GPL-3.0-only. Third-party notices are in THIRD_PARTY_NOTICES.md.
Final Fantasy XI is a trademark of Square Enix. This independent community project is not affiliated with or endorsed by Square Enix or the other projects named above.


