Skip to content
Verse Scripting

Verse Scripting for begyndere: din første UEFN Device

2026-03-059 min læsetid

Hvad er Verse?

Verse er Epic Games' programmeringssprog, designet specifikt til UEFN. Hvis du har brugt Python, vil Verse føles velkendt — det bruger indrykningsbaseret syntaks og læser næsten som engelsk. Men det låner også idéer fra funktionelle programmeringssprog som Haskell, hvilket gør det kraftfuldt til spilbelogik.

Enhver brugerdefineret adfærd i UEFN, der går ud over basale Creative devices, kræver Verse. Scoresystemer, brugerdefineret UI, loadout-managers, rundestyring, ranked progression — alt sammen Verse.

Opsætning af din første Verse Device

I UEFN, opret en ny Verse device:

  1. Åbn dit projekt i UEFN
  2. Gå til Verse-menuen → Create New Verse File
  3. Vælg Creative Device som skabelon
  4. Navngiv den my_first_device

UEFN genererer en boilerplate-fil, der ser sådan ud:

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

my_first_device := class(creative_device):

 OnBegin<override>()<suspends>:void=
 Print("Hello, Fortnite!")

Lad os gennemgå det.

Forståelse af det grundlæggende

`using`-statements — Disse importerer API'er. /Fortnite.com/Devices giver dig adgang til Creative devices. /Verse.org/Simulation giver kernesimuleringsfeatures. /UnrealEngine.com/Temporary/Diagnostics giver dig Print() til debugging.

Klassedefinitionmy_first_device := class(creative_device) opretter en ny device-klasse, der arver fra creative_device. Dette er din brugerdefinerede device, som du placerer i verdenen.

OnBegin — Denne funktion kører, når spillet starter. <override>-tagget betyder, at du erstatter forældreklassens OnBegin. <suspends>-tagget betyder, at denne funktion kan bruge asynkrone operationer (som Sleep()).

Opbygning af en Kill Counter

Lad os bygge noget nyttigt — en device, der sporer kills og viser dem. Først skal du referere til en UI-device i dit level:

using { /Fortnite.com/Devices }
using { /Fortnite.com/Characters }
using { /Verse.org/Simulation }

kill_counter := class(creative_device):

 @editable
 EndGameDevice : end_game_device = end_game_device{}

 var KillCounts : [agent]int = map{}

 OnBegin<override>()<suspends>:void=
 # Subscribe to elimination events
 GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerAdded)

 OnPlayerAdded(Player : player):void=
 if (FortCharacter := Player.GetFortCharacter[]):
 FortCharacter.EliminatedEvent().Subscribe(OnEliminated)

 OnEliminated(Result : elimination_result):void=
 if (Eliminator := Result.EliminatingCharacter):
 if (Player := player[Eliminator.GetAgent[]]):
 if (set KillCounts[Player] += 1) {}

Vigtige Verse-koncepter

Fejlbare udtryk — Verse bruger if til operationer, der kan fejle. Player.GetFortCharacter[] returnerer muligvis intet, hvis spilleren ikke har en karakter. []-klammerne indikerer et fejlbart kald, og at pakke det ind i if håndterer fejltilfældet elegant.

Mutabilitet — Variabler deklareret med var kan ændres. Uden var er værdier uforanderlige som standard. Dette forhindrer utilsigtede tilstandsmutationer.

Events og subscriptions — Verse bruger et event-drevet mønster. Du abonnerer på events (PlayerAddedEvent, EliminatedEvent) og angiver callback-funktioner. Sådan reagerer du på gameplay uden polling.

Maps og arrays[agent]int er en map-type (dictionary), der mapper agenter til heltal. map{} opretter en tom.

Almindelige mønstre

Her er mønstre, du vil bruge i næsten alle Verse devices:

Timer/forsinkelse:

Sleep(5.0) # Vent 5 sekunder

Loop:

loop:
 DoSomething()
 Sleep(1.0)

Spiller-iteration:

Players := GetPlayspace().GetPlayers()
for (Player : Players):
 # Gør noget med hver spiller

Næste skridt

Denne guide dækker det absolutte grundlæggende. For at gå dybere:

  • Læs Epic's officielle Verse-dokumentation
  • Studér open-source Verse-projekter på GitHub
  • Øv dig ved at genopbygge eksisterende Creative devices i Verse
  • Deltag i UEFN Discord-fællesskabet for hjælp

At bygge brugerdefinerede Verse devices er det, der adskiller professionelle UEFN developers fra hobbyister. Hvis du har brug for komplekse brugerdefinerede mekanikker til din map, vores team er specialiseret i Verse scripting — fra brugerdefinerede scoresystemer til komplette game mode-frameworks.

Tjek vores portfolio for at se Verse i aktion med over 4,8 milliarder spillede minutter.

K

Kaio

UEFN-mapudvikler hos Kaio Corporation

Professionel Fortnite UEFN-mapudvikler. 4,8B+ minutter spillet . Læs mere

Brug for et tilpasset map?

Kontakt os