You are viewing a potentially older version of this package. View all versions.
Wubarrk-GraphicsOverdrive-1.0.3 icon

GraphicsOverdrive

100+ graphics engine settings Valheim keeps locked: screen-space reflections, 800 m shadows, full-res AO, water & terrain tessellation, LOD, grass, post-FX, plus upscaling & frame generation (Vulkan). F10 FPS HUD, F11 overlay. Client-side.

Date uploaded 19 hours ago
Version 1.0.3
Download link Wubarrk-GraphicsOverdrive-1.0.3.zip
Downloads 137
Dependency string Wubarrk-GraphicsOverdrive-1.0.3

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2351 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2351

README

⚡ GRAPHICS OVERDRIVE ⚡

Screen-Space Reflections, Water & Terrain Tessellation, FSR 3 Upscaling & Frame Generation and 100+ Hidden Graphics Settings in Valheim

Valheim BepInEx Unity Client Side Developed & Tested on Linux

🐧 Developed and Tested on Linux

All development and testing of Graphics Overdrive was done on Linux: the native Linux version of Valheim on Vulkan, with an NVIDIA GeForce RTX 4070 (laptop GPU).

  • Windows: the Windows libraries are built from the same source and included, but they have not been through the same testing. A Windows tester has confirmed the Native Door and DLSS on a GeForce RTX 5070 laptop GPU (1.0.2). If something misbehaves on Windows, please report it with your logs (see "Logs" in the FSR 3 section).
  • AMD and Intel GPUs: FSR 3 is made to run on them, but they have not been tested.

✅ Fixed in 1.0.2: the Native Door switching itself off on Windows

On Windows, the Native Door went into safe mode after the second start and stayed there: FSR 3, DLSS and frame generation were gone until it was reset.

  • The cause was on our side: the Vulkan layer did not answer one lookup with its own function, and Steam's pipeline-cache layer, which sits above it in the games Steam starts, asks exactly that. The game's graphics calls then passed the layer by, so it never saw a frame and every start counted as a failed one. Fixed in both Vulkan layers, on Linux and Windows, and confirmed on a Windows tester's PC.
  • If you were stuck in safe mode, the first start of 1.0.2 clears it by itself, once.

✅ Fixed in 1.0.1: FSR 3 Frame Generation ghosting around your character

In 1.0.0, FSR 3 frame generation drew dithered, half-shifted copies of your character's outline (cape, backpack, weapon) while the camera turned.

  • The cause was on our side, not in FSR 3: the depth image handed to frame generation was not depth. With Valheim's deferred rendering, Unity's copy of "the camera's depth" holds a picture of the scene instead, so frame generation could not tell what was in front of what. Graphics Overdrive now copies depth straight from the game camera's depth buffer. The FSR 3 and DLSS upscalers and DLSS Frame Generation got the same wrong depth in 1.0.0 and get the real one now.
  • A depth check confirms it while you play: every two seconds a few rays are cast into the scene and compared with the depth image, and the status rows of the scaler and of frame generation show the result ("depth checked: ok").

🌌 The Problem: Valheim Leaves Most of Its Own Graphics Dials Locked

Valheim runs on Unity 6000's Built-in Render Pipeline with Post Processing Stack v1. The engine and the game ship far more dials than the settings menu shows:

  • Dormant Screen-Space Reflections: Post-Processing Stack v1 contains a raymarched SSR engine, but Valheim leaves it switched off. Wet stone, metal and polished armor get flat reflections.
  • Downsampled Ambient Occlusion: SSAO is rendered below native resolution.
  • Tiny Streaming Buffers: Async GPU uploads default to a 4 MB buffer and a 2 ms time slice, which can show up as stutter and pop-in when crossing zones.
  • The 150 m Shadow Wall: Sun shadows vanish beyond 150 m, flattening distant mountains and forests.
  • Locked Tessellation: The game has one Tessellation switch for water and terrain, and no way to tune either.
  • Hidden VRAM Blind Spots: There is no way to see how a setting change affects your GPU's video memory.
  • No Modern Upscaler: Below 100% the game only stretches its image (bilinear or nearest neighbor), and it has no frame generation.

Graphics Overdrive opens all of it up in one place, and everything it does is purely local rendering.


