Don’t Let Your Island Look Like a Fluorescent Office: Mastering the Day Sequence Device
Tutorial beginner

Don’t Let Your Island Look Like a Fluorescent Office: Mastering the Day Sequence Device

Updated beginner

Don’t Let Your Island Look Like a Fluorescent Office: Mastering the Day Sequence Device

You know that feeling when you drop into a custom island, and the lighting is so flat and gray that it feels like you’re playing inside a hospital waiting room? Yeah, we’ve all been there. It kills the vibe before the first shot is even fired.

In Fortnite Creative, the Day Sequence device is your remote control for reality. It’s not just about making it dark so you can be spooky; it’s about controlling the sun, the moon, the fog, and the entire skybox to set the mood for your game. Whether you want a bright, sunny battle royale or a foggy, horror-themed maze, this device lets you script those changes on the fly.

In this tutorial, we’re going to build a simple "Day/Night Cycle Trap." When a player steps on a button, the sun will set, the fog will roll in, and the island will turn into a nightmare zone. It’s simple, it’s visual, and it teaches you how to control the scene graph’s lighting hierarchy using Verse.

What You'll Learn

  • The Scene Graph & Lighting: How the Day Sequence device fits into the "world" entity and controls global lighting settings.
  • Variables as Settings: Understanding how to store and modify lighting properties (like fog density or sun intensity) using variables.
  • Functions for Actions: Creating a reusable "Set Night Mode" function that changes multiple settings at once.
  • Events & Triggers: Connecting a physical button press to a lighting change.

How It Works

Before we write a single line of Verse, let’s talk about how Fortnite handles light.

In the game engine, everything is part of a Scene Graph. Think of the Scene Graph as the family tree of your island. At the top is the World (your whole island). Branching off the World are Entities (like the Day Sequence device, players, props, etc.).

The Day Sequence device is a special entity that controls the Time of Day Manager. You can’t just turn off the lights like a lamp; you have to adjust the parameters of the sun and sky.

Here is the game-mechanic analogy:

  • The Day Sequence Device is like the Storm Timer. The Storm Timer doesn’t just "make it storm"; it has specific settings: Start Time, End Time, Storm Damage, Storm Wind Speed.
  • Variables are like those settings. You can change the Start Time from 10:00 to 12:00. In Verse, a variable is just a named box where you store a value (like a number or a color) that can change during the game.
  • Functions are like Combo Moves. Instead of pressing three buttons separately to do a reload-cancel, you press one button to do them all. A function is a block of code that performs a specific task. We’ll make a function called SetNightMode that adjusts the sun, moon, and fog all at once.

The Day Sequence device only works with the Day Night Cycle time manager (the one that moves the sun across the sky automatically). It does not work with the "Fixed Time" manager (where the sun stays still). So, make sure your island is using the default Day Night Cycle!

Let's Build It

We are going to create a device that changes the island’s lighting when triggered. We’ll use a Trigger Volume (a zone) and a Day Sequence device.

Step 1: The Setup

  1. Open UEFN and create a new island.
  2. Go to Create Mode and place a Trigger Volume (search "Trigger" in the device tab). Make it big enough for a player to stand in.
  3. Place a Day Sequence device anywhere on the map. It doesn’t need to be near the trigger yet.
  4. Rename the Day Sequence device to MainLighting in the Outliner (right-click > Rename).

Step 2: The Verse Code

We need to write a script that listens for the trigger and then tells the MainLighting device to change its settings.

Create a new Verse file in your project (right-click in the Content Browser > New Verse File). Name it NightmareTrigger.v.

Copy and paste this code. I’ve annotated it heavily so you can see exactly what’s happening.

# This line tells Verse: "We are making a device for Fortnite Creative."
# It links our code to the Day Sequence device we placed in the editor.
using { /Fortnite.com/Devices }

