# Ue Uds Lighting And Shadows

> Configure lighting in Ultra Dynamic Sky — Sun and Moon directional light components, Cloud Shadows (volumetric and 2D), Sky Light modes (Capture Based / Custom Cubemap / Cubemap with Dynamic Color Tinting), Exposure (auto exposure / manual), static/stationary lighting setup, Screen Space Light Shafts, the Light Day/Night Toggle component for lights that come on at night, and the day-to-night material utility functions. Use any time the user mentions UDS lighting, shadows, sky light, ambient light, sun shadow softness, light angle, exposure problems, scene rendering black or wrong at night, baked lighting with UDS, god rays/light shafts, lights that come on at sunset, cubemap recapture cost, or making a child of UDS to override sun color.

- Skill: `kevinpbuckley/ue-uds-lighting-and-shadows` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kevinpbuckley/ue-uds-lighting-and-shadows`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kevinpbuckley/ue-uds-lighting-and-shadows/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: kevinpbuckley (https://skillmd.com/u/kevinpbuckley)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kevinpbuckley/ue-uds-lighting-and-shadows

---


# UDS lighting and shadows

UDS owns three lights (sun, moon, sky light) as components on the actor, and a cloud-shadow system that works for every Sky Mode. This skill covers those components, sky light modes, exposure, light shafts, static/stationary setup, and the runtime utilities for time-of-day-responsive lights.

| Light | Type | Settings category | Cost lever |
| --- | --- | --- | --- |
| Sun | Directional light component on UDS | **Sun** | Affects shadow cost, cloud shadows |
| Moon | Directional light component on UDS | **Moon** | Affects shadow cost, cloud shadows |
| Sky Light | Sky light component on UDS | **Sky Light** | Mode chooses cost vs flexibility |
| Cloud Shadows | Effect on the directional lights | **Cloud Shadows** | Works with every Sky Mode |
| Screen Space Light Shafts | Engine `Light Shaft Bloom` toggle | **Screen Space Light Shafts** | Cheap; only when facing the light |
| Exposure | Auto / Manual auto-exposure control | **Exposure** | Drives the whole image brightness |

## When to use this skill

- Configuring or limiting the sun/moon directional lights.
- Choosing or tuning the sky light mode (capture / cubemap / tinted).
- Diagnosing black, too-dark, or unresponsive ambient light.
- Setting up baked / static / stationary lighting with UDS.
- Enabling Light Shaft Bloom god rays for the sun/moon.
- Making placed lights in the level (lamps, neon) turn on at sunset.
- Making emissive materials switch on at night without writing blueprint.
- Working with a Custom Sun/Moon Light Actor (and the Cloud Scattered Luminance Scale gotcha that comes with it).

## Light components on UDS

UDS owns **Sun** and **Moon** directional light components, plus a Sky Light component. Select UDS and find them in the component list at the top of the details panel.

Settings UDS controls per light: color, intensity, cast shadows, light source angle. Everything else is editable directly on the component.

For sun/moon **positioning and appearance**, see `ue-uds-sun-moon-stars`.

### Custom light actors (avoid unless required)

Pointing UDS at an external light actor (instead of the built-in components) is supported but **not recommended** unless a specific need forces it (e.g. a third-party plugin that requires a light actor reference).

If you do, two extra steps are needed:

| Light type | Manual fix-up |
| --- | --- |
| Directional (sun/moon) | Manually set `Cloud Scattered Luminance Scale` on the actor to match UDS's Sun/Moon component value. UDS can't set this from blueprint. **Copy the value/color exactly.** |
| Sky light | Set `Source Type` to match UDS's `Sky Light Mode`: <br>• `Cubemap with Dynamic Color Tinting` or `Custom Cubemap` → `Specified Cubemap`<br>• `Capture Based` → `Captured Scene` |

If volumetric clouds look strangely dark/gray when using a custom sun/moon actor, **missing Cloud Scattered Luminance Scale** is almost always the cause.

### Lights update throttling

`Lights Update` settings in the **Directional Light** category — throttle how often the lights' rotation actually updates. Cached sun/moon rotations are applied to visuals every frame, but the lights' real rotation can update less frequently. Useful for reducing cached directional shadow invalidation cost.

## Cloud Shadows

Category: **Cloud Shadows**. Enabled by default and compatible with **every** Sky Mode, even cloudless modes.

| Setting | What it does |
| --- | --- |
| Intensity / softness with cloud coverage | Full overcast fully occludes by default; low coverage only partial |
| Shadow contribution when Fog / Dust high | Adjustable directional light occlusion in those states |
| `2D Cloud Shadows Speed`, `2D Cloud Shadows Scale` | Texture-based shadow for non-Volumetric Sky Modes |

For Volumetric Clouds, shadows are accurate to the 3D layer — every cloud casts its own correct shadow. Other Sky Modes use the 2D texture-based shadow.

### Cloud Shadows + single-layer water

| Symptom | Fix |
| --- | --- |
| Single-layer water lit by sun in cloudy weather when it shouldn't be | Project Settings → enable `Single Layer Water Uses Light Function Atlas`. UDS cloud shadows support the light function atlas, so water reads them correctly. |
| Sun reflection near sunset/sunrise doesn't match cloud coverage that should block it | In Cloud Shadows category: enable `Correct Specular Scale For Low Angle Cloud Shadows` |

## Sky Light

`Sky Light Mode` in the **Sky Light** category.

| Mode | How it works | When to pick |
| --- | --- | --- |
| **Capture Based** | Generates a cubemap by capturing the sky. Real-time capture exposed as an option. | Hero quality, supports full dynamic sky |
| **Custom Cubemap** | Static cubemap set via `Sky Light Cubemap` | Locked-in scene with a single look |
| **Cubemap with Dynamic Color Tinting** | Flat gray cubemap dynamically tinted with fog color to align with time of day | Best for dynamic time of day at low cost; works on every platform (incl. mobile without real-time capture) |

`Sky Light Color Multiplier` settings tint differently per Time of Day. Values >1 scale intensity proportionally.

## Exposure

UDS controls exposure by default. Auto exposure (Unreal's "eye adaptation") is what lets brightness adapt to scene light. Category: **Exposure**.

| Setting | Controls |
| --- | --- |
| `Apply Exposure Settings` | Master toggle for UDS taking exposure ownership |
| Exposure Compensation Curve | Pushes brightness higher/lower based on overall scene light level |
| `Exposure Bias` (per scenario) | Per-time-of-day, per-weather exposure compensation. e.g. "make night exposure brighter, cloudy darker." |
| `Exposure Metering Mode` | Whether auto exposure is on, and which type. Set to **Manual** to disable auto exposure but keep using bias settings. |
| `Exposure Brightness Range` (MinEV100 / MaxEV100) | The range auto exposure adapts within |

For debugging auto exposure: viewport view mode **Show → Visualize → HDR(Eye Adaptation)** shows what auto exposure is doing.

## Static / stationary lighting

UDS defaults to movable lights, but supports static / stationary too.

To switch a UDS light to static or stationary, find its mobility setting in the corresponding UDS category (**Sun**, **Moon**, **Sky Light**). **Set the mobility from the exposed UDS setting, not on the component itself.**

After the level's lighting is built:

| Constraint | Why |
| --- | --- |
| Can still tweak some sky settings | Material params, etc. |
| Settings that move/alter lights break the build | Any directional light change invalidates lightmaps |
| Static/stationary **sun** → `Time of Day` cannot change at runtime | Light mobility prevents rotation at runtime |

## Screen Space Light Shafts

`Light Shaft Bloom` — engine-level directional light feature: cheap screen-space god rays. Only renders when facing the light. **Not** related to volumetric fog (which can achieve similar visuals via a different method).

Category: **Screen Space Light Shafts** — toggles per sun / moon.

## Light Day/Night Toggle component

For a light component placed in the level (lamp, neon sign) that should turn on at sunset and off at sunrise.

| Setup step | Detail |
| --- | --- |
| Add the component | `Blueprints/Utilities/Light Day/Night Toggle` as a child of the light component on an actor |
| Default behavior | On at night; flip via setting on the component |
| Power-on animation | Component animates intensity as the light powers on (imitating warm-up lamps). Toggle/adjust on the component. |
| Drive material parameters | The component can drive a `Light Toggle` scalar parameter (0–1) on an array of dynamic material instances |

Hierarchy: the toggle component **must be a child of the light component** to control it.

## Material functions for lighting

Search the material palette:

| Function | What it does |
| --- | --- |
| `Day to Night Float` / `Day to Night Color` | Interpolate between two inputs based on whether sun is up. Inputs offset threshold and widen/sharpen the transition. Good for emissive-on-at-night without blueprint. |
| `Active Sun or Moon Vector` | Unit vector toward whichever body is up (sun by day, moon by night). Also outputs a 0–1 mask that drops to 0 at the swap moment — multiply effects by it to hide pop artifacts. |

## Runtime / Blueprint control

Most lighting variables that change with time/weather (color, intensity, scattered luminance) update via the cache automatically.

For *static* lighting properties (mobility, source type, certain advanced light setup), set the variable then call `Static Properties - Sun`, `Static Properties - Moon`, or `Static Properties - Sky Light` to apply. For a complete instant refresh, `Hard Reset Cache`.

## Gotchas

- **Scene renders black after adding UDS** — exposure. In order: (1) disable any post-process volume overriding exposure; (2) viewport **Lit** dropdown → check **Game Settings** for exposure; (3) on UDS disable **Apply Exposure Settings** in the Exposure category.
- **Ambient light starts correct then stops updating as time changes** — sky light isn't updating. Platform may not support real-time sky light capture; switch `Sky Light Mode` to **Cubemap with Dynamic Color Tinting** (works everywhere, dynamic). Or it's leftover static light from a baked solution — run a lighting build.
- **Ambient light slow to adapt after a fast sky change** — that's Lumen's default GI update speed. UDS doesn't touch Lumen. Adjust **Lumen Global Illumination → Update Speed** in a post-process volume (raises GPU cost).
- **Volumetric clouds look dark/gray** with a Custom Sun/Moon Light Actor — `Cloud Scattered Luminance Scale` isn't set on the actor. Copy the value from UDS's directional light component. Without a custom actor, it's a leftover directional light in the level that wasn't removed before adding UDS.
- **Single-layer water lit incorrectly under cloudy sky** — Project Settings → enable `Single Layer Water Uses Light Function Atlas`. UDS cloud shadows support the atlas.
- **`Time of Day` won't change at runtime** — sun mobility is static or stationary. Movable required for runtime time changes.
- **Set Sun Light Color at runtime, no effect for 1–2 seconds** — cache system interpolates. Call `Hard Reset Cache` for an instant change, or lower `Max Property Cache Period` in **Scalability / Performance**.
- **Set Sun Softness at runtime, no effect at all** — static property. Set the variable, then call `Static Properties - Sun`.

## References & source material

Docs (Ultra Dynamic Sky 9.5):
- [Light Components](https://www.ultradynamicsky.com/Documentation/V9/9-5#section-17) (incl. custom actors)
- [Sun and Moon Directional Lights](https://www.ultradynamicsky.com/Documentation/V9/9-5#section-18)
- [Cloud Shadows](https://www.ultradynamicsky.com/Documentation/V9/9-5#section-19)
- [Sky Light](https://www.ultradynamicsky.com/Documentation/V9/9-5#section-20)
- [Exposure](https://www.ultradynamicsky.com/Documentation/V9/9-5#section-21)
- [Using Static/Stationary Lighting](https://www.ultradynamicsky.com/Documentation/V9/9-5#section-22)
- [Turning On Lights in Your Level at Night](https://www.ultradynamicsky.com/Documentation/V9/9-5#section-48) (Light Day/Night Toggle)
- [Sky Utility Material Functions](https://www.ultradynamicsky.com/Documentation/V9/9-5#section-50) (Day to Night material functions)
- [Screen Space Light Shafts](https://www.ultradynamicsky.com/Documentation/V9/9-5#section-63)
- [Common Issues — Lighting and Post Processing](https://www.ultradynamicsky.com/Documentation/V9/9-5#section-143)

Plugin asset paths:
- Component list on UDS actor → **Sun**, **Moon**, **Sky Light**
- `Blueprints/Utilities/` — Light Day/Night Toggle component

Related skills: `ue-uds-sun-moon-stars`, `ue-uds-clouds`, `ue-uds-fog-and-atmosphere`, `ue-uds-time`, `ue-uds-performance-mobile-troubleshooting`.