👑 Features at a Glance

  1. GPU Detection & VRAM Estimate:
    • Shows the detected GPU, graphics API (Vulkan / DX11 / DX12) and VRAM size.
    • A scene VRAM estimate with a health gauge (Optimal, Moderate, Heavy, Critical): the engine's loaded-texture figure plus a model of the render targets, shadow maps, SSR / AO buffers and grass / LOD meshes. It is a heuristic, not a measurement, and it moves with your dials so you can see which ones are expensive.
  2. Njord Dark Obsidian UI:
    • Obsidian black panels with Norse Gold trim.
    • Opening F11 frees the cursor and blocks player input and camera look while the window is open.
  3. Graphics Menu Takeover:
    • A diagonal red ribbon on Settings > Graphics, a live VRAM banner, a preset bar, and Overdrive sliders above the standard Valheim rows.
    • Presets: Vanilla, Balanced, High, Ultra, SSRT, plus your own saved presets.
    • How it interacts with the game's own sliders: the mod applies its dials right after the game applies its graphics settings, so for the values the mod controls (shadows, LOD, point lights, grass, streaming, soft particles) the Overdrive dial wins over the game's own slider while the mod is enabled. The game's on/off checkboxes for anti-aliasing, SSAO, bloom, chromatic aberration, motion blur and tessellation stay in charge, and so does the 3D resolution while CustomRenderScalePercent is 100. Overdrive dials apply at once and are saved to the config right away, so Back in the Settings window does not undo them.
  4. Screen-Space Reflections (SSR):
    • Raymarched reflections on opaque surfaces (wet stone, metal, polished armor) using Post-Processing Stack v1's SSR. This is screen-space only, so it cannot reflect anything off-screen, and Valheim's water is a transparent shader, so SSR does not add reflections to the water surface itself. It is not hardware ray tracing (Valheim's graphics device does not expose any).
    • Up to 1024 ray steps, step size, max distance, blur, brightness and backface tracing.
  5. Full-Resolution Ambient Occlusion:
    • Disables the forced downsampling for native-resolution Amplify Occlusion with 4 quality levels.
  6. Shadows up to 800 m & Unlimited Point-Light Shadows:
    • 2 or 4 directional cascades, up to 4096 px maps, Close-Fit or Stable-Fit projection.
    • Point-light reach and shadow reach are applied to every light, including the ones that stream in later, and scaled from each light's own vanilla value.
  7. Water, Terrain & Atmosphere:
    • Water tessellation and terrain tessellation as separate dials (the game's Custom/Water and Custom/Heightmap shaders both expose _Tess), plus terrain relief depth, water ripple strength, water refraction strength and a world fog density multiplier.
    • Applied to nearby water and terrain only; the far LOD water and distant terrain stay cheap.
  8. Anti-Aliasing & Post-FX Tuning:
    • FXAA quality preset, TAA sharpening / ghosting / jitter tuning, chromatic-aberration strength, motion-blur shutter / samples / blending, bloom, tonemapper, exposure, contrast, saturation and white balance.
  9. Supersampling (experimental):
    • CustomRenderScalePercent above 100 renders the 3D scene into a larger buffer and scales it down (SSAA). Below 100 uses the game's own upscaler.
  10. AMD FSR 3 Upscaling & Frame Generation (experimental, Vulkan):
    • Pick your fidelity with a preset or the dials, then pick the scaler on its own: Vanilla, or FSR 3 from Native AA to Ultra Performance, with an output scale up to 200% for supersampling. "Ultra" + "FSR 3 Performance" pairs like it does in other games.
    • FSR 3 frame generation: generated frames fill the gap up to your frame limit (real frames first), with the HUD kept sharp.
    • With the optional DLSS Add-on (GeForce RTX): DLSS, DLAA and DLSS Frame Generation in the same menus.
    • Needs the Native Door, which is on by default and changes nothing until you choose FSR 3 or DLSS. See the FSR 3 section below.
  11. Performance HUD (F10):
    • FPS, frame time, 1% and 0.1% lows, memory, VRAM estimate and the active scaler.
  12. Live Tweak Suite (F11):
    • A floating window with 8 tabs, including the scaler and frame-generation dials, a read-only graphics API / GPU capability panel and a shader property dump button for finding further dials.
    • Every setting is in both places: the F11 window and Settings > Graphics carry the same dials, in the same order.
  13. Menu-Scene Stress Test:
    • A short camera tour of the main-menu scene that records average / 1% low FPS and saves a report. It never touches a world or your character. See the Benchmark section below.

🎛️ Complete Knob & Dial Reference

Every dial can be tuned via Esc > Settings > Graphics (or Settings on the main menu), the F11 Live Overlay, or BepInEx/config/com.wubarrk.graphicsoverdrive.cfg. The Vanilla column is the game's own value, read from its shipped assets (Valheim 1.0). The Presets column is the span across the built-in Balanced, High, Ultra and SSRT profiles (see Built-in 1-Click Profiles below); the values are written by the presets themselves and are not recommendations on top of them. Category names match the sections of the config file.

Category Setting Range / Options Vanilla Presets (Balanced – SSRT) What it does
Master MasterEnable True / False — — Master switch for every override. Turning it off re-applies the game's own graphics settings right away (quality settings, light ranges, post-processing, render scale) and stops the mod applying anything; per-object values (grass, water, terrain, smoke, item glow, camera) return as those objects are recreated, at the latest on the next start.
Master CurrentPreset a built-in or saved preset name, or Custom — — The active profile. Set automatically when you pick a preset or tweak a dial.
Master AutoApplyResolutionPresets True / False — — When the display resolution changes, switch to the profile you last chose on that resolution.
Master ExclusiveControl True / False — — On (default): Graphics Overdrive's values are the ones drawn. Right before each frame, what another graphics mod changed among the settings this mod has a dial for is put back, and doubled effects are reduced to one (one AO, one anti-aliasing, one reflection pass, the game's own post-processing profile). Off: whichever mod writes last wins.
Master ResolutionPresetsMap text — — Which profile is linked to which resolution (for example 1920x1080:ultra;2560x1440:balanced). Managed by the mod.
Ray Tracing & AO EnableScreenSpaceReflections True / False Off Off – On Post-Processing Stack v1 screen-space reflections on opaque surfaces (wet stone, metal, polished armor). Screen-space only, so nothing off-screen is reflected, and the transparent water surface gets none.
Ray Tracing & AO SSRQuality Low, High — (SSR is off) Low – High Half-resolution or full-resolution reflection buffer.
Ray Tracing & AO SSRIterationCount 16 – 1024 — 128 – 512 Raymarch steps per pixel. More steps reach farther and sharper at a higher GPU cost.
Ray Tracing & AO SSRStepSize 1 – 8 — 2 – 3 Raymarch stride (log2); lower catches finer silhouettes.
Ray Tracing & AO SSRMaxDistance 10 – 300 m — 120 – 280 m Reflection trace distance.
Ray Tracing & AO SSRReflectionMultiplier 0 – 2 — 1 – 1.25 Reflection brightness.
Ray Tracing & AO SSRReflectionBlur 0.1 – 4 — 0.8 – 1 Blur applied to the reflections.
Ray Tracing & AO SSRReflectBackfaces True / False — Off – On Trace through backfaces (slight cost, better vertical reflections).
Ray Tracing & AO AOFullResolution True / False Off (downsampled) On Native-resolution ambient occlusion instead of the game's downsampled one.
Ray Tracing & AO AOSampleCount Low, Medium, High, VeryHigh Medium Medium – VeryHigh Amplify Occlusion samples per pixel.
Ray Tracing & AO AOIntensity 0 – 3 1 1 – 1.35 Multiplier on the game's per-environment AO intensity.
Ray Tracing & AO AORadius 0.2 – 8 m 3 m 2 – 3 m Occlusion radius.
Ray Tracing & AO AOPowerExponent 0.5 – 4 3 1.8 – 2 Occlusion contrast curve.
Shadows & Lighting ShadowDistance 50 – 800 m 150 m 220 – 700 m Directional shadow draw distance.
Shadows & Lighting ShadowMapResolution Low, Medium, High, VeryHigh High (2048) High (2048) – VeryHigh (4096) Directional shadow map size.
Shadows & Lighting ShadowCascades 2, 4 4 4 Number of directional shadow cascades (Unity supports 2 or 4).
Shadows & Lighting ShadowNearPlaneOffset 0.1 – 10 m 3 m 3 m Shadow near-plane offset (acne versus detached shadows).
Shadows & Lighting ShadowProjectionMode CloseFit, StableFit StableFit CloseFit CloseFit is sharper, StableFit removes shimmer when the camera rotates.
Shadows & Lighting PixelLightCount 4 – 32 8 12 – 32 Forward pixel light limit (transparents, particles).
Shadows & Lighting PointLightDistance 20 – 200 m 40 m 60 – 150 m Reach of torches, sconces and campfires (scaled from each light's own value).
Shadows & Lighting PointLightShadowDistance 10 – 150 m 20 m 35 – 90 m Distance at which point lights cast shadows.
Shadows & Lighting PointLightLimit -1 (unlimited) – 500 40 40 – unlimited How many point lights the game keeps switched on at once (the nearest ones win).
Shadows & Lighting PointLightShadowLimit -1 (unlimited) – 32 3 6 – unlimited Simultaneous shadow-casting point lights.
Shadows & Lighting RealtimeReflectionProbes True / False On On Realtime reflection probe updates (glossy armor, wet surfaces).
LOD & Streaming LodBias 0.5 – 10x 2x 2.5 – 7.5x Mesh LOD multiplier (less pop-in).
LOD & Streaming MaximumLodLevel 0 – 3 0 0 Highest LOD level allowed (0 = full-detail meshes always allowed).
LOD & Streaming EnableLodCrossFade True / False On On Dithered crossfade between LOD levels.
LOD & Streaming ParticleRaycastBudget 1024 – 16384 4096 4096 – 16384 Raycasts per frame for colliding particles.
LOD & Streaming AnisotropicMode Disable, Enable, ForceEnable ForceEnable ForceEnable Anisotropic filtering.
LOD & Streaming MaxQueuedFrames 1 – 3 2 1 Frames the CPU may queue ahead of the GPU (1 = lowest input latency, 3 = highest throughput).
LOD & Streaming AsyncUploadBufferSizeMB 4 – 256 MB 4 MB 32 – 128 MB Async texture / mesh upload buffer. Larger can reduce stutter while zones stream in, at the cost of memory.
LOD & Streaming AsyncUploadTimeSliceMS 1 – 32 ms 2 ms 4 – 16 ms CPU time per frame spent on background uploads.
LOD & Streaming BackgroundLoadingPriority Default, Low, BelowNormal, Normal, High the game's own Default How much time per frame Unity spends integrating background-loaded assets (zone streaming). Default leaves the game alone.
Foliage & Clutter ClutterDistance 30 – 160 m 45 m 60 – 130 m Grass and ground clutter radius. Beyond about 100 m the mod also raises each grass prefab's own fade distance, which the game caps at 100 m.
Foliage & Clutter ClutterDensityScale 0.2 – 3x 1.5x 1.1 – 1.8x Vegetation density. Changing either grass dial rebuilds the grass once the slider stops moving.
Resolution & AA CustomRenderScalePercent 50 – 200% 100 (the game's own 3D-resolution setting) 100% Below 100 uses the game's upscaler; above 100 renders larger and scales down (supersampling, experimental). 100 leaves the game's own setting alone. Not used while FSR 3 runs (FSR 3 sets the render size).
Resolution & AA AAMode Off, FXAA, TAA TAA TAA Anti-aliasing method. The game's own "Anti-aliasing" checkbox is still the master switch. Switched off while FSR 3 runs, because FSR 3 anti-aliases the image itself.
Resolution & AA OverrideAaTuning + FxaaQuality, TaaSharpen, TaaStationaryBlending, TaaMotionBlending, TaaJitterSpread FXAA presets; TAA 0 – 3, 0 – 0.99, 0 – 0.99, 0.1 – 1 FXAA ExtremeQuality; TAA 0.3 / 0.95 / 0.85 / 1.0 Off Custom FXAA preset and TAA sharpness, ghosting and jitter.
Resolution & AA SoftParticles True / False On On Depth-faded particles.
Resolution & AA ForceMaxTextureResolution True / False Off (the game already runs at full resolution) Off – On Pins the global texture mip limit to 0. The game already runs at 0, so this only guards against other mods lowering it.
Post-FX & Camera OverrideBloom + BloomIntensity, BloomThreshold, BloomSoftKnee, BloomRadius 0 – 2, 0.1 – 2, 0 – 1, 1 – 7 0.3, 0.7, 0.7, 5 Off Bloom override.
Post-FX & Camera OverrideColorGrading + TonemapperMode, PostExposureEV, ColorContrast, ColorSaturation, ColorTemperature None / ACES / Neutral, ±2 EV, 0.5 – 2, 0 – 2, ±50 ACES, +1.0 EV, 1.2, 1.0, -8 Off (SSRT switches it on with these same values) Color grading override.
Post-FX & Camera SunShaftsIntensity, SunShaftsBlurRadius 0 – 3, 0.5 – 6 1.0, 3.0 1.1 – 1.6, 3 God rays.
Post-FX & Camera CameraFieldOfView 40 – 110° 65° 70 – 85° Field of view. The mod leaves the game's temporary FOV effects (grapple kick and similar) alone.
Post-FX & Camera CameraMaxDistance 3 – 35 m 8 m (boat 16 m) 8 – 15 m Third-person zoom limit. The boat limit stays at twice this value.
Post-FX & Camera CameraShakeScale 0 – 2x 1x unchanged Screen-shake multiplier. Presets keep your own value.
Post-FX & Camera OverrideChromaticAberration + ChromaticAberrationIntensity 0 – 1 0.15 Off Strength of chromatic aberration (its on/off is the game's own setting).
Post-FX & Camera OverrideMotionBlur + MotionBlurShutterAngle, MotionBlurSampleCount, MotionBlurFrameBlending 0 – 360°, 4 – 32, 0 – 1 150°, 10, 0 Off Motion blur tuning (its on/off is the game's own setting).
Water, Smoke & Spirits SmokePuffSize 0.5 – 10 m 4 m 1.6 – 2.4 m Campfire and chimney smoke puff size.
Water, Smoke & Spirits SpiritVfxIntensity 0 – 3x 1x 1.1 – 1.6x Multiplier for the glow particles on upgraded weapons and armor. Items without glow stay unchanged.
Water, Terrain & Atmosphere WaterTessellation 1 – 32 4 6 – 16 Tessellation factor of the near water surface (Custom/Water _Tess).
Water, Terrain & Atmosphere WaterRippleStrength 0.25 – 4x 1x 1x Multiplier on the water normal-map strength (_NormalScale).
Water, Terrain & Atmosphere WaterRefractionStrength 0 – 3x 1x 1x Multiplier on refraction distortion (_RefractionScale).
Water, Terrain & Atmosphere TerrainTessellation 1 – 32 4 4 – 12 Tessellation factor of nearby terrain (Custom/Heightmap _Tess).
Water, Terrain & Atmosphere TerrainDisplacementScale 0 – 3x 1x 1 – 1.5x Multiplier on terrain relief depth (_Displacement).
Water, Terrain & Atmosphere FogDensityScale 0 – 3x 1x 1x Multiplier on the world fog density.
Performance HUD EnableFpsHud, FpsHudToggleKey, FpsHudPosition, FpsHudShowFrameTime / Lows / Memory / Vram, FpsHudTextScale (0.7 – 2), FpsHudBackgroundAlpha (0 – 1) — — — On-screen performance overlay (F10). Frames longer than 1 s (loading screens, alt-tab) are not counted in the lows.
Live Overlay LiveOverlayToggleKey any key — — Opens the live tweak window (F11).
Diagnostics VerboseLogging True / False — — Extra [GraphicsOverdrive] lines in the BepInEx log (rate limited).

Tessellation note: the water and terrain tessellation dials only take effect while the game's own Tessellation setting (Settings > Graphics) is on. The overlay's Water tab shows its state.

SSR note: the SSR settings do nothing until EnableScreenSpaceReflections is on (Balanced leaves it off; High, Ultra and SSRT switch it on).


⚡ Built-in 1-Click Profiles

The preset bar sits on the Graphics Settings tab and in the F11 Live Overlay. Every built-in preset starts from the game's own values, so switching presets never leaves the previous preset's overrides behind. Each line lists what differs from Vanilla.

  1. 🛡️ Vanilla: the game's own values (150 m shadows at 2048 px with StableFit projection, 45 m grass at 1.5x density, 2x LOD, torches 40 m with shadows to 20 m, 40 active point lights, TAA, ACES, 65° field of view, a 4 MB streaming buffer, SSR off, tessellation 4).
  2. ⚔️ Balanced: 220 m shadows (CloseFit), full-res AO, 12 pixel lights, torches 60 m (shadows 35 m), 2.5x LOD, 60 m grass at 1.1x, 1-frame queue, 32 MB streaming, water tessellation 6, smaller smoke puffs (1.6 m), 70° field of view. SSR off.
  3. 👑 High: 320 m shadows at 4096 px, SSR (half-res, 128 steps), High AO, 16 pixel lights, torches 80 m (shadows 50 m, 80 active lights), 3.5x LOD, 80 m grass at 1.25x, 64 MB streaming, water 8 / terrain 6, 75° field of view, 10 m zoom.
  4. 🔥 Ultra: 480 m shadows, SSR (full-res, 256 steps), VeryHigh AO, 24 pixel lights, torches 110 m (shadows 70 m), unlimited point lights and point-light shadows, 5x LOD, 105 m grass at 1.5x, 128 MB streaming, water 12 / terrain 8, 80° field of view, 12 m zoom.
  5. 🌟 SSRT: the maximum-quality profile. 700 m shadows, SSR (full-res, 512 steps, 280 m), VeryHigh AO, 32 pixel lights, torches 150 m (shadows 90 m), unlimited point lights, 7.5x LOD, 130 m grass at 1.8x, 128 MB streaming, water 16 / terrain 12, 85° field of view, 15 m zoom. Very heavy on the GPU; the name stands for screen-space ray tracing, which here means the raymarched screen-space reflections.

The tuned presets also set field of view and zoom distance; change them afterwards if you prefer your own (screen shake is never touched by a preset).

The scaler (Vanilla or FSR 3, see below) is not part of a preset: you pick it separately, and changing presets keeps it.

A fresh install starts on Balanced, or on Vanilla when the GPU reports under 4 GB of VRAM. Your own saved presets appear next to the built-in ones. Tweaking any dial (in the menu, the overlay or BepInEx's configuration manager) switches the active profile to Custom, and Custom is kept across restarts and display changes. Values in the config file that were edited by hand and no longer match the stored preset are kept as Custom at startup instead of being overwritten. Choosing a preset applies it (and links it to the current display resolution, so a laptop / external monitor swap can switch profiles automatically).


🚀 FSR 3 Upscaling & Frame Generation (Native Door, experimental)

Valheim has no modern upscaler. Graphics Overdrive adds AMD FSR 3 through its Native Door: a small patcher and Vulkan libraries that ship in this package. The Native Door is on by default: it opens at game start, so FSR 3 can be picked without a restart, and nothing in the picture changes until you choose FSR 3 (or DLSS with the add-on). It can be switched off on the settings page.

What you get

  • FSR 3 upscaling as its own scaler, next to the game's own (Vanilla). Modes, with the render size per axis: Native AA (full size, anti-aliasing only), Ultra Quality (1.3x smaller), Quality (1.5x), Balanced (1.7x), Performance (2x) and Ultra Performance (3x). Each button shows the render size for your screen.
  • Output scale 100 – 200%: above 100, FSR 3 builds an image larger than your screen and scales it down, which is supersampling on top of FSR 3's anti-aliasing.
  • Sharpening (FSR 3's RCAS, 0 = off) and texture mip bias (Auto keeps textures sharp at the lower render size, as AMD recommends; Manual; Off).
  • FSR 3 frame generation: generated frames between the rendered ones, for smoother motion with a little more input latency. By default it fills up to your frame limit: every frame the game renders in time is shown as it is, and generated frames fill the gaps (for example 80 rendered + 40 generated = 120 frames per second; in a heavy fight 50 + 70). While the game keeps up with the limit by itself, nothing is generated. It never slows the game down: after a hitch it catches up instead of showing everything later. It works with Vanilla scaling too. AMD recommends a base frame rate of about 60 FPS or more.
  • A sharp HUD with frame generation: with FSR 3 as the scaler at output scale 100%, frame generation also gets the game's 3D view without the HUD, so the crosshair, hotbar, minimap, chat and menus come from the rendered frames instead of being interpolated with the moving scene.
  • The scaler is independent of the presets, so any preset pairs with any FSR 3 mode.

Requirements

  • Vulkan. On Linux, the native Linux version of Valheim already runs on Vulkan. On Windows, Valheim runs on Direct3D 11 unless you add -force-vulkan to its launch options (Steam: right-click Valheim > Properties > General > Launch Options). Under Proton, use the native Linux version instead. macOS is not supported.
  • A GPU and driver with Vulkan support. FSR 3 runs on AMD, NVIDIA and Intel GPUs. If your GPU lacks a feature FSR 3 needs, the settings page says so and FSR 3 stays off.

How to switch it on

  1. The Native Door is on by default. If you switched it off: Settings > Graphics, section 🎯 RESOLUTION, SCALING & TEXTURES, switch on Native Door for FSR 3, then restart the game.
  2. On the same page, choose Scaler: FSR 3 and a mode. It applies at once, and the status row shows the render size and the cost per frame.
  3. For frame generation, choose Frame Gen: FSR 3 and restart once. After that, switching between FSR 3 and Off works without a restart. The status row shows rendered + generated frames per second.

The same controls are in the F11 overlay (tab 🎯 Scaling).

Good to know

  • The very first start of FSR 3 can hitch for a moment while the graphics driver compiles its shaders.
  • FSR 3 upscales the game's finished image, post effects included. The game's own anti-aliasing is switched off while FSR 3 runs, because FSR 3 does its own.
  • The HUD is kept sharp only with FSR 3 as the scaler at output scale 100% (the status row says "HUD from the real frames"). With the Vanilla scaler, supersampling above 100% or DLSS Frame Generation, the HUD is part of the generated frames, so its edges (crosshair, hotbar, minimap) can smear slightly while the camera moves. HUD elements that move with the world (enemy health bars, damage numbers) are shown at the rendered frame rate.
  • Depth check: the status rows of the scaler and of frame generation end with "depth checked: …". "ok" means the depth handed to FSR 3 / DLSS matches the scene. "Unsure" shows when little with collision is in view (open sky, water) and clears by itself. NOT DEPTH, UPSIDE DOWN or NEAR AND FAR SWAPPED should never show unless the "old depth copy" diagnostics switch is on: please report it with your logs.
  • Things the game animates inside its shaders (wind in trees and grass, water waves, particles, fire and smoke) come without motion vectors from the game, so frame generation has to estimate their movement: a little shimmer or ghosting around them is expected.
  • The frame generation limit (🖥️ FRAME PACING > Frame Gen Limit) is the most frames shown per second. Its default 0 means your display's refresh rate, so frame generation never shows more frames than the display can (the extra frames would tear). On a VRR display (FreeSync, G-Sync) set it a few below the refresh rate, for example 162 on a 165 Hz screen. With the game's Vsync on, the display's refresh rate is the limit.
  • Use one frame generator at a time. Do not combine it with Lossless Scaling, lsfg-vk, AFMF or your driver's own frame generation.
  • Safe mode: if the game fails to reach its first frame twice in a row with the Native Door on, the Native Door switches itself off and the settings page says why. To try again, delete BepInEx/cache/GraphicsOverdrive/vulkan/strikes.txt.
  • What it touches: at game start the patcher (BepInEx/patchers) switches on a Vulkan layer that enables the GPU features FSR 3 needs. It also copies one small library into the game's own plugin folder, where Unity hands it the frame: valheim_Data/Plugins/x86_64/go_router.dll on Windows, libgo_router.so on Linux. Switching the Native Door off removes that copy at the next start. If you uninstall the mod while the Native Door is on, delete that one file yourself; it does nothing on its own.
  • Logs: BepInEx/cache/GraphicsOverdrive/vulkan/ (patcher.log, layer.log, router.log, fg.log) plus the [Native], [Upscaler] and [FrameGen] lines in BepInEx/LogOutput.log. With Fill pacing fg.log gets a line every 10 seconds (rendered and shown rates, frame times, each kind of jump, latency), so a stretch that felt choppy can be found in it; past 1 MB the log moves to fg.log.old at the next start. Please include them, with your GPU, driver and operating system, when you report a problem.
  • DLSS comes as a separate, optional download: the Graphics Overdrive DLSS Add-on (GeForce RTX cards). It carries NVIDIA's DLSS runtime under NVIDIA's own licence, so this mod stays free of NVIDIA code. With the add-on installed, the scaler and frame-generation rows also list DLSS (DLAA to Ultra Performance, DLSS Frame Generation on RTX 40 series and newer). Without it, nothing here changes.

Native Door settings (config sections Native and Native Scaler; they appear only when the Native Door patcher is installed):

Setting Range / Options Default What it does
[Native] Enabled True / False True The Native Door itself, on by default so FSR 3 can be picked without a restart (it does nothing on DirectX, servers and headless runs). Takes effect at the next game start.
[Native] FrameGeneration Off, FSR3; with the DLSS add-on also DLSS, NvidiaSmoothMotion Off FSR3 = AMD FSR 3 frame generation (any GPU). DLSS = DLSS Frame Generation (DLSS add-on, RTX 40 series and newer). NvidiaSmoothMotion = the NVIDIA driver's own frame generation (DLSS add-on installed, Linux, RTX 40 series and newer). Turning it on from Off takes effect at the next game start; after that, FSR3, DLSS and Off switch live.
[Native] FrameGenHudless True / False True Keep the HUD sharp with frame generation: it gets the 3D view without the HUD, so the HUD comes from the rendered frames. Needs FSR 3 frame generation and FSR 3 as the scaler at output scale 100%; otherwise the HUD is interpolated as before. The layer checks the copy against the screen and sets it aside by itself if it does not match. Off = interpolate the HUD (for comparison).
[Native] FrameGenUprightInputs True / False True Diagnostics only, leave on. Frame generation gets the game's depth and motion vectors turned the right way up (Unity keeps them upside down on Vulkan). Off hands them over as stored, which makes moving things ghost in the generated frames; it exists to compare the two live (F11 Scaling tab and the settings page).
[Native] FrameGenOldDepthCopy True / False False Diagnostics only, leave off. Hands frame generation and the upscaler the depth copy of 1.0.0, which with the game's deferred rendering is a picture of the scene rather than depth: the ghost around your character comes back and the depth check in the status rows says NOT DEPTH. It exists to compare the two live (F11 Scaling tab and the settings page).
[Native] FrameGenPlayerMotionVectors True / False False Diagnostics, live: every renderer on your own character (body, armour, cape, backpack, weapons) writes its own motion vectors (per-object, skinned). If a ghost around your character disappears with it, some of them did not; with VerboseLogging each renderer's own setting is logged when your equipment changes. Off puts them back.
(no setting) Diagnostics: record 24 frames for the developer switch off Both menus, with frame generation on. Switch it on, close the menu and turn the camera around your character: after 3 s it waits for the camera to turn (at most 20 s), then saves what frame generation works on for 24 consecutive frames: depth and motion vectors, the upscaled image as the screen gets it and each frame's camera numbers, to BepInEx/cache/GraphicsOverdrive/capture-<time>/ (raw data, about 28 MB per frame at 2560x1440, about 0.7 GB in all, written in the background). It switches itself off when the files are written; nothing changes on screen. For the developer to replay the frames offline.
[Native Scaler] Scaler Vanilla, FSR3; with the DLSS add-on also DLSS Vanilla Vanilla = the game's own scaler with CustomRenderScalePercent. FSR3 = AMD FSR 3. DLSS = NVIDIA DLSS (DLSS add-on, GeForce RTX).
[Native Scaler] Quality NativeAA, UltraQuality, Quality, Balanced, Performance, UltraPerformance Quality FSR 3 / DLSS mode (render size per axis: 1x, 1.3x, 1.5x, 1.7x, 2x, 3x smaller). With DLSS, NativeAA is DLAA, and UltraQuality is FSR 3 only.
[Native Scaler] OutputScalePercent 100 – 200 100 Size of the upscaled image relative to the screen; above 100 it is scaled down to the screen (supersampling).
[Native Scaler] Sharpness 0 – 1 0.25 FSR 3 sharpening (RCAS), 0 = off.
[Native Scaler] DlssPreset Default, J, K, L, M Default DLSS add-on only: the DLSS model ("DLSS Model" in the menus, where Default reads "Auto"). Default lets NVIDIA choose per mode; K = transformer (best quality), J = like K with less ghosting but more flicker, L = the default of Ultra Performance, M = the default of Performance.
[Native Scaler] MipBias + MipBiasManual Auto, Manual, Off; -3 – 1 Auto; -1 Texture sharpness while FSR 3 renders below the screen size. Auto = log2(render / output) - 1.
[Native Scaler] DiagnosticFlipMotionX / Y True / False False Diagnostics only. Leave these off unless moving the camera smears the picture, and report it if it does.
[Native] DeviceExtensions, Features, Inject, LayerLogLevel text / True, False / 0 – 2 as shipped Advanced: what the Vulkan layer switches on, and how much it logs.
[Native] RayTracing True / False False Experimental probe, next game start. The layer also switches on the GPU's hardware ray tracing on the game's Vulkan device, and the mod checks whether it works there: it traces 4096 test rays inside the game's frame, reports whether Unity's own ray tracing turns on, and counts what a ray-traced scene would have to cover once you are in a world. Nothing is drawn with ray tracing; the results are the [RayTracing] lines in BepInEx/LogOutput.log and the F11 Engine tab.

Frame pacing (Settings > Graphics, section 🖥️ FRAME PACING, and the F11 Scaling tab; works with or without the Native Door). These settings go through the game's own frame limiter, so its FPS limit and its 60 FPS menu cap still apply. The game runs borderless and cannot switch your display's mode (Unity's exclusive fullscreen exists only on Windows); a limit below the display's refresh rate is a pacing target that a VRR display (FreeSync, G-Sync, adaptive sync) follows. The same section has the switch for the FPS HUD (F10), which shows the frames on screen with frame generation and the real (rendered) rate underneath.

Setting Range / Options Default What it does
[Display] FrameGenLimit 0 – 360 (the slider goes up to your display's rate) 0 Frame generation limiter: the most frames per second shown while frame generation runs, 0 = the display's refresh rate. With Fill pacing the game renders up to this many frames itself and generated frames fill the rest; with Even 2x the game renders half of it. On a VRR display set it a few below the refresh rate; without VRR pick one that divides the refresh rate (90 or 60 on 180 Hz), or frames stay on screen for uneven numbers of refreshes (the status row says so). With the game's Vsync on the display's refresh rate is the limit. Without frame generation it does nothing (use the game's own FPS limit).
[Display] FrameGenPacing Even2x, Fill Even2x Even2x: exactly one generated frame halfway between two rendered ones; the game renders half the limit, which leaves it spare time, so its frames stay even (Valheim's frame times vary a lot). Fill (FSR 3): frames go out on an even clock at the limit; every rendered frame that arrives in time is shown, generated frames fill the gaps (up to 4 per rendered frame), and nothing is generated while the game keeps up. Fill works best when the game's own frame rate is steady: an unusually long frame shows as a small jump. It has about half a rendered frame more latency. DLSS Frame Generation always uses Even2x.
[Display] HalfRefreshRate True / False False The game renders at most half the display's refresh rate. With frame generation the generated frames fill up to the limit; without it and with the game's Vsync on, every frame is shown for two refreshes.
[Display] FixUnsupportedResolution True / False True At game start, a saved fullscreen resolution that the monitor does not offer (for example one kept from a laptop screen after moving to an external monitor) is replaced by the monitor's largest mode and saved; Valheim checks this itself only on the Steam Deck. With frame generation on, a saved fullscreen resolution of another shape than the monitor (16:10 on a 16:9 monitor) is replaced by the monitor's own resolution, because it crashed the game in the graphics driver right after start (Linux, XWayland). Same-shape choices (1920x1080 on 2560x1440) are kept; windowed mode is never changed.

🏁 Benchmark

A menu-scene stress test, started from Settings > Graphics on the main menu (button under the preset bar). In a loaded world the button is grayed out.

  • The camera tours the viewpoints the game itself placed in the menu scene (about 3.5 s per leg, roughly 20 s in total) while frame times are recorded. It only moves the menu camera, so it cannot affect a world, your character, other players or a server.
  • Before it starts, your current dials are saved as a preset called benchmarked_N (the newest one is reused when nothing changed), and Settings closes as if you had pressed OK.
  • The result screen shows average FPS, 1% / 0.1% lows, frame-time deviation, a per-leg breakdown and an estimated peak VRAM, and a report is written to BepInEx/config/GraphicsOverdrive/Benchmarks/.
  • While it runs, the game's own 60 FPS menu cap is lifted so the number reflects your GPU. If V-Sync or a frame limit is on, the report says so, because the numbers cannot exceed it.
  • Esc aborts a run. An aborted run records nothing.
  • Scope: the menu scene is much lighter than a world. Use it to compare presets and dials on the same PC and resolution, not to predict FPS in a base or a forest. For real gameplay numbers use the FPS counter (F10) while you play.

⌨️ Hotkeys

Hotkey Action Description
F10 Toggle Performance HUD FPS, frame time, 1% / 0.1% lows, memory, VRAM estimate. Rebindable in the config.
F11 Toggle Live Tweak Overlay The live tweaking suite with cursor unlock and input blocking. Rebindable in the config. F11 is also the game's screenshot key; it does not take a screenshot when it opens or closes the overlay.
Esc Abort stress test Stops a running menu-scene stress test and restores the menu.

🔌 What a Mod Can and Can't Do

The plugin changes what Unity and the game already expose. The Native Door (see the FSR 3 section) goes one step further: it opens the game's Vulkan device before the game creates it, which is how FSR 3 gets in. What is still not possible:

  • Not included: hardware ray tracing, XeSS or NVIDIA Reflex. SSR here is screen-space. DLSS is the separate add-on (see the FSR 3 section). An experimental switch ([Native] RayTracing) only tests whether hardware ray tracing can run on the game's device; nothing is drawn with it.
  • No async-compute tricks. The game has almost no compute work to overlap.
  • No variable-rate shading. Unity enables the Vulkan extension but exposes no managed API for it.
  • FSR 3 needs Vulkan. On Windows that means the -force-vulkan launch option; under Direct3D 11 the Native Door stays closed. External tools such as gamescope (FSR 1) on Linux keep working as before. Frame-generation tools such as Lossless Scaling run outside the game, so do not stack them with FSR 3 frame generation.
  • The F11 Engine tab lists what your GPU / API report supports.

💡 Good to Know

  • Watch the cost. The heavy dials are SSR (full resolution and many steps), full-res AO, tessellation factors, a render scale above 100%, very long shadow distances and high LOD bias. The presets are ordered by cost; raise things one at a time with the F10 HUD and the VRAM gauge open.
  • The VRAM gauge is an estimate. It follows your dials in the right direction but is not a measurement.
  • Turning the master switch off re-applies the game's own graphics settings at once (quality settings, light ranges, post-processing, render scale). Per-object values such as grass, water, terrain, smoke, item glow and camera return as those objects are recreated, at the latest on the next start.
  • Where things live: the config is BepInEx/config/com.wubarrk.graphicsoverdrive.cfg, saved presets are BepInEx/config/GraphicsOverdrive/Presets/*.json, stress-test reports are in BepInEx/config/GraphicsOverdrive/Benchmarks/, and the Native Door keeps its logs and state in BepInEx/cache/GraphicsOverdrive/vulkan/. To start over, delete the cfg (and the Presets folder if you want).
  • Troubleshooting: the mod's lines in BepInEx/LogOutput.log come from the GraphicsOverdrive source; switch on VerboseLogging for more detail. If a game update breaks one dial, the mod skips only that part, logs one warning line for it ("could not be applied and is skipped") and everything else keeps working.

🧩 Compatibility

  • Client-side only. It works in single-player and on any server, and nobody else needs it. It never touches networking, world data or other players.
  • Other graphics mods: with Exclusive Control on (the default, [0 - Master] ExclusiveControl, also on the settings page and in the F11 Engine tab), Graphics Overdrive's values are the ones drawn. Right before each frame it puts back anything another mod changed among the settings it has a dial for (shadows, LOD, reflection probes, anti-aliasing, SSR, AO, post-FX values, water and terrain), and it removes doubled effects: one ambient occlusion (the game's Amplify Occlusion, so a second post-stack or add-on AO is switched off), one anti-aliasing (FXAA / TAA, or FSR 3 / DLSS alone, no MSAA on top), one reflection pass and the game's own post-processing profile. The first correction of each setting is logged once, the F11 Engine tab counts them and names the mods that patch the game's graphics code. Settings Graphics Overdrive has no dial for (for example another mod's water colour, normal-map strength or depth-of-field tuning) stay with that mod. Switch Exclusive Control off to let whichever mod writes last win.
  • Dedicated servers: if the DLL is placed on a server by accident it detects the headless process, writes nothing and does nothing. The Native Door patcher stays inert on servers too.
  • Overlays and other Vulkan layers (Steam overlay, MangoHud, OBS capture and similar) can run alongside the Native Door. Use only one frame generator at a time.

🔒 Privacy

Graphics Overdrive never connects to the internet: it downloads nothing, collects nothing and sends nothing. Everything it writes stays in your BepInEx folder, plus the one Native Door library in the game's plugin folder while the Native Door is on.


📦 Installation

Gale Mod Manager (Recommended)

  1. Install Gale Mod Manager.
  2. Click Install with Mod Manager at the top of this page.

Manual Installation

  1. Ensure you have BepInEx 5.4.2351 installed for Valheim.
  2. Download the release zip and extract:
    • plugins/GraphicsOverdrive.dll into Valheim/BepInEx/plugins/GraphicsOverdrive/;
    • the contents of patchers/ (the patcher DLL and its native folder) into Valheim/BepInEx/patchers/GraphicsOverdrive/. Keep the native folder next to the patcher DLL. This part is only needed for FSR 3.
  3. Launch the game and open Settings > Graphics.

Dependency: denikson-BepInExPack_Valheim-5.4.2351.


📜 Licence & Credits

  • Graphics Overdrive © 2026 Wubarrk. All rights reserved, with the permissions listed in LICENSE.txt: play it, install it through mod managers and modpacks that reference this package, and show it in videos and streams.
  • FSR 3 comes from the AMD FidelityFX SDK (MIT licence, modified build). The Windows libraries also contain the MinGW-w64 runtime. The notices are in THIRD-PARTY-NOTICES.txt.
  • AMD, FidelityFX and FSR are trademarks of Advanced Micro Devices, Inc. NVIDIA, GeForce RTX and DLSS are trademarks of NVIDIA Corporation. Vulkan is a registered trademark of The Khronos Group Inc. Graphics Overdrive is an independent mod, not affiliated with or endorsed by AMD, NVIDIA, The Khronos Group, Iron Gate or Coffee Stain.

Crafted with pride by Wubarrk. Join our community and follow updates on Discord: https://discord.com/invite/GTTCnGS6Ym.

CHANGELOG

Changelog

[1.1.1]

  • Two menu modes: Basic and Expert, on Settings > Graphics and in the F11 window. The new Menu mode row is the first control in both, and switching changes no graphics value.
    • Basic (the default) shows the main choices: the presets (Vanilla, Balanced, High, Ultra, SSRT and your saved ones, the active one marked), the scaler with its quality mode, frame generation with its frame limit, ray tracing as one level, the performance HUD and the master switch.
    • Ray tracing levels: Low = sun and moon shadows. Medium = + blocked sky light, torches and fires, water reflections. High = + bounced light and reflections. Ultra = the same at full resolution. A combination you set by hand in Expert mode shows as "Custom".
    • Expert shows every setting. The settings page is organised in sections: ray tracing; scaler, frame generation and pacing; shadows and lights; reflections and ambient occlusion; world detail; water, terrain and atmosphere; post effects and camera; HUD and hotkeys; engine and diagnostics. The F11 window keeps its tabs and gets a Ray Tracing tab that holds everything ray tracing; the hardware ray tracing switch sits there too.
    • A note about restarting the game shows only while it is true (a switch differs from what is running now).
    • Labels and help texts on the settings page are shorter, in sentence case, with the unit in the label ("Grass distance (m, vanilla 45)", "Frame limit (fps, 0 = monitor rate)").
  • Display settings in the F11 window: resolution, window mode (fullscreen or windowed), VSync, FPS limit and the 3D render scale, so the game's own settings page is not needed for them.
    • A resolution or window change is applied with an Apply button and then asks "Keep this display setting?". It goes back by itself after 10 seconds, on Esc, or if you close the game without answering.
    • VSync and the FPS limit are saved the way the game saves them: Settings > Graphics shows them and they survive a restart.
  • Everything is ready at the first game start. The Native Door asks the GPU once and enables what the mod can use: the upscaler, frame generation and hardware ray tracing extensions. Switching frame generation or a ray-traced feature on later needs no restart.
    • Hardware ray tracing is on by default ([Native] RayTracing). It costs nothing while the ray-traced features are off, and a GPU without ray tracing simply does not get it. A config from an earlier version that still says RayTracing = false is switched on once; it stays an opt-out in the settings.
    • Frame generation (FSR 3, and DLSS with the add-on) switches on and off while you play. Its layer is loaded at every start and does nothing while frame generation is Off: the game keeps its own screen buffers, no thread runs, nothing is copied. Switching it on or off makes the game rebuild its screen buffers once (about 50 ms). [Native] FrameGenPreload = false brings back the old behaviour. NVIDIA Smooth Motion still needs a restart.
    • If the graphics driver refuses the full set, the game starts with less instead of failing: first without the ray tracing set, then with the game's own request. The log and the status rows say which one happened.
    • If a game start does not reach its first frame, the next start loads less by itself (no ray tracing set, no frame generation preload), and both menus say so. If that fails too, the Native Door switches itself off, as before. To try the full set again, delete stage.txt in BepInEx/cache/GraphicsOverdrive/vulkan/.
    • Hardware scan: at every start the Native Door records what your GPU offers and what the game and the Native Door use of it (ray tracing, mesh shaders, bindless texturing limits, multi-draw indirect, BC / ASTC / ETC2 texture compression, fragment shading rate, video memory). One summary line goes into the log; the list is on the F11 Engine tab and in the settings page's engine section, the full file is hardware-scan.txt next to the Native Door logs.
    • The ray tracing probe no longer runs by itself at every start; it runs when you press its button (or with verbose logging on).
  • Ray-traced sun and moon shadows reach beyond the traced range (Hybrid and RT only). A forest across a lake, a mountain or anything else too far away to be traced casts its shadow near you again; in 1.1.0 those spots were lit, so a low sun shone through distant forests. The game's own shadow fills in exactly there, and everything that is traced keeps its sharp shadow. New switch Far shadows, on by default, about 0.15 ms per frame on an RTX 4070 laptop GPU.
    • The sun's and the moon's glare on the water disappears where the light is blocked, near or far, while ray-traced water reflections are on (from the Medium level). The game's own water never takes shadows, so without them the glare shines through.
    • Ray-traced sun shadows cost less: each shadow ray goes through the scene once instead of twice (about 40% less shadow-ray time, same picture).
  • Ray-traced torches and fires:
    • Lit exactly like the game's own lights. Valheim draws its lights with its own toon-style shader (light in steps, slightly brighter at full strength). 1.1.0 used Unity's standard formula, about 10% darker and without the steps. Graphics Overdrive now checks which light shader the game uses and matches it; if another mod puts Unity's standard shader back, it matches that.
    • Every light casts its own shadow in its own colour. Before, all traced lights at one spot shared one shadow value, so one torch's shadow came out washed out and tinted with the other lights' colours. Now the two strongest lights at each spot get their own shadows and the rest share one: where a post blocks the fire but a lamp still reaches, you see the lamp's light, and it is easy to tell which light a shadow belongs to.
    • Shadows no longer smear while a flame flickers. The traced shadows follow the light's resting point; the light itself still flickers like the game's. A torch you carry keeps its shadow with you.
    • Sharper and in the right place: a traced light is now the size of a flame (12 cm for a torch; 1.1.0 used up to 30 cm, which made torch shadows too vague to tell where the light was), and shadow edges sit within about half a pixel of the true edge instead of about 2 pixels off.
    • Fire-lit rooms show in reflections and bounced light even when they are off screen: rays that leave the screen now see torches and fires too, not only the sun and the sky.
    • New dial Point Light Strength (0 - 2, default 1 = exactly the game's own brightness).
    • The status row shows what the traced lights cost ("6 point lights (0.30 ms to light them)").
  • GI Strength above 1 only deepens the shade. In 1.1.0 it also multiplied the bounced light, so strongly lit rooms got brighter still.
  • Camera mods keep working. Graphics Overdrive used to rewrite the field of view, the zoom limits and the screen-shake strength on every frame (the Balanced preset alone set 70 degrees), which overruled first-person mods, zoom and field-of-view mods, bow-zoom effects and camera tweak mods. Now a camera value is written only when you moved its dial away from the game's own value and no other mod has set that value.
    • New setting Camera control: Auto (default) as above; On = your camera dials always win; Off = Graphics Overdrive never touches the camera. Moving a dial applies it once even when another mod set the value.
    • Presets (the built-in ones, saved ones and Vanilla) leave the field of view and the zoom limit alone while another mod owns them or Camera control is Off.
    • The log records the camera setup once per world ([Camera] lines: the mode, your dials, the plugins that patch the game camera, the other enabled cameras) and says once when it leaves a value to another mod, so a report about a camera mod comes with what is needed.
  • Texture packs (Willybach's HD Valheim, VSideLoader and CustomTextures folders, Seasonality and Seasons, Badger's HD Terrain, Cartur's HD Blood):
    • Ray tracing follows the textures a pack swaps in. Ray-traced reflections and bounced light show the pack's textures, and leaf shadows follow the pack's leaf shapes, also when a texture changes while you play: a season change, a reload command, a tint, or a location whose textures the pack swaps a moment after it appears. The reflection follows within about 5 seconds, a leaf shadow within about 10.
    • Leaf shadows no longer turn into solid boxes for a moment when a season or a pack swaps a leaf texture: the old shape stays until the new one is ready.
    • Both menus say what is installed and what it costs (the "Texture packs" line with the texture settings in Expert mode): the loaders found, their files, and the video memory their textures take. A pack whose texture data is larger than your GPU's video memory is called out (Willybach's HD Valheim 2.0 "HIGHER" loads 26.6 GB of textures at the main menu).
    • New: texture pack fit, Auto by default. Willybach's HD Valheim loads every texture of the pack into video memory at the main menu: 26.6 GB for its HIGHER tier. On Linux and Proton a pack that does not fit stops the game at its loading screen (the driver runs out of memory). There the fit loads the pack's biggest textures smaller, only as far as needed for your GPU: on 8 GB no texture above 1024 px (3.3 GB of texture data; 4.6 GB of video memory on Vulkan, where the engine rounds every texture of 1024 px or less up), on 16 GB 2048 px (10.7 GB of data). On 8 GB with ray tracing on that is still more than fits next to the game: the engine keeps the rest in system memory and the game runs on; the 512 limit (about 1.4 GB) leaves more room. A pack that fits is not touched. On Windows the pack loads without help (Windows keeps the overflow in system memory, which is slower), so Auto leaves it alone there; pick a limit if you want it smaller. Only the size changes: each texture's own smaller version from the pack's files is used, nothing is recompressed. Auto, Off, or your own limit (4096, 2048, 1024, 512) in both menus; a change needs a restart. The log and both menus say what was decided.
    • The VRAM gauge counts pack textures, and texture arrays too (Badger's HD Terrain keeps its tiles in arrays, which Unity's own counter leaves out).
    • FSR 3 / DLSS texture sharpening reaches a pack's textures at once (before, a newly loaded texture got its mip bias up to 20 seconds later).
    • New: texture saver, Off by default. PNG packs load uncompressed (4096 x 4096 = 85 MB each). The saver compresses them to a quarter (DXT5, slightly lossy), one texture per frame, in the menu and on loading screens only, never while you play. Off, Auto (only when video memory is tight), Always, plus a "Compress now" button. It leaves alone: normal maps and other data textures, UI and sprite textures, textures a pack is still changing, and packs that ship compressed textures (Willybach's HD Valheim 2.0, HD Seasonality).
    • The status line says so when a pack's terrain shader has no tessellation (the terrain tessellation dial then does nothing for it), and when another mod installed a lighting shader this version of the game cannot draw (VSideLoader 1.1.2's "BetterLighting" turns every lit surface magenta on Valheim 1.0: update VSideLoader to 1.1.3).
    • Exclusive control never reverts a texture mod's work.
  • The VRAM gauge shows the real figure. With the Native Door on Vulkan, "Active" is the video memory the game really uses, as the GPU driver counts it (VK_EXT_memory_budget); the peak stays an estimate. The gauge's colour follows whichever is worse.
  • Fixed: black patches on the ground with the game's Tessellation setting on and ray-traced bounced light, blocked sky light or point lights (also in 1.1.0). With Tessellation on, the game draws the ground with small bumps and dips (up to 25 cm) that the traced terrain does not have, so every dip started its rays under the traced ground and lost its torch light and its sky light: round black blobs, most visible at night. The underside of the terrain no longer stops any ray (sun and moon shadows already worked that way).
  • Fixed: orange sparkles on trees around a fire and white dots in the sea's reflection of a fire. A flame is tiny and far brighter than anything it lights; the few rays that found it made single texels flash. One traced sample is now limited in brightness (its colour stays); the fire's light itself comes from its point light as before.
  • Removed: the "Terrain relief depth" dial. It never changed anything: the game's terrain shader has the property but does not use it (the bumps of tessellated ground are fixed in the shader). The terrain tessellation dial stays. A value left in an old config or a saved preset is ignored.
  • Fixed: a field of view you set after a grapple (or any other short field-of-view effect of the game) now applies and stays; before, the game pulled it back to the old value.
  • Fixed: a camera that another mod renders itself (a mirror, a photo or portrait camera) now sees the lights that ray-traced point lights take over; before, it could draw them dark.
  • Fixed: exclusive control switched off another mod's component on the game camera just because its name contained "Occlusion" or "ssr" (a culling mod, for example). It now only touches components that draw on the camera and are named like a second ambient occlusion, anti-aliasing or screen-space reflection effect.
  • Fixed: with frame generation Off the game is no longer forced out of a fullscreen resolution of another shape than the monitor at start. Frame generation is not started in such a resolution instead (it crashed the graphics driver on Linux, XWayland), and the status row tells you which resolution to pick.
  • Fixed: with Graphics Overdrive switched off, the settings page offered no way to switch it back on. It now shows the master switch.
  • Fixed in the F11 window: switching the scaler, frame generation, the HUD or ray tracing no longer turns your active profile into "Custom" (only changing a graphics dial does, as on the settings page); long lines on the Engine tab wrap instead of stretching the whole tab.
  • Fixed on the settings page: the list of saved presets drew over its neighbours (they are now five to a row); the FPS HUD switch was listed twice; empty note rows left gaps.
  • Ray tracing never attaches to another mod's camera that is tagged MainCamera, and when FSR 3, DLSS or frame generation stops, only the depth flags it added come off the game camera.

[1.1.0]

  • New, experimental: hardware ray tracing. With the Native Door and a GPU with hardware ray tracing (GeForce RTX, Radeon RX 6000 and newer, Intel Arc), the lighting near you can be traced with the GPU's ray tracing, inside the game's own frame (Vulkan ray queries). Every part has its own switch, works live and is Off by default: Settings > Graphics, shadow section, and the F11 Shadows tab.
    • Needs "Hardware ray tracing" on (Settings > Graphics, engine section, or F11 Engine tab; [Native] RayTracing), then a game restart. Linux and Windows (-force-vulkan).
    • Safe by design: any error switches it off with the reason in the status row, and the game's own shadows, lighting and effects come back. If the game does not close cleanly while it runs, it starts switched off next time.
    • Developed on Linux with an NVIDIA GeForce RTX 4070 laptop GPU. Not yet tested on Windows, AMD or Intel.
  • Ray-traced sun shadows (the moon's too): Off, On, Hybrid and RT only, plus Ray-Traced Range (20 - 150 m, default 60), shared by all the ray-traced lighting.
    • Hybrid (recommended): within the range the traced shadows, and the game's own shadow only where something that is not traced (a dropped item) stands between a surface and the sun. Sharp traced shadows without doubled edges.
    • On adds traced shadows to the game's own: small objects, thin poles and fence posts, and the contact under things get sharp shadows that the shadow maps miss or blur. Both show, so the game's softer edges double up around the traced ones.
    • RT only: within the range only the traced shadows, the cleanest look. Grass and the few things that are not traced cast no shadow there.
    • Traced: the terrain, buildings, rocks, trees with their leaves and needles (cut by the leaf textures exactly like the game's own shadows), ships, carts and other objects, and characters and creatures: their shadows follow every move, taken each frame from the game's own GPU-skinned meshes. Objects just beyond the range and the terrain up to 200 m beyond it are traced too, as shadow casters: a hill's shadow at a low sun reaches into the range. Not traced: grass, water (as a caster), effects and dropped items.
    • Meshes the game keeps on the GPU only (late armor sets, many creatures and weapons, some building pieces) are traced too: they are read back from the GPU once, when they first come into range, without touching the game's own copies.
    • Ray-Traced Trees Sway With The Wind (on by default): trees and bushes lean with the game's wind in the traced scene (its own wind and each tree's own sway settings), so their shadows and the light through their leaves follow the moving crowns.
    • The status row shows what runs, how many objects are traced, the memory used and the GPU time per frame, plus the result of a depth check of its own ("depth checked: ok").
  • Ray-traced global illumination (Off, AO only, Full, + GI Strength 0 - 2): the game's flat ambient light is replaced by traced light.
    • AO only: sky light is blocked where something is in the way (under roofs and trees, in caves and corners). Cheaper.
    • Full: that, plus sunlight and firelight bounced off nearby surfaces onto others (a sunlit wall lights the ground beside it in its own colour).
    • Unity's sky reflections dim where the sky is blocked too. Strength 0 = the game's ambient, 1 = traced, 2 = twice the difference.
  • Ray-traced reflections: smooth and wet surfaces reflect what is really there, also off screen and behind other objects, where screen-space reflections show nothing. Where a reflection sees only sky, the game's sky reflection stays.
  • Ray-traced water reflections: the sea, lakes and rivers mirror the shore, trees, buildings, ships and mountains near you, on the game's own waves (the same ten waves the game moves the water with, its wind and clock, smaller in shallow water). More reflection at a low angle, less looking straight down. Where the water reflects only sky, the game's own water stays.
  • Ray-traced point lights (+ Point Light Softness, 0 - 3): torches, fires, braziers and lamps near you (up to 32) light the scene with ray-traced soft shadows: everything, you included, casts a shadow from every light, and no light leaks through walls. Their brightness, colour and flicker stay the game's. Softness: 0 = sharp, 1 = natural, 3 = very soft.
  • Ray-Traced Lighting Resolution (Full, Half, Quarter; default Half): global illumination, reflections, water and point lights are traced at this size relative to the render size, smoothed over a few frames and brought back to full size along edges. Quarter is meant for 4K and weaker GPUs. A ray that hits something that was on screen takes its lit colour from the last frame (so light bounces more than once over time); elsewhere the hit is shaded from its material's colour, the sun and the sky.
  • Conflicting effects are handled by themselves. While a ray-traced feature runs, the effect it replaces is switched off for your camera, so the two never stack: ray-traced reflections switch off the screen-space reflections, ray-traced global illumination switches off the screen-space ambient occlusion (the game's SSAO, and Post-Processing's own AO if another mod switched it on), and ray-traced point lights skip the game's own drawing of the traced lights and their shadow maps. Your own settings for them are never changed: they come back as you set them the moment the ray-traced feature is switched off or stops after an error. Both menus say what is being replaced.
  • Fixed: a value typed into a box in the F11 window was not applied (it stayed in the box, and even Force Apply All Dials used the old value). The window's text box used up the Enter key itself, a click on a button did not take the focus from the box, and a click into a second box lost the first one's value. Now Enter, a click anywhere outside the box (Force Apply All Dials, a tab, another box or slider) or closing the window applies it. A value outside the dial's range is set to its nearest end, text that is not a number is dropped (the box shows the value again), and a decimal comma counts as a point.
  • Fixed: a fresh install (or a deleted config) could start as "Custom" with the bare default values instead of on the first-start preset (Balanced, or Vanilla under 4 GB of VRAM). Another plugin can make BepInEx write Graphics Overdrive's still-empty config file before Graphics Overdrive looks for it (seen with StartupAccelerator's "Delay Config Save"), so the file counted as an earlier config. A config file counts as an earlier one now only when it holds Graphics Overdrive's settings.

[1.0.3]

  • Hexium's game-build check: the last two findings are gone. 1.0.2 was still listed as "expected to be broken", because the check also reads Graphics Overdrive's Harmony patches. Two of them hook into the game's 3D-resolution code (UpscaledFrameBuffer.UpdateCameraTarget, FrameBufferScaler.OnBufferCreated), which the dedicated server's build of Valheim (the build the check reads) leaves out; the game itself has both. They are now applied by name when the game starts, like the rest of that code since 1.0.2. Nothing changes in the game. If a game update ever removes them, the render scale dial, FSR 3 / DLSS and frame generation switch off with a log line.
  • Groundwork for an experimental feature of a later version ships with this one, switched off and hidden: nothing changes in the game or in the menus.

[1.0.2]

  • Fixed: on Windows, the Native Door went into safe mode and stayed there, so FSR 3, DLSS and frame generation were gone after the second start. Graphics Overdrive's Vulkan layer never saw a frame, so the patcher took every start for a failed one.
    • The mistake was ours: the layer did not answer one lookup (vkGetDeviceProcAddr) with its own function.
    • Steam's pipeline-cache layer (fossilize), which Steam switches on for the games it starts, sits above it and asks exactly that. The game's graphics calls then passed our layer by.
    • On Linux, Steam's overlay sits between the two and hid the mistake while the overlay was on; players with the Steam overlay off were affected too. On Windows, Steam puts the overlay above fossilize, so it showed either way.
    • Both Vulkan layers (the Native Door's layer and the frame generation layer) answer correctly now, on Linux and Windows. Confirmed on a Windows tester's PC (GeForce RTX 5070 Laptop GPU): the layer sees every frame, a second start is no longer in safe mode, and DLSS ran.
  • Safe mode left over from older versions is cleared once. They counted starts the layer could not see as failed starts, so a working PC could be stuck in safe mode. The first start of 1.0.2 clears that count, and the log says so. After that, safe mode works as before: it trips after two starts in a row that never reach a first frame.
  • Hexium's game-build check no longer lists Graphics Overdrive as "expected to be broken". The check reads the dedicated server's build of Valheim (Steam app 896660), which leaves out the 3D-resolution code (UpscaledFrameBuffer, FrameBufferScaler) that the game itself has and Graphics Overdrive uses. 1.0.1 was not broken in the game, and on a dedicated server it switches itself off. Graphics Overdrive now looks those parts up by name when the game starts, so the check finds nothing missing, and nothing changes in the game. If a future game update renames them, the render scale dial, FSR 3 / DLSS and frame generation switch off with a log line instead of throwing errors.
  • Depth check: no more false alarms while loading. It now waits until you are in the world (not on the main menu or the loading screen, not while teleporting or dead) plus 10 seconds. It reports NOT DEPTH, UPSIDE DOWN or NEAR AND FAR SWAPPED only once three checks in a row agree: single bad readings right after a spawn were false alarms.
  • With verbose logging on, the game camera line ([GameCamera] FOV=...) is written only when the FOV, zoom distance or camera shake changes, not once a second.
  • The optional DLSS add-on moves to 1.0.2 with it (same DLSS files, now requiring Graphics Overdrive 1.0.2).

[1.0.1]

  • Fixed: FSR 3 frame generation ghosting around your character (the known issue of 1.0.0). The depth image handed to frame generation was not depth: with Valheim's deferred rendering, Unity's copy of "the camera's depth" holds a picture of the scene (its red channel), so FSR 3 could not tell what was in front of what and blended your character's outline into the background while the camera turned. It showed up when recorded game frames were replayed outside the game: their "depth" had clouds and shadows in it. Depth now comes straight from the game camera's depth buffer, through a small shader that ships inside the DLL. The FSR 3 and DLSS upscalers and DLSS Frame Generation got the same wrong depth in 1.0.0 and get the real one now. (The 1.0.0 notes said the game's depth was correct; it was not.)
  • New: depth check. While FSR 3, DLSS or frame generation run, a few physics rays are cast into the scene every two seconds and compared with the depth image at the same pixels. The status rows of the scaler and of frame generation (settings page and F11) show the result, and the log notes every change: "ok", or NOT DEPTH, UPSIDE DOWN or NEAR AND FAR SWAPPED if something is wrong. "Unsure" means too little with collision was in view (open sky, water).
  • With frame generation on, the game now renders into its own 3D texture also at native 3D resolution (at the screen's size, shown pixel for pixel), because the depth is copied from that texture's depth buffer. The game's own 3D resolution setting is not changed.
  • New diagnostics switch "old depth copy" (both menus, with frame generation on; [Native] FrameGenOldDepthCopy): brings back 1.0.0's depth copy to compare the two live. Leave it off.
  • The optional DLSS add-on has its own update to 1.0.1: it fixes a crash at game start on Windows with -force-vulkan.

[1.0.0] - Initial Release

  • ⚠️ Known issue: FSR 3 frame generation ghosts around your character. While the camera turns around your character, the generated frames show dithered, half-shifted copies of its outline (cape, backpack, weapon); the rendered frames and FSR 3 upscaling are not affected. It comes from FSR 3's frame interpolation: recorded game frames replayed through it outside the game show the same, its decision whether a pixel was hidden in the frame before or after flickers from pixel to pixel next to the character, while the game's depth and motion vectors are correct (DLSS Frame Generation gets the same data and shows no ghosting). For now: DLSS Frame Generation with the DLSS add-on on RTX 40 series and newer, or FSR 3 upscaling with frame generation off. A fix is being worked on.
  • Developed and tested on Linux: all development and testing was done with the native Linux version of Valheim on Vulkan and an NVIDIA GeForce RTX 4070 (laptop GPU). The Windows libraries are built from the same source and included, but have not been through the same testing; AMD and Intel GPUs have not been tested.
  • Built for Valheim 1.0.15 / 1.0.16+ (Unity 6000.0.75f1) on BepInEx 5.4.2351, .NET Framework 4.8. 100% client-side: nothing in it touches networking, servers, world data or other players, and it stays completely inert (no config file, no patches) if it is placed on a dedicated server.
  • Screen-Space Reflections (SSR):
    • Switches on Post-Processing Stack v1's raymarched reflections, which the game leaves off: up to 1024 ray steps, step size, max distance, blur, brightness, backface tracing, half or full resolution.
    • Screen-space only: it works on opaque surfaces (wet stone, metal, polished armor), cannot reflect anything off-screen and does not add reflections to the transparent water surface. It is not hardware ray tracing.
  • Full-resolution Ambient Occlusion: removes the downsampling of Amplify Occlusion; sample count, radius, power exponent and an intensity multiplier on the game's own per-weather AO strength.
  • Shadows up to 800 m: distance, 2 or 4 cascades, map size up to 4096 px, near-plane offset, CloseFit / StableFit projection.
  • Point lights: reach, shadow reach, active-light limit and shadow-caster limit. Applied to every light, including the ones that stream in later, and scaled from each light's own vanilla value so nothing compounds.
  • Water & terrain tessellation as separate dials (the Custom/Water and Custom/Heightmap shaders' _Tess), plus terrain relief depth, water ripple and refraction strength and a world fog density multiplier. Nearby water and terrain only; they need the game's own Tessellation setting.
  • LOD, grass and streaming:
    • LOD bias up to 10x, grass distance up to 160 m and grass density. Grass beyond the game's 100 m fade cap is now actually drawn, and changing a grass dial rebuilds the grass only once the slider stops moving.
    • Async upload buffer and time slice (the game uses 4 MB and 2 ms), queued frames, background loading priority.
  • Anti-aliasing and post-FX tuning: TAA / FXAA / off, FXAA quality, TAA sharpening, ghosting and jitter, chromatic aberration, motion blur, bloom, tonemapper, exposure, contrast, saturation, white balance and sun shafts. Camera field of view, zoom distance and shake; the game's temporary FOV effects (grapple kick and similar) are left alone.
  • Render scale 50 – 200%: below 100 uses the game's upscaler, above 100 renders larger and scales down (supersampling). 100 leaves the game's own 3D-resolution setting alone.
  • AMD FSR 3 upscaling and frame generation (experimental, Vulkan) through the Native Door: the door is on by default (it only loads its Vulkan layers at game start, so FSR 3 can be picked without a restart), and FSR 3 itself stays off until the player picks it:
    • A BepInEx preloader patcher enables a Vulkan layer before the game creates its graphics device, switching on only the GPU features FSR 3 needs and only when the GPU offers them. It copies a small router library into the game's plugin folder, where Unity hands it the frame, and removes it again when the Native Door is switched off.
    • Built from AMD's FidelityFX SDK v1.1.4 (MIT) for Linux (.so) and Windows (.dll, needs the -force-vulkan launch option). The patcher checks the libraries' hashes before using them. It stays inert on dedicated servers and headless processes, and it switches itself off after two starts in a row that never reach a first frame (safe mode).
    • The scaler is chosen independently of the presets: Vanilla (the game's own, with the render scale slider) or FSR 3 from Native AA to Ultra Performance. It adds an output scale up to 200% for supersampling, sharpening, and an automatic or manual texture mip bias. The game's own anti-aliasing and render scale step aside while FSR 3 runs.
    • FSR 3 frame generation: a second Vulkan layer adds generated frames between the rendered ones and paces them. It is fed by the game's depth, motion vectors and camera each frame, and it also works with Vanilla scaling. Unity keeps depth and motion vectors upside down on Vulkan relative to the screen image, so the layer turns them the right way up before frame generation sees them (without that, moving things ghost in the generated frames); a diagnostics switch hands them over unturned, only to compare the two live. Two more diagnostics switches: own motion vectors for every renderer on the player's character (live; with verbose logging each renderer's setting is logged), and a one-shot recording of 24 frames of what frame generation works on (depth, motion vectors, the upscaled image, camera numbers) while the camera turns, written in the background to the BepInEx cache folder for the developer to replay offline; it switches itself off when done and changes nothing on screen.
    • Fill pacing (FSR 3, for a steady frame rate): the frame generation limit is a cap that generated frames fill up to. Frames go out on an even clock at the limit, every rendered frame that arrives in time is shown as it is, and generated frames fill the gaps, each made for its own moment between the two rendered frames around it (for example 80 rendered + 40 generated = 120 frames per second; in a heavy fight 50 + 70). While the game itself keeps up with the limit nothing is generated. Up to 4 generated frames per rendered one. Fill pacing never holds the game back: after a hitch it fast-forwards the missed moment instead of showing every later frame that much later, so the added latency stays around one rendered frame. AMD's frame interpolation only makes the frame halfway between two frames, so it is patched for any position (MIT allows it, see THIRD-PARTY-NOTICES.txt). It costs about half a rendered frame more latency than Even 2x, the other choice: exactly one generated frame halfway between two rendered ones, with the game rendering half the limit. When the game is held back by the GPU, its frames are ready at varying moments; Fill pacing judges how early it can show them from the last second and a half of frames and keeps four swapchain images beyond the game's own, so it neither drops generated frames for want of an image nor jumps its clock on every unusually slow frame (in a test at 32 rendered fps: a third of the jumps and almost no dropped frames, for about 5 ms more latency). Its log gets a line every 10 seconds with what happened (rates, frame times, each kind of jump, latency).
    • The HUD stays sharp: with FSR 3 as the scaler at output scale 100%, frame generation also gets the 3D view without the HUD, so the HUD, map, chat, menus and other 2D elements come from the rendered frames instead of being interpolated with the moving scene (before, they smeared and doubled while turning). The layer checks that copy against the screen now and then and sets it aside on its own if it ever does not match. A switch turns it off for comparison. DLSS Frame Generation does not use it.
    • A dynamic 🎯 RESOLUTION, SCALING & TEXTURES section on Settings > Graphics shows only what was detected on the PC, with live status rows. The same controls are on a new F11 🎯 Scaling tab, and the F10 HUD shows the active scaler.
  • Frame pacing (Settings > Graphics > 🖥️ FRAME PACING, F11 Scaling tab, works without the Native Door): a frame generation limiter (the most frames shown per second, 0 = the display's refresh rate, so frame generation never outruns the display and tears), its pacing (Even 2x, the default: the game renders half the limit, which leaves it spare time so its frames stay even; Fill: the game renders up to the limit and generated frames fill the rest, best when the game's own frame rate is steady, since an unusually long frame shows as a small jump) and Half refresh rate. All of it goes through the game's own frame limiter, so its FPS limit and menu cap still apply; the status rows show the display rate, Vsync, the resulting rates and how many frames are rendered and generated, and point out when a limit does not divide the refresh rate (without VRR such a limit holds frames for uneven numbers of refreshes: 90 or 60 keep 180 Hz even). The F10 FPS HUD gets a switch there, and with frame generation it shows the frames on screen with the real rate underneath.
  • Safe screen resolution after a monitor change (on by default, a switch in the frame pacing section of both menus): at game start, a saved fullscreen resolution that the monitor does not offer is replaced by the monitor's largest mode and saved (Valheim makes this check itself only on the Steam Deck). With frame generation on, a saved fullscreen resolution of another shape than the monitor (a 16:10 laptop resolution on a 16:9 monitor) is replaced by the monitor's own resolution: on Linux under XWayland it crashed the game in the graphics driver right after start. Same-shape choices such as 1920x1080 on a 2560x1440 monitor are kept, and windowed mode is never changed.
  • Optional DLSS add-on (separate package, GeForce RTX): with it installed the scaler and frame-generation rows also offer DLSS Super Resolution, DLAA and DLSS Frame Generation (RTX 40 series and newer), on Linux and Windows. This package contains no NVIDIA code; without the add-on only FSR 3 is offered.
  • Exclusive Control (on by default): Graphics Overdrive's values are the ones drawn, even with other graphics mods installed. Right before each frame it puts back what another mod changed among the settings it has a dial for, and removes doubled effects: one ambient occlusion (a second post-stack AO, for example, is switched off), one anti-aliasing (the post stack's TAA stays off while FSR 3 / DLSS run, MSAA stays at the game's value), one reflection pass, the game's own post-processing profile. Each correction is logged once and counted in the F11 Engine tab, which also names the other mods that patch the game's graphics code.
  • Hardware ray tracing probe (experimental, off by default): [Native] RayTracing makes the Native Door also switch on the GPU's ray tracing extensions on the game's Vulkan device, then checks whether ray tracing works there: 4096 test rays traced inside the game's frame and checked one by one, Unity's own ray tracing support, and a count of what a ray-traced scene would cover. It draws nothing; the results go to the log and the F11 Engine tab.
  • Smoke and item glow: smoke puff size and a multiplier for the glow on upgraded weapons and armor (items without glow stay unchanged).
  • VRAM estimate and GPU readout: detected GPU, graphics API and VRAM size, an estimated scene VRAM use with a health gauge (the engine's loaded-texture figure plus a model of the buffers; a heuristic, not a measurement), and a read-only capability panel in the overlay's Engine tab.
  • Presets and profiles:
    • Vanilla (the game's own values), Balanced, High, Ultra, SSRT and your own saved presets. Every built-in preset defines every dial and starts from the game's own values, so switching presets never leaves the previous one's overrides behind.
    • Tweaking any dial (menu, overlay or BepInEx's configuration manager) switches the profile to Custom, which is kept across restarts and display changes. Config values edited by hand that no longer match the stored preset are kept as Custom at startup instead of being overwritten.
    • A fresh install starts on Balanced, or on Vanilla when the GPU reports under 4 GB of VRAM. Choosing a preset links it to the current display resolution, so a laptop / external monitor swap can switch profiles automatically (AutoApplyResolutionPresets).
  • Graphics menu takeover: Wubarrk's Red Ribbon, a live VRAM banner, a preset bar and Overdrive sliders above the standard rows on Settings > Graphics. While the mod is enabled its dials win over the game's own sliders for the values it controls; the game's checkboxes for anti-aliasing, SSAO, bloom, chromatic aberration, motion blur and tessellation stay in charge.
  • Every setting in both menus: the Settings > Graphics page and the F11 overlay carry the same dials in the same order and with the same conditions (rows for SSR, AA tuning, motion blur, colour grading and bloom appear when their switch is on), including the master switch, the performance HUD options, both hotkeys (click, then press a key; Esc cancels) and the Native Door's advanced keys. The two device-feature lists are shown read-only with where to edit them.
  • Live tweak overlay (F11): 8 tabs with the graphics dials (including the scaler and frame generation), cursor unlock and input blocking while it is open, saved-preset management, a shader property dump for finding further dials. The key is also the game's screenshot key, so the screenshot is skipped when it toggles the overlay.
  • Performance HUD (F10): FPS, frame time, 1% and 0.1% lows over the last 1000 frames (loading-screen frames are ignored), memory and VRAM estimate. The text is built four times a second, not on every GUI pass.
  • Menu-scene stress test: a camera tour of the main-menu scene's own viewpoints with per-leg average and 1% low FPS, an estimated peak VRAM, a saved report and a scorecard. It saves your dials as a benchmarked_N preset first, lifts the game's 60 FPS menu cap while it runs, reports V-Sync / frame-limit caps, is aborted with Esc and records nothing when aborted. It only moves the menu camera, so it cannot affect a world, a character or a server.
  • Privacy: no network access of any kind. Nothing is downloaded, collected or sent.
  • Licence: all rights reserved with the permissions in LICENSE.txt. The third-party notices (AMD FidelityFX SDK, MinGW-w64 runtime) are in THIRD-PARTY-NOTICES.txt.
  • Robustness: config changes collapse into one apply per frame and the config file is written about 1.5 seconds after the last change. Every apply step, the Harmony patches and the overlay window are isolated, and patches are applied one class at a time, so a game update that breaks one dial only costs that dial (one warning line in the BepInEx log) instead of stopping the rest or freezing the camera.