Stop Guessing, Start Configuring: Mastering Device Properties in Verse
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
@editableAttribute: 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.
- 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 aDamageAmountto50as a constant, every player takes 50 damage. You can’t change it mid-game via the editor. - 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, type2in 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
- Open UEFN and create a new Verse Device (or open an existing one).
- Place a Creative Prop in your level (this will be our platform). Let’s call it
MyPlatform. - 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?
-
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.
-
DisappearDuration: float = 2.0:floatis a number type (like2.0or0.5).@editableis the magic sauce. It tells UEFN: "Show this variable in the properties panel."= 2.0sets the default value. If you don’t change it, the platform disappears for 2 seconds. If you change it to5.0in the editor, it disappears for 5.
-
const MaxHealth: int = 100:constmeans "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.
- Expose two properties:
DamageAmount(anint, editable, default50).CooldownTime(afloat, editable, default1.0).
- Expose a reference to a Damage device.
- Write a simple
OnBeginevent that waits for a player to touch the trigger, then applies theDamageAmountto the player and waits forCooldownTimebefore 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
@editablefor variables you want to change frequently (like delays, speeds, amounts). - Use
constfor 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
- 01-fragment.verse · fragment
- 02-fragment.verse · fragment
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.
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.