This comprehensive, standalone guide outlines how to take Styx: Master of Shadows (Steam Version) on Windows 11 and completely reconstruct its lighting system. By implementing these manual adjustments, you will eliminate washed-out lighting, bypass broken texture-streaming limits, and use advanced math to force true, pitch-black ink levels on an OLED monitor while keeping the environment bright and vibrant.
Go to your web browser and assemble this text line to reach the files:
For the Agility Mod (Fixes mid-air jump physics & player movement speed):Assemble these text strings in your browser address bar to access Marty's standalone shadow shaders:
Once on the page, make sure qUINT_mxao.fx is selected on the left column index, then go to the top right of the interface and hit the download button before the pencil icon ("Download raw file")
File A (The Core Shadow Shader File):Once on the page, make sure qUINT_common.fxh is selected on the left column index, then go to the top right of the interface and hit the download button before the pencil icon ("Download raw file")
https://github.com/martymcmodding/qUINT/blob/master/Shaders/qUINT_common.fxh Click Here to Download the background dependency for the MArty McFly Shaders Mod on GithubAssemble this text line to reach the core engine site:
https://reshade.me Click Here to Download Reshade with Full Mod SupportBecause we are combining Special K and ReShade together as a team (so that we can run a borderless fullscreen mode, and to benefit from Special K's kernel level frame timing) - running the default ReShade installation setup wizard will fail. The installer will see Special K in the folder, panic, flash a giant "X" graphic on your screen, and block you from finishing the download. We must extract the file engine manually.
ReShade_Setup_6.8.0.exe).ReShade_Setup_6.8.0.exe file and select Rename..exe file extension from the very end of the name, and replace it with .zip (so the file name reads exactly: ReShade_Setup_6.8.0.zip). Click Yes when Windows asks if you are sure.ReShade32.dll. Copy this single file and paste it safely onto your Desktop. (We specifically isolate the 32-bit version because our gameplay mods force the game to run inside a 32-bit engine container).When you open your local game directory, you will find that the developers compiled two entirely separate execution loops for the game: a Win32 folder and a Win64 folder. Because Windows 11 is a 64-bit operating system, Steam automatically defaults to launching the un-modded Win64 executable. This means if you leave the folders alone, Steam will completely ignore your 32-bit gameplay mods, and your Special K engine banner will never pop up.
We solve this permanently by pulling off a manual directory folder swap trick:
Binaries folder, you will see your two target directories: Win32 and Win64.Win64 folder, select rename, and change it exactly to: Win64_BackupWin32 folder (which contains our target StyxGame.exe game core) and rename it exactly to: Win64You have now successfully tricked Steam. When you hit "Play" in your Steam client, it will enter the folder named Win64 like it always does, but it will actually run our modded 32-bit folder layout
Open up your newly renamed Win64 folder (the one containing your true 32-bit StyxGame.exe). Drop your extracted mod core binaries into this directory following these exact tracking steps:
1. Take your downloaded 32-bit Special K library file (from your Special K raw download asset zip) and drop it into this folder. Rename it exactly to: d3d9.dll
2. Take the ReShade32.dll file sitting on your desktop and paste it right next to it. Leave its name exactly as ReShade32.dll.
3. Run your TFC Mod Installer application for the Agility and Amber mods. When the tool asks you to locate the "Mod Folder," click browse and point it to the unzipped download package folder (e.g., Downloads\Agile_Styx_Mod).
⚠️ THE TFC MOD INTERPOLATION PITFALL: The mod folder you highlight must contain a folder named Game inside it, but do NOT click on or go inside that Game folder itself. Highlight the parent folder right above it, or the tool will map the configuration file paths wrong and fail to update your files.
4. Launch the game through Steam once to let Special K initialize, then close it out.
5. Look inside your game folder. Special K has generated a text file named d3d9.ini. Open it with Notepad, scroll down to the absolute bottom line, create a fresh blank line, and paste this exact instructions script to bridge the two programs without crashing:
[Import.ReShade32]
Architecture=Win32
Filename=ReShade32.dll
Role=ThirdParty
When=Lazy
You will build your lighting tools yourself using your Windows Notepad app.
First, right-click inside your game directory and create a new folder named reshade. Open it, and create two subfolders inside it named Shaders and Textures. Your path structure must look like this:
...\Styx\Binaries\Win64\reshade\Shaders<;/p>
1. Open your Windows Start Menu, type Notepad, and open the application.
2. Copy and paste this exact self-contained code block into the blank text window:
texture2D ReShade_BackBufferTex : COLOR;
sampler2D sBackBuffer { Texture = ReShade_BackBufferTex; };
uniform float Intensity <;
ui_type = "slider";
ui_min = 0.0; ui_max = 10.0;
ui_label = "Ambient Light Intensity";
>; = 3.0;
void FullscreenVS(in uint id : SV_VertexID, out float4 position : SV_Position, out float2 texcoord : TEXCOORD)
{
texcoord.x = (id == 2) ? 2.0 : 0.0;
texcoord.y = (id == 1) ? 2.0 : 0.0;
position = float4(texcoord * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0);
}
float4 PS_Ambient(float4 vpos : SV_Position, float2 texcoord : TEXCOORD) : SV_Target
{
float4 color = tex2D(sBackBuffer, texcoord);
return color * (1.0 + Intensity * 0.1);
}
technique AmbientLight
{
pass { VertexShader = FullscreenVS; PixelShader = PS_Ambient; }
}
⚠️ THE NOTEPAD EXTENSION TRAP: Click File >; Save As.... Look at the box named "Save as type". It defaults to Text Documents (.txt). You MUST click that dropdown and change it to "All Files (.*)". If you don't, Windows will secretly name the file AmbientLight.fx.txt, and ReShade will never see it.
3. Name the file exactly AmbientLight.fx and save it inside your new reshade\Shaders\ folder.
1. Open a brand-new blank Notepad file.
2. Copy and paste this exact mathematical color-reconstruction script:
texture2D ReShade_BackBufferTex : COLOR;
sampler2D sBackBuffer { Texture = ReShade_BackBufferTex; };
uniform float BlackClip <;
ui_type = "slider";
ui_min = 0.0; ui_max = 0.1;
ui_label = "1. OLED Pure Black Floor Lock";
>; = 0.02;
uniform float MidtoneLift <;
ui_type = "slider";
ui_min = 1.0; ui_max = 2.0;
ui_label = "2. Midtone Brightness (Gamma Lift)";
>; = 1.35;
uniform float HighlightGain <;
ui_type = "slider";
ui_min = 1.0; ui_max = 1.5;
ui_label = "3. Highlight Peak White (HDR Pop)";
>; = 1.15;
uniform float SaturationRecovery <;
ui_type = "slider";
ui_min = 1.0; ui_max = 2.0;
ui_label = "4. OLED Saturation Balance";
>; = 1.45;
void FullscreenVS(in uint id : SV_VertexID, out float4 position : SV_Position, out float2 texcoord : TEXCOORD)
{
texcoord.x = (id == 2) ? 2.0 : 0.0;
texcoord.y = (id == 1) ? 2.0 : 0.0;
position = float4(texcoord * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0);
}
float4 PS_AdvancedOLED(float4 vpos : SV_Position, float2 texcoord : TEXCOORD) : SV_Target
{
float4 color = tex2D(sBackBuffer, texcoord);
color.rgb = max(0.0, color.rgb - BlackClip) / (1.0 - BlackClip);
float luma = dot(color.rgb, float3(0.2126, 0.7152, 0.0722));
color.rgb = pow(abs(color.rgb), 1.0 / MidtoneLift);
color.rgb *= HighlightGain;
float newLuma = dot(color.rgb, float3(0.2126, 0.7152, 0.0722));
color.rgb = lerp(newLuma, color.rgb, SaturationRecovery);
return saturate(color);
}
technique OLED_Blacks_Fix
{
pass { VertexShader = FullscreenVS; PixelShader = PS_AdvancedOLED; }
}
To stop the game engine from throwing an ugly pale gray film of screen-fog over your maps, and to open up the VRAM data streaming paths so textures stop downscaling into blurry "watercolor painting" blobs, we must edit the configuration profile documents.
1. Open your Windows File Explorer and go to your hidden profile folder path:
C:\Users&;lt;YourUsername>;\Documents\My Games\Styx\StyxGame\Config<;/p>
2. Dismantle the Fog Layer: Open the file named StyxSystemSettings.ini with Notepad. Scroll down to the absolute bottom of the document text, create a blank line, paste these two lines, and click save:
bAllowFog=False
r.Fog=0
3. Uncap the Texture Memory Pool: Open the file named StyxEngine.ini with Notepad. Press Ctrl + F, search for the word PoolSize, and look inside the [TextureStreaming] category block. Change the allocation limits to match this exact matrix to allocate 4GB of your card's VRAM budget:
[TextureStreaming]
PoolSize=4095
MemoryMargin=512
HysteresisLimit=30
bAllowSwitchingStreamingSystem=False
UseDynamicStreaming=False
4. Scroll further down inside StyxEngine.ini, locate the [SystemSettings] category header, and paste these fade-speed regulators right below it to force native resolution maps to load instantly:
MipFadeInSpeed0=0
MipFadeOutSpeed0=0
MipFadeInSpeed1=0
MipFadeOutSpeed1=0
OnlyStreamInTextures=True
5. Save the file and close Notepad.
1. Launch the game. Go into the main Styx video options menu and reset your Game Brightness slider back to 50% (Default). If it is kept lowered to 1/3, the game engine will compress the midtones before our code can run, leaving the game looking dim and washed out.
2. Open your ReShade menu interface overlay by pressing the Home key.
3. Go into the Settings tab at the very top. Click the + icons to manually assign your folder pathways: link Effect Search Paths to your handmade reshade\Shaders folder, and link Texture Search Paths to your reshade\Textures folder.
4. Wipe Corrupted Cache Lines: Head back to the main Home tab. Hold down the Ctrl key on your keyboard and click the "Reload" button at the very bottom of the overlay interface. This clears any broken cache memory blocks and forces the 6.8.0 engine to compile your scripts perfectly.
5. Your shaders will pop up in clean white text! Click the checkboxes and drag their lines into this precise top-to-bottom execution order:
6. Select OLED_Blacks_Fix to reveal its configuration sliders in the bottom panel. Set your Pure Black Floor Lock between 0.02 and 0.04 to make dark corners turn off your OLED display's pixels entirely, and lift your Midtone Brightness up to around 1.40 to make the room textures look bright, sharp, and highly saturated!
Before completing your final launch, walk through this structural checklist to ensure that every manual script, mod file, and configuration document is placed inside its exact required subfolder location. Missing or misaligned assets will break the loading chain and cause compilation errors.
Navigate to your local Steam game installation directory path:
C:\Steam\steamapps\common\Styx\Binaries\Win64<;br>
(Note: This is the true 32-bit folder that was manually swapped and renamed to Win64).
Verify that ONLY these exact four core engine assets are sitting directly in this folder root:
Navigate deep inside your handmade custom shaders directory path:
...\Styx\Binaries\Win64\reshade\Shaders
Verify that exactly these five structural script files live together inside this folder root:
Navigate inside your handmade image directory path:
...\Styx\Binaries\Win64\reshade\Textures
Verify that all your visual mod image assets conform to this strict structural rule:
Navigate out of your Steam folders and head to your local user documents environment path:
C:\User\~YourUsername~\Documents\My Games\Styx\StyxGame\Config
Verify that your custom engine modifications are locked cleanly into these two configuration files:
Why this edit is required: Legacy 32-bit Unreal Engine 3 titles utilize an aggressive "Texture Streaming" optimization pass designed for systems with very low video memory. When run on ultra-modern high-VRAM graphics cards, the engine's memory allocator gets confused by the massive available pool and incorrectly downscales your textures into a low-resolution "watercolor" blur.
By adjusting the [TextureStreaming] variables inside your StyxEngine.ini file, you can explicitly force the engine to recognize your GPU's overhead capacity, completely eliminating the blurry asset pop-in.
Use this profile if you have 24GB+ VRAM. This completely deactivates the streaming pipeline, caching all 4K upscaled textures directly into your memory pool during loading screens.
[TextureStreaming]
bUseTextureStreaming=False
LowPicMip=0
HighPicMip=0
MinTextureResidentMipCount=7
PoolSize=4096
MemoryMargin=20
MemoryLoss=0
HysteresisLimit=20
DropMipLevelsLimit=16
StopIncreasingLimit=12
StopStreamingLimit=8
MinEvictSize=10
MinFudgeFactor=1
FudgeFactorIncreaseRateOfChange=0.5
FudgeFactorDecreaseRateOfChange=-0.4
MinRequestedMipsToConsider=11
MinTimeToGuaranteeMinMipCount=2
MaxTimeToGuaranteeMinMipCount=12
UseTextureFileCache=TRUE
LoadMapTimeLimit=5.0
LightmapStreamingFactor=0.04
ShadowmapStreamingFactor=0.04
MaxLightmapRadius=2000.0
AllowStreamingLightmaps=True
TextureFileCacheBulkDataAlignment=1
UsePriorityStreaming=True
bAllowSwitchingStreamingSystem=False
UseDynamicStreaming=True
bEnableAsyncDefrag=False
bEnableAsyncReallocation=False
MaxDefragRelocations=256
MaxDefragDownShift=128
BoostPlayerTextures=3.0
TemporalAAMemoryReserve=4.0
Use this profile if you have 16GB VRAM. This keeps the streaming mechanism active to protect system stability while expanding the target memory pool to ensure full-resolution 4K textures load instantly.
[TextureStreaming]
bUseTextureStreaming=True
LowPicMip=0
HighPicMip=0
MinTextureResidentMipCount=7
PoolSize=3072
MemoryMargin=20
MemoryLoss=0
HysteresisLimit=20
DropMipLevelsLimit=16
StopIncreasingLimit=12
StopStreamingLimit=8
MinEvictSize=10
MinFudgeFactor=1
FudgeFactorIncreaseRateOfChange=0.5
FudgeFactorDecreaseRateOfChange=-0.4
MinRequestedMipsToConsider=11
MinTimeToGuaranteeMinMipCount=2
MaxTimeToGuaranteeMinMipCount=12
UseTextureFileCache=TRUE
LoadMapTimeLimit=5.0
LightmapStreamingFactor=0.04
ShadowmapStreamingFactor=0.04
MaxLightmapRadius=2000.0
AllowStreamingLightmaps=True
TextureFileCacheBulkDataAlignment=1
UsePriorityStreaming=True
bAllowSwitchingStreamingSystem=False
UseDynamicStreaming=True
bEnableAsyncDefrag=True
bEnableAsyncReallocation=True
MaxDefragRelocations=256
MaxDefragDownShift=128
BoostPlayerTextures=3.0
TemporalAAMemoryReserve=4.0
Open your Nvidia Control Panel, navigate to Styx: Master of Shadows , and assign these exact parameters:
• Low Latency Mode: Set to ON (Do not use Ultra). Setting it to On restricts the GPU render queue to exactly 1 frame, which stops the CPU from building input lag without applying an aggressive driver frame cap that fights your other tools.
• Vertical Sync: Set to ON.
• Monitor Technology: Set to G-SYNC / G-SYNC Compatible.
Because Styx doesn't natively support modern Nvidia Reflex, Special K has a hidden feature that allows it to inject true driver-level Nvidia Reflex directly into older games. This completely replaces the need for old "Ultra" toggles.
By turning Low Latency Mode to On in your Nvidia panel and letting Special K handle both the 117 FPS frame cap and the Reflex driver hook, you create a perfect loop.
Special K will hold your frame-delivery times to an absolute dead-flat 8.54 milliseconds, keeping your G-Sync module perfectly synchronized. At the exact same microsecond, Special K's Reflex injection tells your RTX series GPU to sample your mouse movements at the absolute latest possible moment before drawing the frame.
This completely bypasses the Windows desktop composition lag, giving you the immediate, raw response feel of Exclusive Fullscreen with the seamless Alt-Tabbing convenience of Windowed mode