Quick answer: Godot ShaderGlobalsOverride node setting global shader uniforms in-game but not in the editor? Overrides apply only when the scene runs — editor viewport uses Project Settings globals.

An atmospheric shader uses a global sun_color. ShaderGlobalsOverride sets it in play mode but the editor preview shows the default.

Runtime vs Editor

Project Settings → Shader Globals defines defaults used by the editor. ShaderGlobalsOverride applies on top during play. Editor preview only sees the defaults.

Set Both

For editor parity, set the desired value in Project Settings as the default, then leave ShaderGlobalsOverride at the same value — or omit it. Different per-level overrides drift naturally.

@tool Scripts for Preview

If your override is calculated dynamically, a @tool script can call RenderingServer.global_shader_parameter_set in _process. Hits the editor too.

Reset on Stop

Editor doesn’t auto-reset globals after stopping a play session — you may see stale values in the viewport. Save the scene or reload to refresh.

Verifying

Play mode applies the override correctly. Editor viewport shows the Project Settings default; @tool scripts (where used) match runtime appearance.

“Override applies at runtime. Editor reads Project Settings shader globals.”

Use Project Settings for the ‘sensible default’ look that designers see in editor; reserve overrides for per-level / time-of-day tweaks.