The Bouncer at the Club: Mastering Attribute Evaluators in Verse
Unverified — this example may not compile as-is.
The Verse code below did not pass our automated compile check, so it isn't marked verified and is hidden from the guide listing. The explanation may still be useful, but treat the code as a draft and adapt it before use.
The Bouncer at the Club: Mastering Attribute Evaluators in Verse
You know that feeling when you’re trying to get into an exclusive VIP section, but the bouncer stops you because you don’t have a guest list? That’s exactly what an Attribute Evaluator does in Fortnite Creative. It’s the ultimate gatekeeper. It doesn’t care if you’re the best player in the world; if you don’t meet the stats (like having enough gold or enough eliminations), it won’t let you pass.
In this tutorial, we’re going to build a "Boss Arena" that only opens when you’ve proven yourself by eliminating a certain number of enemies. No grinding? No boss fight. Let’s turn your island into a meritocracy.
What You'll Learn
- How to use an Attribute Evaluator as a smart trigger that checks player stats.
- The difference between a simple trigger and branching logic (the "if this, then that" of game dev).
- How to chain devices together so actions only happen when conditions are met.
- Why the order of operations matters (spoiler: timing is everything).
How It Works
In Fortnite Creative, devices talk to each other using signals. Think of signals like walkie-talkie bursts. When you step on a floor pad, it sends a "I'm here!" signal.
Usually, you connect devices in a straight line: Trigger -> Door Opens. Simple.
But what if you want the door to open only if the player has 500 HP? Or only if they have 10 kills? That’s where the Attribute Evaluator comes in. It’s not a door; it’s a security checkpoint.
The Concept: Branching Logic
Imagine a fork in the road.
- The Input: A player does something (e.g., steps on a pad).
- The Check: The Attribute Evaluator looks at the player’s current stats (Attributes).
- The Split:
- Success Channel: The player meets the requirement. The signal goes left.
- Failure Channel: The player fails the requirement. The signal goes right.
This is called branching logic. It’s the same logic your brain uses: If I have enough V-Bucks, buy the skin. If not, keep playing.
The "Agent"
In Verse terms, the player is referred to as an Agent. An Agent is just the fancy computer-science word for "the person holding the controller." The Attribute Evaluator checks the Agent’s stats at the exact moment it receives the signal.
A Critical Warning: Timing
Here is the most common mistake beginners make. If you connect an Elimination Manager directly to an Attribute Evaluator to check if a kill happened, it might fail. Why? Because the game processes the visual "elimination" before it updates the internal "kill count" stat. It’s like high-fiving someone before you actually say "nice shot." The stat hasn’t updated yet.
Pro Tip: Always give the game a tiny moment to update stats, or use a device that inherently waits for the stat update (like a simple Step Trigger that checks a persistent counter, rather than a raw elimination event). For our tutorial, we’ll use a simpler, more reliable method: checking Gold or Health, which update instantly.
Let's Build It
We are building a Boss Door. Goal: The boss door stays locked. When a player has at least 1000 Gold, they can walk through. If they have less, they get pushed back.
Step 1: The Setup
- Place a Prop Mover (this will be your Boss Door). Set it to "Up" and give it a nice height.
- Place an Attribute Evaluator anywhere in the map (it doesn’t need to be touching the door yet).
- Place a Step Trigger (or just use the player’s natural movement if you’re using Verse directly, but for clarity, let’s imagine we’re checking stats when they try to enter a zone). Actually, let’s keep it pure Verse logic.
Let’s write the Verse code. This code assumes you have a Prop Mover named BossDoor and an Attribute Evaluator named GoldGate.
using { /Fortnite.com/Devices }
# This is our main script. Think of it as the brain of the island.
MyScript := class(creative_object):
# We need to find our devices in the world.
# 'BossDoor' is the Prop Mover that opens the path.
BossDoor: Prop Mover = ?
# 'GoldGate' is the Attribute Evaluator that acts as the bouncer.
GoldGate: Attribute Evaluator = ?
# This function runs when the island starts.
OnBegin<override>()<suspends>: void=
# Connect the GoldGate's "Pass" signal to the BossDoor's "Activate" input.
# If the player passes the check, the door opens.
GoldGate.PassEvent:Bind(
func(self):
BossDoor.Activate()
)
# Connect the GoldGate's "Fail" signal to a sound or effect.
# If the player fails, play a "Denied" sound.
GoldGate.FailEvent:Bind(
func(self):
# In a real build, you'd play a sound device here.
# For now, we just ignore it or log it.
print("Access Denied: Not enough Gold!")
)
# IMPORTANT: We need to tell the Gate WHO to check.
# We do this by connecting a signal TO the Gate.
# Let's assume we have a Step Trigger that signals the Gate.
# Since we can't connect devices in code easily without references,
# we'll rely on the editor connections for the INPUT,
# but here we define the OUTPUTS.
# Wait, in Verse, we usually handle the logic inside the device
# or bind events to external triggers.
# Let's refine: The Attribute Evaluator needs an input signal.
# We will bind a Step Trigger's OnBegin to the GoldGate's input.
# Note: In UEFN, you often connect devices in the editor.
# But if you want to do it all in Verse, you bind the events.
# Let's assume a StepTrigger named 'EntryPad' exists.
# We will bind its signal to the Gate.
EntryPad := self.GetWorld().FindDevice[Step Trigger]("EntryPad")
# When the player steps on the pad, signal the Gate.
EntryPad.OnBegin:Bind(
func(self):
# This sends the signal to the Gate.
# The Gate then checks the player's stats.
GoldGate.Trigger()
)
Wait, there’s a catch. The Attribute Evaluator in UEFN is primarily a device you place in the editor. While you can interact with its events in Verse, the configuration of what stats to check (e.g., "Gold >= 1000") is done in the Properties Panel in the editor, not in the code. The code just handles the result (Pass/Fail).
Let’s simplify this for a true beginner using a mix of Editor and Verse, which is the standard workflow.
The "Editor-First" Verse Approach (Recommended)
-
Place Devices:
Step Trigger(Name:EntryPad)Attribute Evaluator(Name:GoldGate)Prop Mover(Name:BossDoor)
-
Configure
GoldGatein Editor:- In the Properties panel, set Test to
Gold. - Set Operator to
Greater Than Or Equal To. - Set Value to
1000. - This is the bouncer checking the guest list.
- In the Properties panel, set Test to
-
Connect the Signals (The Wiring):
- Connect
EntryPad'sOnBegintoGoldGate'sTrigger. - Connect
GoldGate'sPasstoBossDoor'sActivate. - Connect
GoldGate'sFailto aSound Emitter(optional, for "Denied" noise).
- Connect
-
The Verse Script (To make it dynamic): Let’s add a Verse script that changes the requirement dynamically. Maybe the boss gets stronger?
Why this works:
The Attribute Evaluator is the Branching Logic.
- Player steps on
EntryPad. - Signal goes to
GoldGate. GoldGateasks: "Does this player have >= 1000 Gold?"- Yes: Signal goes to
Pass-> Door opens. - No: Signal goes to
Fail-> Nothing happens (or sound plays).
Try It Yourself
Challenge: Create a "Heal Station" that only works if the player’s Health is below 50.
- Place a Heal Station (or Item Granter).
- Place an Attribute Evaluator.
- Configure the Evaluator to check Health with a condition of Less Than
50. - Connect the
Passsignal to the Heal Station. - Connect the
Failsignal to a Sound Emitter that plays a "Nope" sound.
Hint: Remember, if the player has 100 HP, the condition "Less Than 50" is false. The signal will go to the Fail channel. Make sure your sound emitter is connected to the correct channel!
Recap
- The Attribute Evaluator is a device that checks player stats (Attributes) when it receives a signal.
- It acts as branching logic, splitting the signal into
Pass(success) orFail(failure) based on the conditions you set in the editor. - It’s perfect for gates, rewards, and challenges that depend on what the player has done or has (Gold, Kills, Health).
- Always configure the conditions in the editor, and use Verse (or simple device wiring) to handle the results.
References
- https://dev.epicgames.com/documentation/en-us/fortnite/using-attribute-evaluator-devices-in-fortnite-creative
- https://dev.epicgames.com/documentation/en-us/fortnite-creative/using-attribute-evaluator-devices-in-fortnite-creative
- https://dev.epicgames.com/documentation/en-us/uefn/verse-api/fortnitedotcom/devices/attribute_evaluator_device
- https://dev.epicgames.com/documentation/fortnite/verse-api/fortnitedotcom/devices/attribute_evaluator_device
- https://dev.epicgames.com/documentation/en-us/fortnite/verse-api/fortnitedotcom/devices/attribute_evaluator_device
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-standalone.verse · standalone
- 02-standalone.verse · standalone
Turn this into a guided course
Add using-attribute-evaluator-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.
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.