Verse Wiki — the interactive Verse handbook for the Unreal ecosystem
Chapter 1 · Lesson 1

Meet Verse and UE6: Your First Magic Spell

No syntax drills and no environment setup in this lesson — just three things: figure out what Verse is, why it deserves your time, and then watch your very first lines of Verse run with your own eyes, line by line. Relax — treat it like rolling a fresh character.

1. What Verse Is: The New-Generation Programming Language of the Epic Ecosystem

Verse is a programming language built by Epic Games, and it is becoming an increasingly important programming tool across the Unreal Engine and UEFN ecosystem. If the engine editor is a giant LEGO workbench, Verse is the spell that breathes a soul into the bricks — why a button opens a door, why a countdown chimes, why the boss shows up the instant you step on a trigger: behind all of it, Verse is calling the shots.

It is not some lab experiment, either. Verse launched in March 2023 with UEFN (the creation environment for Fortnite) and has been running gameplay logic on tens of thousands of Fortnite islands ever since — which means it spent years in open beta in front of hundreds of millions of players before it ever reached you. Epic has also published a roadmap for gradually converging the UE5 and UEFN product lines into Unreal Engine 6, positioning Verse as an increasingly important gameplay programming tool along the way: in Epic’s words, it “transactionalizes C++” — a piece of logic either takes effect as a whole or is undone as a whole, as if it never happened (see the extra page) — with the goal of supporting massive persistent online experiences built by thousands of collaborating contributors. Per the official roadmap, Actors and Blueprints stay around in the early stages, Epic has promised migration tooling, and Verse represents the new direction in Epic’s plans.

Then there is its unusual pedigree: Verse is a functional logic language. It was conceived personally by Epic founder Tim Sweeney — by his own account, the language brewed in his head for roughly a decade. In December 2021, Simon Peyton Jones — the closest thing Haskell has to a founding father — joined Epic as an Engineering Fellow to work on the design, alongside Lennart Augustsson and a whole roster of functional-programming legends. An industrial language born for games, carrying top-shelf academic blood — that is a rarity in the entire history of programming languages, and it explains many of the “strange but wonderful” designs you will meet later.

2. Why It Is Worth Learning

Before we get hands-on, let’s answer the most practical question: why should I invest my time in Verse?

3. Your First Verse: Run It First, Then Take It Apart Line by Line

Below is a complete Verse device that compiles and runs as-is — the classic Hello program generated by the official Verse Device template. Its entire mission: shout “Hello, world!” at the world when the game experience starts, and solve a math problem live while it’s at it. Don’t rush to understand every word — hit “Run next step” and watch, replay-style, how the code executes line by line.

Graph translation (Blueprint view): if you built this code in Blueprints, it would be a Blueprint class with creative_device as its parent, containing an Event BeginPlay; drag the execution wire out of BeginPlay, hook up a Print String node (contents: Hello, world!), then a second Print String (whose contents use {2 + 2} to compute 4 on the spot). The stepper below lights up those “nodes” for you, one line at a time.

hello_world_device.verse
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }

# My first Verse device
hello_world_device := class(creative_device):

    OnBegin<override>()<suspends>:void =
        Print("Hello, world!")
        Print("2 + 2 = {2 + 2}")
Output Log

Hit “Run next step” to watch the code execute line by line.

See that? A handful of lines, and a “talking device” is complete. Now take it apart, one brick at a time:

You can now read a real piece of Verse code line by line — the exact spot where plenty of people stall out on “page one.”

4. Indentation Is the Code Block: 4 Spaces = One Squad

You may have noticed a detail: there are no curly braces anywhere marking off “which code belongs to whom” (the braces after using are module-path syntax, not a code block), and no semicolons at the ends of lines.there is not a single bracket marking off “which code belongs to whom,” and no closing punctuation at the ends of lines — you never used those in Blueprints anyway, so don’t go looking. (The braces after using are module-path syntax, not a code block.) Verse relies on indentation — every 4 spaces of extra indent to the right says “I answer to the level above.” Like a formation: whoever stands in the column behind the squad leader is on the squad.

indent_demo.verse
using { /Fortnite.com/Devices }
using { /UnrealEngine.com/Temporary/Diagnostics }

indent_demo := class(creative_device):

    OnBegin<override>()<suspends>:void =
        Print("I am indented under OnBegin, so I belong to OnBegin")
        Print("I line up with the line above, so we are the same squad")

Read the formation: OnBegin is indented 4 spaces, so it belongs to the class indent_demo; the two Print lines are indented another 4 spaces, so they both belong to OnBegin and will run one after the other at kickoff. Break the formation — miss a single space, or let a Tab sneak in — and the compiler throws an error, because it can no longer tell who that line answers to.

Three survival tips: ① always indent with 4 spaces, never mix Tabs and spaces; ② code at the same level must line up exactly; ③ in VS Code (Epic’s officially recommended Verse editor — the Verse extension installs alongside UEFN), pressing Tab converts to spaces automatically, so type away. Indentation is not decoration; it is the syntax itself.

5. Common Pitfalls: Reflexes You Bring from Other LanguagesWhere Blueprints and Verse Think Differently

If you have touched C++, JavaScript, or Python, a few reflexes will trip you up over and over in week one; if you are a pure beginner, congratulations — these traps simply don’t exist for you. Let’s nail them to the wall in advance:

You are coming over from wiring Blueprints, so strictly speaking you carry no bad habits from other text languages — but the points below are exactly where Blueprint intuition and Verse part ways. A quick look now saves a few faceplants later:

6. Level Challenge

Lesson 1’s boss fight is here (relax — it’s slime-tier). Answer correctly to earn a star ★; wrong answers cost no HP and you can retry forever.

What does Verse use to delimit code blocks (to say “these lines belong to whom”)?

In Verse, which symbol expresses “define hello_world_device as a class”?

The code builds successfully, but the log shows not a single line of output. What is the most likely reason?

Further Reading

Advanced · EXTRA

The Verse Calculus: A Mathematical Core for Functional Logic Programming

The paper Simon Peyton Jones, Tim Sweeney, and colleagues published at ICFP 2023 gives Verse a formal core at the level of the lambda calculus — the theoretical roots of odd designs like “failure replaces booleans” all live here.

Enter the extra →

Bonus · EXTRA

The Road to UE6: Why Epic Is Betting on Verse

How the official news post “The road to UE6” plans the merge of UE5 and UEFN, what “transactionalizing C++” actually means, and where Blueprints and Actors are headed — one page to answer “is learning Verse a waste of time?”

Enter the extra →

Bonus · EXTRA

Verse’s Ten-Year Gestation: From Sweeney’s Drafts to the Haskell Dream Team

A side story with a timeline: how Tim Sweeney’s decade-in-the-making language drafts waited for Simon Peyton Jones and the author of Haskell’s first compiler, and grew into a gameplay scripting language that carries real weight in Epic’s development ecosystem.

Enter the extra →