How to Build a Fortnite Music Video Club (Without the Cringe)
How to Build a Fortnite Music Video Club (Without the Cringe)
You know that feeling when the lobby music is terrible, or the ambient noise of a raid spot is just too much? Let’s fix that. We’re building a Video Player setup that lets players trigger custom Fortnite-themed music videos on demand. Think of it as a personal DJ booth where you control the vibe, not the storm.
We’ll use Verse to make sure the video only plays when it’s supposed to, rewinds automatically so you don’t get stuck on the chorus, and doesn’t break if two people try to play it at once. No more accidental ear rape from random lobby loops.
What You'll Learn
- The Scene Graph: How devices talk to each other like a chain of command.
- Events: The "trigger" system (like a pressure plate) that starts your code.
- Variables: Storing settings (like video IDs) so you don’t have to hardcode chaos.
- Video Player Logic: How to handle playback, rewinding, and audio distance.
How It Works
In Fortnite Creative, everything lives in the Scene Graph. If you’ve ever looked at the "Hierarchy" panel in UEFN, you’ve seen this. The Scene Graph is just a family tree of all the objects in your island. There’s a root (the whole game world), and branches (devices, props, players).
When we write Verse, we aren’t just writing random code; we are attaching behavior to specific branches of that tree.
Here’s the game mechanic analogy:
- The Device: This is your loot box. It sits there, waiting.
- The Event: This is the act of opening the loot box. It’s a moment in time.
- The Code: This is what happens after you open it. Do you get a shotgun? Do you get a trap?
- The Video Player: This is the "Item Granter" for media. It takes a stream (the loot) and displays it on a screen.
The Catch: Only one video stream can play at a time across the entire island. If Player A starts a video, and Player B tries to start another, Player A’s video gets cut off. It’s like the Battle Bus: only one bus flies at a time. We need to write code that respects this rule.
We’re going to build a simple system:
- A Switch (the trigger).
- A Verse Script that listens for the switch being flipped.
- A Video Player that turns on, plays the video, and rewinds when it’s done.
Let's Build It
First, place these devices in your island:
- Video Player: Place it on a wall. Set the Interact Time to "Do Not Interact" (so players can’t just tap it and break the flow). Set Rewind When This Stream Is Loaded to "Yes" (so it always starts fresh).
- Switch: Place it somewhere accessible.
- Verse Script: Create a new Verse file.
Here is the code. It’s short, sweet, and does exactly what it says on the tin.
# Import the necessary modules
# Think of these as the "Loadout" for our script.
# We need the core Verse library and the Video Player device definitions.
use core:/engine/core.verse
use video_player:/engine/video_player.verse
# Define our Script
# This is the "Player Spawner" for our logic.
# It binds our code to the devices we place in the editor.
script MusicVideoClub <|
# The Switch Device
# This is like the "Trigger" in a trap.
# It waits for a signal.
switch_device: SwitchDevice = SwitchDevice{}
# The Video Player Device
# This is the "Prop Mover" but for media.
# It holds the video stream.
video_player: VideoPlayerDevice = VideoPlayerDevice{}
# The "On Switch Flipped" Event
# This is the "Elimination Event" for our logic.
# It fires when the switch is activated.
on_switch_flipped() =|
# Check if the video is currently playing
# If it is, stop it. If not, play it.
# This is like checking if the Storm is active before turning it on.
if video_player:is_playing() =|
# Stop the video
video_player:stop()
else =|
# Start the video
# We assume the video ID is set in the device settings in UEFN
video_player:play()
|
|>
# Bind the event to the switch
# This connects the "Trigger" to the "Code".
# When the switch sends a signal, run on_switch_flipped.
bind switch_device:activated_event to on_switch_flipped()
|>
Walkthrough
use core:/...: This is like loading the game files. You can’t build a trap without the trap components.script MusicVideoClub <| ... |>: This defines our "Island Logic." It’s the container for everything.switch_device: SwitchDevice: This is a Variable. A variable is just a named box that holds a value. Here, the box holds the Switch device. We named itswitch_deviceso we can refer to it later.video_player: VideoPlayerDevice: Another variable. This one holds the Video Player.on_switch_flipped(): This is a Function. A function is a set of instructions that runs when called. Think of it as a "Move" in the game. You press the button, the move executes.if video_player:is_playing() ...: This is a Conditional. It’s like the Storm timer: If the storm is up, then do damage. If the video is playing, then stop it. Otherwise, play it.bind switch_device:activated_event to on_switch_flipped(): This is the Event Binding. It’s the "wiring." It connects the Switch’s "On" signal to our Function.
Try It Yourself
Challenge: Right now, the video just plays and stops. But what if you want it to rewind automatically when it finishes?
Hint: Look for a method on the video_player object that handles the "End of Stream" event. In Verse, events often have names like on_..._event. Try binding a new function to the video player’s end event that calls video_player:rewind().
Recap
- Scene Graph: Your island is a family tree. Devices are branches, and Verse scripts are the rules that govern how they interact.
- Events: These are the moments that trigger your code (like a switch flip or a player elimination).
- Variables: Named boxes that hold your devices, so you can talk to them later.
- Video Player: Only one stream plays at a time. Use Verse to manage who gets to play, and when.
Now go make your island the coolest lobby in Fortnite. And please, for the love of all that is holy, pick a good music video.
References
- https://dev.epicgames.com/documentation/en-us/fortnite/using-video-player-devices-in-fortnite-creative
- https://dev.epicgames.com/documentation/en-us/fortnite-creative/using-video-player-devices-in-fortnite-creative
- https://dev.epicgames.com/documentation/en-us/fortnite/create-a-music-experience-in-fortnite-creative
- https://dev.epicgames.com/documentation/en-us/fortnite-creative/create-a-music-experience-in-fortnite-creative
- https://dev.epicgames.com/documentation/en-us/fortnite/first-person-camera-device-design-examples-in-fortnite-creative
Verse source files
- 01-fragment.verse · fragment
Turn this into a guided course
Add using-video-player-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.