Stop Lighting Your Island Like a Broken Streetlamp: A Guide to Light Mobility
Stop Lighting Your Island Like a Broken Streetlamp: A Guide to Light Mobility
You’ve built the perfect trap. You’ve placed the loot exactly where you want it. But when you hit play, the lighting looks flat, fake, or like someone left a flashlight on in a cave. Why? Because you probably treated every light source like a static painting.
In Fortnite Creative, lights aren’t just "on" or "off." They have personality, and that personality is defined by Mobility. If you don’t set this right, your dynamic elements (like moving platforms or flickering torches) will either look like flat stickers or break the game’s performance. Let’s fix your lighting so it actually feels alive, not like a JPEG pasted over your island.
What You'll Learn
- The Three Light Personalities: Static, Stationary, and Movable.
- Why It Matters: How mobility affects shadows, performance, and visual fidelity.
- The Scene Graph Connection: Why your light’s position in the hierarchy (the "family tree" of your island) changes how it behaves.
- Build It: Create a flickering, dynamic torch that casts real-time shadows using Verse.
How It Works
Think of Light Mobility like the difference between a statue, a mannequin, and a player character.
- Static: This is the statue. It never moves, ever. The game pre-calculates its shadows and bounces light off it perfectly (this is called Global Illumination). It looks amazing but cannot move or change color. If you try to move a Static light with Verse, it won’t budge. It’s baked into the world.
- Stationary: This is the mannequin. It doesn’t move around the map, but it can turn on/off or change color. The game pre-calculates its shadows (so they look crisp and high-quality), but it doesn’t calculate how its light bounces onto other objects dynamically. It’s a happy medium: good looks, low cost.
- Movable: This is the player. It can move, rotate, and change color in real-time. The game calculates everything live (shadows, bounces, reflections). It’s the most flexible but also the most expensive on your device’s "brain" (CPU/GPU). If you have 50 Movable lights, your island might lag harder than a storm circle closing in.
The Scene Graph: Who’s Holding the Light?
In Unreal Engine 6 (and Verse), everything lives in the Scene Graph. This is just a fancy way of saying the "family tree" of your island.
Imagine you have a Prop Mover (a moving platform). On top of it, you place a Point Light (a light that shines in all directions, like a lightbulb).
- If the light is Static, it ignores the Prop Mover. It stays locked to the ground. The platform moves, the light stays behind, and you get a weird floating lightbulb effect.
- If the light is Stationary, it still ignores the movement of the platform.
- If the light is Movable, it is a "child" of the Prop Mover. If the platform moves up, the light moves up. If the platform rotates, the light rotates.
The Golden Rule: If you want a light to move with an object, that light must be Movable. And if that object is moving fast or often, make sure you aren’t using Static lights for it, or you’re going to have a bad time.
Let's Build It
We’re going to build a Haunted Torch. It’s a simple Point Light attached to a prop that moves slightly, flickering its intensity. We’ll use Verse to control it.
The Setup (No Code Yet)
- Place a Prop Mover device on your island. Set it to move up and down a little bit (use the "Move" tab in the details panel).
- Place a Customizable Light (or a standard Point Light if you’re using raw primitives) directly on top of the Prop Mover.
- CRITICAL STEP: Select the Light. In the Details panel, find Mobility. Change it from "Static" to Movable.
- Why? If it’s Static, it won’t move with the prop. If it’s Stationary, it won’t move either. Only Movable lights are "attached" to the physics of the scene graph in real-time.
- Set the light to be a Point Light (shines everywhere) and make it orange/red for that spooky vibe.
The Verse Code
Now, let’s make it flicker. We’ll write a Verse script that turns the light on and off rapidly, simulating a dying flame.
using { /Fortnite.com/Devices }
using { /UnrealEngine.com/Temporary/Structs }
# This is our "Haunted Torch" script.
# It makes a light flicker like it's haunted (or broken).
Haunted_Torch = script (struct):
# 1. The "Loot Drop" - We need a reference to the light.
# In Verse, we grab the device we placed in the editor.
Light_Device: Customizable_Light = ""
# 2. The "Storm Timer" - How fast does it flicker?
Flicker_Speed: float = 0.1 # 0.1 seconds per flicker
On_Begin_Play ():
# This runs once when the island starts.
# We start a loop that will keep flickering forever.
Loop_Flicker ()
Loop_Flicker ():
# This is an infinite loop. Like a respawn timer that never ends.
repeat (true):
# Turn the light OFF
Light_Device.Set_Is_Active (false)
# Wait for a tiny moment (like a frame skip)
Wait (Flicker_Speed)
# Turn the light ON
Light_Device.Set_Is_Active (true)
# Wait again
Wait (Flicker_Speed)
Walkthrough: What Just Happened?
Light_Device: Customizable_Light = "": This is a Variable. Think of it as an empty loot box. We’ve labeled the box "Light_Device" and told the game "this box will hold a Customizable Light." We haven’t put anything in it yet (that’s why it’s""). When you place this script on a device in the editor, you drag your light into this slot.On_Begin_Play (): This is an Event. It’s like the "Battle Bus" leaving. It only happens once, at the very start of the game. We use it to kick off our flickering loop.repeat (true): This is a Loop. It’s like a respawn timer. It says "Do this forever." Inside, we toggle the light.Set_Is_Active (false/true): This is a Function. It’s a command you give the light. "Hey Light, turn off." Then, "Hey Light, turn on."Wait (Flicker_Speed): This pauses the script for a fraction of a second. Without this, the light would turn on/off so fast you’d just see it as "on." The wait creates the flicker effect.
Why Mobility Matters Here
Because we set the light to Movable in the editor, when the Prop Mover moves the light up and down, the light moves with it. If we had left it as Static, the light would stay on the floor, and the prop would move away from it, leaving a floating, unmoving light bulb in the air. That’s not haunted; that’s just a glitch.
Try It Yourself
Challenge: Make the torch flicker randomly.
Right now, it flickers at a perfect rhythm (on, wait, off, wait). That looks robotic. Try to change the Wait time so it’s not always 0.1 seconds.
Hint: You can’t just type a random number, but you can use a Constant (a value that doesn’t change, like the max health of a player) to set a range, or just experiment with two different wait times: one short (0.05) and one long (0.3). See if you can make it look more "spooky" and less "metronome."
Bonus: Add a second light nearby. Set it to Stationary. Watch how the shadows interact. Does the Movable light cast shadows on the Stationary light? (Spoiler: Yes, but the Stationary light’s own shadows are pre-baked, so it might look a bit weird if you move too close. That’s the trade-off!)
Recap
- Static lights look best but can’t move.
- Stationary lights look good and can change color, but don’t move.
- Movable lights can move and change color, but cost more performance.
- If you want a light to move with a prop, it must be Movable.
- Verse lets you control these lights dynamically, but the engine’s mobility setting dictates what’s physically possible.
References
- https://dev.epicgames.com/documentation/en-us/uefn/UE/building-virtual-worlds/lighting-and-shadows/light-types-and-mobility
- https://dev.epicgames.com/documentation/en-us/uefn/UE/ue-reference-environments-and-landscapes-in-unreal-editor-for-fortnite
- https://dev.epicgames.com/documentation/en-us/uefn/UE/building-virtual-worlds/lighting-and-shadows/light-types-and-mobility/Directional
- https://dev.epicgames.com/documentation/en-us/fortnite-creative/using-customizable-light-devices-in-fortnite-creative
- https://dev.epicgames.com/documentation/en-us/uefn/UE/building-virtual-worlds/lighting-and-shadows/light-types-and-mobility/RectLights
Verse source files
- 01-fragment.verse · fragment
Turn this into a guided course
Add light-types-and-mobility to your free study plan — we'll suggest related pages and stitch the lot into one compile-checked, self-guided lesson with worked examples and quizzes.
References
Original tutorial generated by Verse Island from the Verse/UEFN knowledge base, with references to the Epic Games sources above. Code is validated against the knowledge base.