# This is our "Script" class. Think of it as the brain of our device.
# It inherits from `Device`, which gives it access to Fortnite's built-in tools.
day_sequence_trigger: script() class is:
    # --- COMPONENTS (The "Inventory" of our device) ---
    
    # 1. The Trigger Volume we placed in the editor.
    # We "bind" this to a variable named `trigger_zone`.
    # 'bind' means: "Connect this editor object to this variable in code."
    trigger_zone: trigger_volume = bind()

    # 2. The Day Sequence device we placed in the editor.
    # We bind it to `lighting_device`.
    lighting_device: day_sequence = bind()

    # --- VARIABLES (The "Settings" we can change) ---
    
    # These are our "custom settings." 
    # In Verse, we define variables inside the script class.
    # 'bool' means True or False (like a light switch).
    is_night_mode: bool = false

    # 'float' means a decimal number (like 1.5 or 0.0).
    # We'll use this to control fog density.
    night_fog_density: float = 0.8

    # 'color' is exactly what it sounds like.
    # We'll use this to change the sky color.
    night_sky_color: color = {0.1, 0.1, 0.2} # Dark blue/purple

    # --- FUNCTIONS (The "Combo Moves") ---
    
    # This function turns the lights out.
    # 'event' means it runs automatically when something happens (like a trigger).
    event OnBegin() preinit:
        # When the game starts, we check if we're already in night mode.
        # If not, we stay in day mode.
        if not is_night_mode:
            SetDayMode()

    # This is our custom function. It's like a custom ability.
    # It takes no inputs (empty parentheses) and returns nothing (void).
    function SetNightMode():
        # We are going to change the properties of our Day Sequence device.
        # The Day Sequence device has a 'Sky' component and a 'Lighting' component.
        
        # 1. Change the Sky Color
        # We access the 'Sky' component of our lighting device.
        # Then we set its 'Color' property to our variable.
        lighting_device.Sky.Color = night_sky_color
        
        # 2. Change the Fog
        # We access the 'Atmosphere' component.
        # We set the 'Fog Density' to our night_fog_density variable.
        lighting_device.Atmosphere.FogDensity = night_fog_density
        
        # 3. Turn off the Sun (or make it very dim)
        # We access the 'Sun' component.
        # We set its 'Intensity' to 0.0 (completely dark).
        lighting_device.Sun.Intensity = 0.0
        
        # 4. Turn on the Moon (or make it brighter)
        # We access the 'Moon' component.
        # We set its 'Intensity' to 1.0 (full brightness).
        lighting_device.Moon.Intensity = 1.0
        
        # 5. Update our internal variable
        is_night_mode = true
        
        # Optional: Print a message to the debug console to confirm it worked
        print("🌙 Night Mode Activated! Good luck, noob.")

    # This function turns the lights back on.
    function SetDayMode():
        lighting_device.Sky.Color = {1.0, 1.0, 1.0} # White/Bright
        lighting_device.Atmosphere.FogDensity = 0.0 # Clear air
        lighting_device.Sun.Intensity = 1.0 # Full sun
        lighting_device.Moon.Intensity = 0.0 # No moon
        
        is_night_mode = false
        
        print("☀️ Day Mode Restored. Get back in the bus.")

    # --- EVENTS (The "Triggers") ---
    
    # This event runs when someone enters the trigger zone.
    # 'Other' is the player or object that entered.
    event OnBeginOverlap(Other: actor):
        # If we are currently in Day Mode, switch to Night Mode.
        if not is_night_mode:
            SetNightMode()
        # If we are already in Night Mode, switch back to Day Mode.
        else:
            SetDayMode()

Step 3: Connecting It Up

  1. Save your Verse file.
  2. In the Outliner, right-click your Trigger Volume and select Edit > Add Component.
  3. Search for your script (it might be named day_sequence_trigger or whatever you named the class) and add it.
  4. Bind the Variables:
    • Click on the Trigger Volume in the Outliner.
    • In the Details Panel (where you see properties), look for your script component.
    • You will see Trigger Zone and Lighting Device listed as bindable properties.
    • Click the small square next to Trigger Zone and select the Trigger Volume itself (or drag the Trigger Volume from the viewport onto the property).
    • Click the small square next to Lighting Device and select the Day Sequence device you placed earlier (MainLighting).
  5. Playtest! Press Play. Walk into the trigger zone. Watch the sky turn purple, the fog roll in, and the sun vanish. Walk out, and it resets.

Try It Yourself

You’ve got the basics! Now, let’s make it more interesting.

Challenge: Add a "Sunset" mode. Instead of jumping straight to night, create a new function called SetSunsetMode() that sets the sky color to orange/pink, reduces sun intensity to 0.5, and sets fog density to 0.3.

Hint: You’ll need to add a new boolean variable (like is_sunset_mode) and update your OnBeginOverlap event to cycle through Day -> Sunset -> Night -> Day. Don’t forget to update the print statements so you know which mode you’re in!

Recap

  • The Day Sequence device controls the global lighting, sky, and atmosphere of your island.
  • Variables store settings (like colors and densities) that you can change via code.
  • Functions let you bundle multiple lighting changes into a single command (like "SetNightMode").
  • Events (like OnBeginOverlap) let your code react to player actions (like stepping on a trigger).
  • Always bind your editor objects (Trigger, Day Sequence) to your script’s variables in the Details Panel.

References

  • https://dev.epicgames.com/documentation/en-us/fortnite-creative/using-day-sequence-devices-in-fortnite-creative
  • https://dev.epicgames.com/documentation/en-us/fortnite/time-jump-game-mechanics-in-unreal-editor-for-fortnite
  • https://dev.epicgames.com/documentation/en-us/fortnite/day-sequence-device-in-fortnite-creative
  • https://dev.epicgames.com/documentation/en-us/fortnite/using-day-sequence-devices-in-unreal-editor-for-fortnite
  • https://dev.epicgames.com/documentation/en-us/fortnite-creative/using-devices-in-fortnite-creative

Verse source files

Turn this into a guided course

Add using-day-sequence-devices-in-fortnite-creative 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.

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.

Comments

    Sign in to vote, comment, or suggest an edit. Sign in