Stop Ping-Loading Your Players: Mastering Prop O-Matic Speed in Verse
Stop Ping-Loading Your Players: Mastering Prop O-Matic Speed in Verse
So, you’ve built a slick "Hide and Seek" island. Players are turning into props, hiding behind crates, and the tension is palpable. But then, the searchers start panicking. They’re clicking "Ping" every half-second, spamming the UI, and turning your chill game into a chaotic mess of notifications.
It’s not their fault. It’s your SetPingFrequency.
In this tutorial, we’re going to fix that. We’ll look at the Prop O-Matic Manager device (the brain behind player-prop hiding) and use Verse to control how often players can ping their teammates to reveal hidden props. Think of it as adjusting the cooldown on a special ability so nobody abuses it. By the end, you’ll have a balanced, professional-feeling search mechanic that doesn’t crash the chat log.
What You'll Learn
- The "Ping" Mechanic: How player props communicate location to teammates.
- The Cooldown Problem: Why spamming pings ruins immersion and performance.
SetPingFrequency: The Verse function that acts as your traffic cop, regulating ping speed.- Dynamic Difficulty: Changing ping rules based on game state (e.g., late-game urgency).
How It Works
The Prop O-Matic Manager: Your Game’s Brain
In UEFN, when you want players to turn into props (like a barrel, a chair, or a rock), you use the Prop O-Matic Manager device. This device handles the logic: "When Player A presses 'Interact', hide them as a prop. When Player B looks at them, show their name."
One of the coolest features of hiding as a prop is Pinging. If a teammate is searching for you, they can ping your location. This puts a marker on everyone’s screen, like a mini-map beacon. It’s a great teamwork tool.
The Spam Problem
Here’s the issue: By default, the game might allow players to ping very frequently. If I’m hiding as a crate and I see you looking right at me, I might spam "Ping" 10 times in two seconds to make sure you really see me.
This is annoying. It clutters the screen. It gives away my exact position too easily. It’s like having a teammate who screams "I’M HERE!" every time they blink.
Enter SetPingFrequency
We need to slow this down. We need a Cooldown.
In programming terms, a variable is just a container for data that can change. Think of it like your Health Bar. It starts at 100, goes down when you get shot, and goes up when you eat a shield potion.
SetPingFrequency is a function (a reusable block of code that performs an action). Think of it like a Trap Trigger. You don’t rebuild the trap every time; you just tell the trigger "Activate!" and it does its job.
The SetPingFrequency function takes one parameter: a float (a number with decimals, like 1.5 or 0.5). This number represents the minimum time in seconds between pings.
- If you set it to
0.5, a player can ping every half-second. (Fast! Chaotic!) - If you set it to
3.0, a player must wait 3 seconds between pings. (Strategic! Tense!)
The Scene Graph: Where Does This Live?
In Unreal Engine 6 (and UE5), everything is part of the Scene Graph. Imagine the game world as a giant family tree.
- The World is the parent.
- The Prop O-Matic Manager is a child of the World.
- Your Verse Script is another child of the World, sitting next to the Manager.
Your script doesn’t "own" the Manager, but it can talk to it. When you call SetPingFrequency, you’re sending a message down the family tree to the Manager device, telling it, "Hey, change the rules."
Let's Build It
We’re going to create a script that sets the ping cooldown to 2 seconds when the game starts. Later, we’ll add a twist where it speeds up in the final round.
Step 1: The Setup
- Open your UEFN project.
- Place a Prop O-Matic Manager device in your world (or use the default one if your map type supports it).
- Create a new Verse Script device.
- Link the Script to the Prop O-Matic Manager using the Manager input slot on the Script. (This is how the script knows which manager to talk to).
Step 2: The Code
Open the Verse editor for your script. We need to import the devices so we can talk to them.
using { /Fortnite.com/Devices }
# This is our main script class. Think of it as the "Game Controller" for this island.
CreatePropSearchController() class MyPropGame: WorldActor():
# This is the input slot where we drag our Prop O-Matic Manager device in UEFN.
# It’s like plugging a controller into the console.
Manager: PropOMaticManagerDevice = PropOMaticManagerDevice{}
# This function runs once when the game starts.
# It’s like the "Start Game" button on the battle bus.
OnBegin<override>()<suspends>:void=
# 1. Set the initial ping cooldown to 2.0 seconds.
# This means players can ping every 2 seconds.
Manager.SetPingFrequency(2.0)
# Let's print a message to the console so we know it worked.
# Think of this as checking your inventory to see if you got the item.
print("Ping Cooldown Set to 2 seconds. Good luck hiding!")
# This function runs every frame (60 times a second).
# It’s like the game’s heartbeat. We can use it to check conditions.
OnUpdate<override>()<suspends>:void=
# For this tutorial, we’ll keep it simple.
# In a real game, you might check the round number here
# and change the ping speed if it’s the final circle!
pass
Walkthrough: What Just Happened?
using { /Fortnite.com/Devices }: This tells Verse, "Hey, I want to use Fortnite-specific devices like the Prop O-Matic Manager." Without this, Verse wouldn’t know whatPropOMaticManagerDeviceis. It’s like putting on your VR headset before entering the game.Manager: PropOMaticManagerDevice = PropOMaticManagerDevice{}: This declares a variable namedManager. It’s empty by default, but in UEFN, you drag your actual device into this slot. Now,Manageris a remote control for the device.OnBegin: This is an event. Events are things that happen in the game world (like "Game Started," "Player Entered Zone," "Button Pressed").OnBeginruns exactly once when the match starts.Manager.SetPingFrequency(2.0): Here’s the magic. We’re calling theSetPingFrequencyfunction on ourManagervariable. We pass2.0(afloat) as the argument. The Manager receives this command and updates its internal timer. Now, every time a player pings, the game checks: "Has 2 seconds passed since the last ping?" If yes, allow it. If no, ignore it.
Pro Tip: Dynamic Ping Speeds
Imagine you’re making a "Final Circle" mode. When the storm shrinks, you want pings to be faster so teams can coordinate quickly. You can do this in OnUpdate:
This is how you make your island feel alive. The rules change based on the situation, just like in real Fortnite.
Try It Yourself
Now that you’ve got the basics, try this challenge:
The "Stealth Mode" Challenge:
- Add a Trigger Volume (a zone on the map).
- When a player enters the zone, change the ping frequency to 5 seconds (harder to signal teammates).
- When they leave, change it back to 1 second.
Hint: You’ll need to use the Player device or the Trigger Volume device’s BeginOverlap event. You can access the Manager from your script, just like in OnBegin.
Bonus: Can you make the ping frequency change based on how many players are left alive? (Fewer players = faster pings?)
Recap
SetPingFrequencyis your tool for controlling how often players can ping their hidden prop teammates.- It takes a
float(decimal number) representing seconds. Higher number = slower pings. Lower number = faster pings. - Use it in
OnBeginto set the default rules, or inOnUpdateto change them dynamically. - Balancing ping frequency is key to good game design. Too fast = spam. Too slow = frustration. Find the sweet spot.
Now go forth and build islands where teamwork feels rewarding, not annoying. Your players (and their UIs) will thank you.
References
- https://dev.epicgames.com/documentation/fortnite/verse-api/fortnitedotcom/devices/prop_o_matic_manager_device/setpingfrequency
- https://dev.epicgames.com/documentation/en-us/fortnite/verse-api/fortnitedotcom/devices/prop_o_matic_manager_device/setpingfrequency
- https://dev.epicgames.com/documentation/en-us/fortnite/26-00-release-notes-in-unreal-editor-for-fortnite
- https://dev.epicgames.com/documentation/en-us/uefn/26-00-release-notes-in-unreal-editor-for-fortnite
- https://dev.epicgames.com/documentation/fortnite/verse-api/fortnitedotcom/devices/pulse_trigger_device/setwavespeed
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 setpingfrequency 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.