Skip to content
Verse Scripting

Guide du débutant en scripting Verse : votre premier dispositif UEFN

2026-03-059 min read

Qu'est-ce que Verse ?

Verse est le langage de programmation d'Epic Games conçu spécifiquement pour UEFN. Si vous avez utilisé Python, Verse vous semblera familier — il utilise une syntaxe basée sur l'indentation et se lit presque comme de l'anglais. Mais il emprunte également des concepts de langages de programmation fonctionnelle comme Haskell, ce qui le rend puissant pour la logique de jeu.

Tout comportement personnalisé dans UEFN qui va au-delà des dispositifs Creative de base nécessite Verse. Systèmes de score, interface utilisateur personnalisée, gestionnaires de loadout, gestion des manches, progression classée — tout passe par Verse.

Créer votre premier dispositif Verse

Dans UEFN, créez un nouveau dispositif Verse :

  1. Ouvrez votre projet dans UEFN
  2. Allez dans le menu Verse puis Create New Verse File
  3. Choisissez Creative Device comme modèle
  4. Nommez-le my_first_device

UEFN génère un fichier modèle qui ressemble à ceci :

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

# Mon premier dispositif Verse
my_first_device := class(creative_device):

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

Décortiquons ce code.

Comprendre les bases

Instructions `using` — Elles importent des API. /Fortnite.com/Devices donne accès aux dispositifs Creative. /Verse.org/Simulation fournit les fonctionnalités de simulation de base. /UnrealEngine.com/Temporary/Diagnostics donne accès à Print() pour le débogage.

Définition de classemy_first_device := class(creative_device) crée une nouvelle classe de dispositif qui hérite de creative_device. C'est votre dispositif personnalisé que vous placerez dans le monde.

OnBegin — Cette fonction s'exécute au démarrage de la partie. Le tag <override> signifie que vous remplacez le OnBegin de la classe parente. Le tag <suspends> indique que cette fonction peut utiliser des opérations asynchrones (comme Sleep()).

Construire un compteur d'éliminations

Construisons quelque chose d'utile — un dispositif qui comptabilise les éliminations et les affiche. D'abord, vous devez référencer un dispositif d'interface dans votre niveau :

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

# Compteur d'éliminations
kill_counter := class(creative_device):

 @editable
 EndGameDevice : end_game_device = end_game_device{}

 var KillCounts : [agent]int = map{}

 OnBegin<override>()<suspends>:void=
 # S'abonner aux événements d'élimination
 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) {}

Concepts clés de Verse

Expressions faillibles — Verse utilise if pour les opérations qui peuvent échouer. Player.GetFortCharacter[] peut ne rien retourner si le joueur n'a pas de personnage. Les crochets [] indiquent un appel faillible, et l'encapsuler dans un if gère élégamment le cas d'échec.

Mutabilité — Les variables déclarées avec var peuvent être modifiées. Sans var, les valeurs sont immuables par défaut. Cela empêche les mutations d'état accidentelles.

Événements et abonnements — Verse utilise un modèle événementiel. Vous vous abonnez à des événements (PlayerAddedEvent, EliminatedEvent) et fournissez des fonctions de rappel (callbacks). C'est ainsi que vous réagissez au gameplay sans faire de polling.

Maps et tableaux[agent]int est un type map (dictionnaire) associant des agents à des entiers. map{} en crée un vide.

Motifs courants

Voici des motifs que vous utiliserez dans presque tous vos dispositifs Verse :

Minuterie/délai :

Sleep(5.0) # Attendre 5 secondes

Boucle :

loop:
 DoSomething()
 Sleep(1.0)

Itération sur les joueurs :

Players := GetPlayspace().GetPlayers()
for (Player : Players):
 # Faire quelque chose avec chaque joueur

Prochaines étapes

Ce guide couvre les bases absolues. Pour approfondir :

  • Consultez la documentation officielle Verse d'Epic
  • Étudiez des projets Verse open source sur GitHub
  • Entraînez-vous en recréant des dispositifs Creative existants en Verse
  • Rejoignez la communauté Discord UEFN pour obtenir de l'aide

La création de dispositifs Verse personnalisés est ce qui distingue les développeurs UEFN professionnels des amateurs. Si vous avez besoin de mécaniques personnalisées complexes pour votre map, notre équipe est spécialisée en scripting Verse — des systèmes de score sur mesure aux frameworks complets de modes de jeu.

Découvrez notre portfolio pour voir Verse en action totalisant plus de 4,8 milliards de minutes jouées.

K

Kaio

Développeur de maps UEFN chez Kaio Corporation

Développeur professionnel de maps Fortnite UEFN. Plus de 4,8 milliards de minutes jouées. En savoir plus

Besoin d'une map personnalisée ?

Nous contacter