Spawn, Drive, Destroy: The Ultimate Guide to ATK Spawners in Verse
Spawn, Drive, Destroy: The Ultimate Guide to ATK Spawners in Verse
So you want to build a race map? Or maybe a vehicular combat arena where players spawn in golf carts and crash into each other? You need the ATK Spawner. Think of it like the Battle Bus, but instead of dropping you into the sky, it drops a drivable all-terrain kart (ATK) right onto your island.
In this tutorial, we’re skipping the basic "place and pray" method. We’re going to use Verse (Epic’s programming language) to control when and how these karts appear. By the end, you’ll have a working spawn system that feels less like a glitchy mess and more like a polished game mode.
What You'll Learn
- The ATK Spawner Device: What it is and why "Contextual Filtering" matters.
- Variables & Constants: How to store team data so you don’t mix up Team 1’s kart with Team 4’s.
- Functions: Creating a reusable "Spawn Kart" command so you don’t have to write the same code four times.
- Scene Graph Basics: Understanding how the game engine organizes your islands (entities and components).
How It Works
Before we write a single line of code, let’s translate the tech-speak into Fortnite logic.
What is an ATK Spawner?
It’s a device that creates an ATK (that little golf cart) at a specific spot on the map. By default, if you just place one, it spawns a kart for everyone. But we want control. We want Team 1 to get a Red Kart, and Team 2 to get a Blue one, and we want them to spawn only when the match starts, not when we’re still building the map.
The Scene Graph: Your Island’s Skeleton
In Unreal Engine (the tech behind Fortnite Creative), everything is part of a Scene Graph. Imagine your island is a giant tree.
- The Island is the trunk.
- Devices (like your ATK Spawner) are branches.
- The ATK itself is a leaf.
When we use Verse, we’re not just placing a device; we’re reaching into the code tree to pull a branch and say, "Hey, grow a leaf here."
Contextual Filtering: The Clutter Killer
You might notice that when you click an ATK Spawner in the editor, some options disappear or appear depending on what you’ve already chosen. This is Contextual Filtering. It’s like the game saying, "You picked 'Create Only' phase, so I’m hiding the 'During Gameplay' options because they don’t make sense right now." We’ll use this to our advantage by locking our spawners to specific teams.
Variables vs. Constants
- Constant: A value that never changes. Like the max health of a player (100). In our code, we’ll use constants for things like "Team 1" or "Team 2" so we don’t accidentally type "Team One" and break the game.
- Variable: A value that changes. Like a player’s current HP. In our case, we’ll use variables to track which spawner is active or which team is currently spawning.
Let's Build It
We are going to build a Team Spawn System. We’ll create a Verse script that holds references to four ATK Spawners (one for each team). When the game starts, it will spawn a kart for each team at their respective locations.
The Setup
- Place 4 ATK Spawner devices on your island.
- Position them in four corners.
- In the Customize Panel for each spawner:
- Set Enabled During Phase to
Create Only. (This prevents the kart from spawning before the match starts). - Set Enable Respawn to
Off. (We’ll handle respawns manually later if we want). - Set Activating Team to
Team 1,Team 2,Team 3, andTeam 4respectively. - Name them:
Spawner_Team1,Spawner_Team2,Spawner_Team3,Spawner_Team4. (Naming is crucial for Verse to find them).
- Set Enabled During Phase to
The Verse Code
Create a new Verse file in your project. We’ll call it TeamSpawnSystem.verse.
# TeamSpawnSystem.verse
# A simple script to spawn ATKs for 4 teams at game start.
using { /Fortnite.com/Devices }
using { /Fortnite.com/Verse }
# We create a "Device" script. Think of this as a container for our logic.
# It will live on the island and watch for game events.
class TeamSpawnSystem is GameFramework() {
# CONSTANTS: These are our team IDs.
# We define them once so we don't have to remember if it's "Team 1" or "Team_1".
const Team1 := "Team 1"
const Team2 := "Team 2"
const Team3 := "Team 3"
const Team4 := "Team 4"
# VARIABLES: These are references to our actual devices in the world.
# We use "optional" because if we forget to place a spawner, the game won't crash.
# It’s like having an empty loot slot.
var Spawner1 := <ATK_Spawner>{}
var Spawner2 := <ATK_Spawner>{}
var Spawner3 := <ATK_Spawner>{}
var Spawner4 := <ATK_Spawner>{}
# FUNCTION: A reusable block of code.
# Think of this as a "Command" you can give to the game.
# It takes a Spawner device as an input (the "Target").
SpawnKartForTeam(SpawnerDevice : optional <ATK_Spawner>, TeamID : string) := () => {
# Check if the spawner actually exists (isn't empty).
if SpawnerDevice != <ATK_Spawner>{} {
# Here’s the magic: We call the device's function to spawn.
# We pass the TeamID so the device knows which team gets the kart.
# Note: In real UEFN, you often link devices via the editor,
# but Verse lets us do this dynamically.
# For this beginner example, we assume the Spawner is configured
# to spawn for that specific team in its Customize panel.
# We trigger the spawner. This is like hitting a button that says "Spawn Now."
SpawnerDevice:Spawn()
} else {
# If the spawner is missing, print a warning to the debug log.
# This is your "Error Message" when the game breaks.
print("Warning: Spawner for {TeamID} is missing!")
}
}
# EVENT: This runs automatically when the game starts.
# It’s like the referee blowing the whistle.
OnBegin() => () => {
# Wait a tiny bit so the game loads properly.
# 0.1 seconds is like a quick pause before the action.
await 0.1
# Call our function for each team.
# This is like sending four different orders to four different chefs.
SpawnKartForTeam(Spawner1, Team1)
SpawnKartForTeam(Spawner2, Team2)
SpawnKartForTeam(Spawner3, Team3)
SpawnKartForTeam(Spawner4, Team4)
print("All ATKS spawned! Good luck, drivers!")
}
}
Walkthrough: What Just Happened?
class TeamSpawnSystem is GameFramework(): This tells the game, "I am a script that lives on the island and knows about game events."const Team1 := "Team 1": We defined a constant. If we need to change the team name later, we only change it in one place.var Spawner1 := <ATK_Spawner>{}: We created a variable to hold a reference to a device. The<ATK_Spawner>{}part means "I expect an ATK Spawner device here."SpawnKartForTeam(...): This is our function. It’s like a recipe. You give it a spawner and a team name, and it follows the steps inside.OnBegin(): This is the event. It runs exactly once when the match starts. We use it to call our recipe four times.
Try It Yourself
Now that you have the basics, try this challenge:
The Challenge: Modify the code so that the ATKS only spawn if the game mode is set to "Free For All" (or any other condition).
Hint: You’ll need to use a Variable to store the game mode setting (you can find this in the Device settings or via a simple device link) and an If Statement (like a decision gate) inside the OnBegin() function.
Recap
- ATK Spawners create golf carts on your map.
- Contextual Filtering helps you manage device options by hiding irrelevant settings.
- Variables store references to devices, while Constants store fixed values like team names.
- Functions let you reuse code (like spawning a kart), and Events (like
OnBegin) trigger that code at the right time. - The Scene Graph is the hierarchy of your island, and Verse lets you manipulate it programmatically.
You now have the tools to build a dynamic spawn system. Stop letting players wander around on foot for the first five minutes—give them wheels and let the chaos begin.
References
- https://dev.epicgames.com/documentation/en-us/fortnite/using-atk-spawner-devices-in-fortnite-creative
- https://dev.epicgames.com/documentation/en-us/fortnite-creative/using-atk-spawner-devices-in-fortnite-creative
- https://dev.epicgames.com/documentation/en-us/fortnite/using-atk-spawner-device-design-examples-in-fortnite-creative
- https://dev.epicgames.com/documentation/en-us/fortnite-creative/atk-spawner-device-design-examples-in-fortnite-creative
- https://dev.epicgames.com/documentation/en-us/fortnite-creative/using-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 using-atk-spawner-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.