Shadingway is a ReShade toolkit addon for Final Fantasy XIV. It makes your effects look the way they're supposed to in-game, keeps the HUD sharp through every effect, and survives every game patch on its own. No more depth of field blurring your chat log. No more presets breaking on update day. Just drop it in next to ReShade and play.
Currently supported: ReShade 6.3+ with add-on support, FFXIV (DX11)
- Effects that look right. Modern effects — ambient occlusion, depth of field, motion blur, volumetric fog — work much better when they know what the game is actually rendering. Shadingway gives them that information, so they stop guessing and start producing the look they're meant to.
- A sharp HUD, always. Effects render underneath the FFXIV interface. No more blurred chat logs, no more smeared hotbars, no more yellow tint on menu text.
- Survives every game patch. FFXIV updates often, and updates usually break presets until someone in the community publishes a fix. Shadingway recognizes the game's shaders by what they do, not by their fingerprint, so it keeps working through patches that would normally take your effects offline.
- Install ReShade 6.3+ with Add-on Support (the unsigned variant).
- Drop
Shadingway.addonnext toffxiv_dx11.exefrom the latest release. - Start the game. The Shadingway pane appears in ReShade's addon settings — no configuration required for typical use.
If you also have REST
- REST-FFXIV installed, Shadingway detects them and cooperates automatically — no conflicts.
If you're already using REST (the addon many FFXIV ReShade users have), Shadingway notices and gets out of its way — they cooperate automatically. No conflicts, no extra setup, nothing to choose.
If you don't have REST, you don't need it. Shadingway can stand alone and covers the same ground; the shaders that ask for REST's data will get Shadingway's instead, with no changes needed.
Either way, you don't have to pick.
The surface matches REST's exactly — community shaders work unmodified under either addon:
texture texNormals : NORMALS;
texture texMotionVectors : MOTIONVECTORS;
uniform float4x4 matProj < source = "mat_Proj"; >;
uniform float4x4 matView < source = "mat_View"; >;
// + ProjInv, ViewInv, ViewProj, ViewProjInv
#ifdef ADDON_SHADINGWAY_ACTIVE
// enhanced code path when Shadingway is active
#endifReference implementations in REST-FFXIV/Shaders/.
The HTTP API on 127.0.0.1:48756 is the integration surface (loopback-only by default):
curl http://127.0.0.1:48756/api/v1/status
curl http://127.0.0.1:48756/api/v1/extraction/status
curl http://127.0.0.1:48756/api/v1/constants/discoveredFull endpoint reference is in docs/API.md — every endpoint, parameter, and response shape. Threat model in STATE.md.
- TUTORIAL — frame-by-frame walk-through, no graphics background required.
- DISCOVERY — how Shadingway recognizes shaders and survives patches.
- STATE — architecture reference.
- PHILOSOPHY — the signature vs. shape design principle the codebase is organized around.
- API — HTTP API reference for tool developers (every endpoint, parameter, response shape).
- ADR 0001 — roadmap for v0.22+ (unified training lifecycle, automated signature derivation).
build.bat Release x64Requires VS2022 Build Tools, vcpkg (cpp-httplib, nlohmann-json, stb), and
the vendored ReShade SDK headers in includes/. Produces
dist/shadingway.addon.
Open an issue describing the use case before opening a PR — many things in the codebase are intentional consequences of the philosophy doc and the training-lifecycle ADR, and a quick conversation can save a redesign.
Standing on the shoulders of giants: 4lex4nder for REST and the FFXIV configuration · Frans Bouma for the original ShaderToggler · crosire for ReShade and the addon API · Marty McFly / Pascal Gilcher for iMMERSE and the community-defining work on what's possible when ReShade gets real engine data.
MIT. Same as the REST upstream this project seeds from.