How to Build a "Killstreak" Upgrade System in Fortnite
Tutorial beginner

How to Build a "Killstreak" Upgrade System in Fortnite

Updated beginner

How to Build a "Killstreak" Upgrade System in Fortnite

Ever played a shooter where getting five kills in a row unlocks a nuke, a drone strike, or a giant laser gun? That’s the dopamine hit of a killstreak. In Fortnite Creative, you don’t need a PhD in computer science to make that happen. You just need to understand how devices talk to each other—and how to write a tiny bit of Verse to keep score.

In this tutorial, we’re building a system where players start with a basic pistol. Every time they get an elimination, a counter goes up. Hit a specific number (like 3 kills), and boom—they unlock a Legendary Siege Cannon. It’s simple, it’s satisfying, and it’s the perfect introduction to using Verse for game logic.

What You'll Learn

  • Variables as Scoreboards: How to track a changing number (like eliminations) using a Verse variable.
  • Events as Triggers: How to make code run only when a player gets a kill.
  • Device Communication: How to use Channels (like walkie-talkie frequencies) to tell devices when to activate.
  • The Scene Graph: Understanding where your devices live in the world and how they connect.

How It Works

Before we write a single line of code, let’s look at the hardware. In UEFN, devices are like the gadgets in your inventory. But unlike a shotgun in your hand, these devices sit in the background, waiting for instructions.

The "Channel" Concept (Your Walkie-Talkie)

Imagine every device in your island has a radio.

  • Sending a signal: When a device "transmits on Channel 1," it’s like shouting into a walkie-talkie set to frequency 1.
  • Listening: Another device can be set to "listen on Channel 1." When it hears the shout, it reacts (plays a sound, opens a door, or in our case, unlocks a weapon).

The Verse Script (The Brain)

We need a script that acts as the referee. It needs to:

  1. Watch for eliminations.
  2. Count them up.
  3. Shout on a specific channel when the target number is reached.

In programming, this counting mechanism is called a variable. Think of a variable like a scoreboard display or a health bar. It holds a value that changes during the game.

  • Integer: A whole number (no decimals). Perfect for counting kills.
  • Event: A specific moment in time that triggers code. Like the Storm Timer hitting 0:00, or a player stepping on a Trigger.

The Scene Graph (The Hierarchy)

In Unreal Engine 6 (and UE5), everything exists in a Scene Graph. This is just a fancy term for the family tree of your island.

  • Entity: Any object in the world (a prop, a device, a player).
  • Component: The features attached to that entity (like a script, a mesh, or a collision box).
  • Hierarchy: How they are nested. Your Verse script is a component attached to an Entity (the Verse Device). When that script runs, it controls its own entity and can talk to other entities in the scene.

Let's Build It

We are going to build a system where:

  1. Players spawn with a basic weapon.
  2. A Verse script counts eliminations.
  3. At 3 eliminations, the script sends a signal to unlock a Siege Cannon.

Step 1: The Setup (No Code Yet)

  1. Place a Player Spawner: This is where players start.
  2. Place an Item Granter: Name it BasicWeaponGranter. Drop a simple weapon (like a Tactical Assault Rifle) next to it while customizing it. Set "Equip Granted Item" to "First Item."
  3. Place a Second Item Granter: Name it SiegeCannonGranter. Drop a Siege Cannon next to it.
    • Crucial Step: In the Customize panel, find the Channel setting. Set it to Channel 100. This means this granter is "silent" right now. It won’t give anyone the weapon until someone shouts on Channel 100.
  4. Place a Radio (Optional but fun): Set it to play a hype track. Set "Trigger When Receiving From" to Channel 100. Now, when the cannon unlocks, the music plays.

Step 2: The Verse Script

We need a script to count the kills and shout on Channel 100.

  1. Open the Verse tab in UEFN.
  2. Click New File.
  3. Paste the following code. Don’t worry about memorizing it yet; we’ll break it down line by line.
# KillstreakController.v

# This is our "Scoreboard" variable.
# It starts at 0.
var eliminations_count: int = 0

# The target number of kills to unlock the upgrade.
const TARGET_KILLS: int = 3

# This is the "Event" handler.
# It runs automatically whenever a player elimination happens in the game.
OnPlayerEliminated(EliminationResult: elimination_result): void =
    # 1. Increment the scoreboard by 1.
    # Think of this as adding a point to the scoreboard.
    eliminations_count += 1
    
    # 2. Check if we hit the target.
    # If eliminations_count equals 3, run the code inside the block.
    if (eliminations_count == TARGET_KILLS):
        # 3. Transmit on Channel 100.
        # This is like shouting "UNLOCK THE CANNON!" on walkie-talkie freq 100.
        # We transmit from the current device (this script's entity).
        Self.TransmitOn(Channel(100))
        
        # Optional: Reset the count for the next round (if you want it to be repeatable)
        # eliminations_count = 0
  1. Compile: Click the Build Verse Code button (the hammer icon). If you see no errors, you’re good.
  2. Place the Device: In the Content Drawer, go to All > Your Project Name > CreativeDevices. You should see KillstreakController. Drag it onto your map anywhere (it can be invisible, or hidden behind a wall).

Step 3: Connecting the Dots

Now, let’s make sure the script actually sees the eliminations.

  1. Select the KillstreakController Verse Device you just placed.
  2. In the Details panel, look for Events or Bindings.
  3. Find the event OnPlayerEliminated.
  4. Ensure it is bound to the script. In modern UEFN, if the script is named correctly and compiled, it often auto-binds to the global elimination event. If not, you may need to ensure the device is active.
    • Note: In many simple UEFN setups, the OnPlayerEliminated event in Verse is a global listener. You don’t always need to wire it to a specific device trigger if the script is active in the scene. The script runs in the background, watching the game state.

Step 4: Test It

  1. Hit Play.
  2. Get your basic rifle.
  3. Eliminate an enemy (or use a bot if you’re testing solo).
  4. Do it 3 times.
  5. On the 3rd kill, you should hear the radio play, and if you check your inventory, the Siege Cannon should appear!

Try It Yourself

Challenge: Modify the script to make the system repeatable.

Right now, once a player gets 3 kills, they get the cannon, but if they get 3 more kills, nothing happens because the counter stays at 3.

Hint: Look at the line inside the if statement. After you transmit on Channel 100, add a line that sets eliminations_count back to 0. This resets the scoreboard for the next streak.

Recap

  • Variables are like scoreboards—they hold values that change during the game.
  • Events are triggers that run code at specific moments (like eliminations).
  • Channels are walkie-talkie frequencies that devices use to talk to each other without needing complex code.
  • Verse is the language that lets you create custom logic, like counting kills and unlocking gear.

You’ve just built your first dynamic game system. No more static maps—now you’re making games that react to what players do.

References

  • https://dev.epicgames.com/documentation/en-us/fortnite-creative/using-siege-cannon-devices-in-fortnite-creative
  • https://dev.epicgames.com/documentation/en-us/fortnite/using-siege-cannon-devices-in-fortnite-creative
  • https://dev.epicgames.com/documentation/en-us/fortnite/accolades-device-gameplay-examples-in-fortnite-creative
  • https://dev.epicgames.com/documentation/en-us/fortnite-creative/using-radio-devices-in-fortnite-creative
  • https://dev.epicgames.com/documentation/en-us/uefn/stronghold-03-add-verse-script-to-devices-in-unreal-editor-for-fortnite

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 Elimination Streak Upgrade 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