Stop Guessing, Start Configuring: Mastering Device Properties in Verse
Tutorial beginner

Stop Guessing, Start Configuring: Mastering Device Properties in Verse

Updated beginner

Stop Guessing, Start Configuring: Mastering Device Properties in Verse

Ever placed a disappearing platform in your island, only to have it vanish instantly or take ten seconds to respawn? You’re stuck tweaking numbers in your head, playtesting, tweaking again, and losing your mind. It’s like trying to balance a storm timer by guessing the wind speed.

Stop guessing. In this tutorial, we’re going to learn how to expose Device Properties in Verse. This turns your code from a rigid, "one-size-fits-all" script into a flexible device you can tweak directly in the UEFN editor. We’ll build a "Chaos Platform" that lets you adjust its behavior on the fly, no code changes required.

What You'll Learn

  • Device Properties: What they are and why they save you from endless playtesting loops.
  • Editable vs. Constant: The difference between settings you change once (constants) and settings you tweak while building (editable properties).
  • The @editable Attribute: How to tell Verse, "Hey, show this variable in the side panel!"
  • Scene Graph Integration: How these properties connect your Verse script to the physical objects in your level.

How It Works

Imagine you have a Prop Mover device. In standard Creative, you set its speed and direction in the device menu. In Verse, you write a script that controls that Prop Mover. But what if you want to change the speed without reopening the code editor?

That’s where Device Properties come in.

The Concept: The "Controller" vs. The "Remote"

Think of your Verse script as the TV’s internal circuitry. It knows how to turn on, change channels, and adjust volume. But you don’t want to open the back of the TV to change the volume; you want a Remote Control.

In UEFN, the Device Properties panel is that remote control.

  • The Script (Circuitry): Contains the logic (e.g., "If player touches, disappear").
  • The Properties (Remote Buttons): Specific values the script uses, like how long to disappear or which platform to hide.

Editable vs. Constant

When you define a variable in Verse, you need to decide who gets to change it.

  1. Constants (const): These are like the Game Rules at the start of a match. You set them once in the code, and they stay that way for every player. If you set a DamageAmount to 50 as a constant, every player takes 50 damage. You can’t change it mid-game via the editor.
  2. Editable Properties (@editable): These are like Creative Device Settings. You define them in the code, but you can change their default values in the UEFN side panel. This is perfect for tuning gameplay. Want the platform to disappear for 2 seconds instead of 5? Click the device, type 2 in the panel, and hit save. No code re-compilation needed.

The Scene Graph Connection

In Unreal Engine 6 (and Verse), everything is part of the Scene Graph—a hierarchy of objects (Entities) and their traits (Components). When you place a Verse Device in your level, you are creating an Entity. The properties you expose are Components of that Entity.

By exposing a property, you’re essentially saying: "This Verse Entity has a setting called DisappearDelay, and I want the UEFN editor to let me configure it just like I configure a Trigger Volume."

Let's Build It

We’re going to build a Chaos Platform. When a player touches it, it disappears. But instead of hard-coding the delay, we’ll expose the delay time and the target platform so you can tweak them in the editor.

Step 1: The Setup

  1. Open UEFN and create a new Verse Device (or open an existing one).
  2. Place a Creative Prop in your level (this will be our platform). Let’s call it MyPlatform.
  3. Open your Verse script in VS Code.

Step 2: Exposing the Properties

We need to tell Verse which variables should appear in the UEFN editor. We do this using the @editable attribute.

Here is the annotated code:

# We are defining a new Device class.
# Think of this as the "Blueprint" for our Chaos Platform.
class ChaosPlatformDevice(Device):
    # ---------------------------------------------------------
    # PROPERTY 1: The Target
    # ---------------------------------------------------------
    # This is a reference to the Creative Prop in the scene.
    # We use @editable so we can drag-and-drop our platform 
    # into this slot in the UEFN editor.
    @editable
    TargetPlatform: CreativeProp = CreativeProp{}

    # ---------------------------------------------------------
    # PROPERTY 2: The Disappear Time
    # ---------------------------------------------------------
    # This is an 'Editable Float'. 
    # Float = A number with decimals (like 2.5 seconds).
    # Editable = It shows up in the UEFN side panel.
    # We initialize it to 2.0 (2 seconds) by default.
    @editable
    DisappearDuration: float = 2.0

    # ---------------------------------------------------------
    # PROPERTY 3: A Constant (Optional)
    # ---------------------------------------------------------
    # This is a 'Constant'. It cannot be changed in the editor.
    # It’s set once in the code. Good for things like 
    # "Max Players" or "Fixed Damage" that shouldn't vary.
    const MaxHealth: int = 100

    # ---------------------------------------------------------
    # THE LOGIC (Simplified for brevity)
    # ---------------------------------------------------------
    OnBegin<override>()<suspends>: void = 
        # This runs when the device starts.
        # We don't need complex logic here for the tutorial,
        # but this is where you'd attach events.
        print("Chaos Platform Ready! Check the Side Panel.")

Walkthrough: What Just Happened?

  1. TargetPlatform: CreativeProp = CreativeProp{}:

    • This line creates a slot in your device.
    • In UEFN, you’ll see a field called Target Platform. You can click the "eye" icon or drag the prop from your level into this slot. This links your script to a specific object in the scene graph.
  2. DisappearDuration: float = 2.0:

    • float is a number type (like 2.0 or 0.5).
    • @editable is the magic sauce. It tells UEFN: "Show this variable in the properties panel."
    • = 2.0 sets the default value. If you don’t change it, the platform disappears for 2 seconds. If you change it to 5.0 in the editor, it disappears for 5.
  3. const MaxHealth: int = 100:

    • const means "constant." You can’t change this in the editor. It’s baked into the code. Use this for values that should never change, like a fixed damage value or a max player count.

Step 3: Using the Properties in Logic

Now, let’s make the platform actually disappear. Here’s how you’d use those properties in a simple event:

Notice how we used DisappearDuration instead of typing 2.0? That’s the power of properties. You can change the delay in the editor, and the code automatically uses the new value.

Try It Yourself

Challenge: Create a "Revenge Trap" device.

  1. Expose two properties:
    • DamageAmount (an int, editable, default 50).
    • CooldownTime (a float, editable, default 1.0).
  2. Expose a reference to a Damage device.
  3. Write a simple OnBegin event that waits for a player to touch the trigger, then applies the DamageAmount to the player and waits for CooldownTime before allowing another hit.

Hint: Remember to use @editable for the properties you want to tweak in the editor. For the damage application, you’ll need to look up how to use the Damage device’s ApplyDamage function in the Verse docs.

Recap

  • Device Properties let you tweak your Verse scripts in the UEFN editor without changing code.
  • Use @editable for variables you want to change frequently (like delays, speeds, amounts).
  • Use const for values that should never change (like fixed rules).
  • Always reference your objects (like CreativeProp) so your script knows what to affect.

Now go make some islands that are easy to balance and hard to break!

References

  • https://dev.epicgames.com/documentation/en-us/fortnite/disappearing-platform-on-touch-using-verse-in-unreal-editor-for-fortnite
  • https://dev.epicgames.com/documentation/en-us/fortnite/disappearing-platform-on-loop-using-verse-in-unreal-editor-for-fortnite
  • https://dev.epicgames.com/documentation/en-us/fortnite/synchronized-disappearing-platforms-using-verse-in-unreal-editor-for-fortnite
  • https://dev.epicgames.com/documentation/en-us/fortnite-creative/using-patchwork-song-sync-devices-in-fortnite-creative
  • https://dev.epicgames.com/documentation/en-us/fortnite/using-patchwork-song-sync-devices-in-fortnite-creative

Get the complete code — free

You've read the full walkthrough. The complete, copy-paste-ready Verse solution is free for members — sign in to unlock it.

Free with your BrainDead.TV / BrainDeadGuild Discord account. The walkthrough above is always free.

Verse source files

Turn this into a guided course

Add Editing the Device Properties in UEFN 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