Aller au contenu
Forma Roblox

Rechercher dans la formation

Module 02 · Leçon 2 sur 10

Installer un workflow pro : Rojo, Git, MCP et outils qualité

Tutoriel pas à pas, Windows et Mac, pour mettre le code de l’Obby des Nuages en fichiers avec Rojo, le versionner avec Git, brancher Studio à Claude Code (MCP) et installer selene, StyLua et luau-lsp.

  • ⏱️ 1 h 30
  • 📝 Quiz de 6 questions
  • 🔄 Vérifié le 24 octobre 2026
Sur cette page

🎯 Dans cette leçon, tu vas apprendre à…

  • Ouvrir un terminal, y coller une commande et lire le résultat, sous Windows comme sous Mac
  • Transformer l’Obby des Nuages en projet Rojo versionné avec Git, synchronisé avec Studio
  • Brancher le serveur MCP de Roblox Studio à Claude Code et en connaître les risques
  • Installer luau-lsp, selene et StyLua, et savoir ce que chacun détecte

Jusqu’ici, ton code vivait dans Studio. Pour piloter une IA de code comme un pro, on va le mettre en fichiers sur ton ordinateur, dans un dossier où tout est rangé, versionné et vérifié automatiquement. C’est la leçon la plus « technique » du module, mais tu n’as besoin d’aucune connaissance préalable : chaque commande est donnée, avec le résultat attendu et quoi faire si ça échoue. Prévois une bonne heure et avance étape par étape.

Par où commencer ? Fais les étapes 0 à 6 dans l’ordre : elles ne demandent pas Claude Code. L’étape 7 (brancher Studio à Claude Code) se fait après la leçon 3, où tu installes Claude Code. Les deux sections de la fin (« Migrer un jeu existant » et « Script Sync ») sont facultatives si ton jeu ne contient encore aucun script, ce qui est le cas si tu as suivi le module 1.

Ce que tu vas installer

Outil À quoi il sert
VS Code L’éditeur de code où tu liras les fichiers, avec un terminal intégré
Git L’historique de ton projet : chaque étape enregistrée, retour arrière possible
Rokit L’installateur des outils Roblox, avec la même version pour tout le projet
Rojo Le pont entre tes fichiers et Studio : il synchronise le code dans ton place
selene et StyLua Le correcteur (il repère les erreurs probables) et le formateur (il met le code en forme)
luau-lsp L’extension VS Code qui comprend Luau et l’API Roblox
Serveur MCP de Studio Le branchement qui laisse Claude Code lire, modifier et tester ton place

Tout est gratuit. Seul Claude Code demande un abonnement (leçon 1) : son installation est dans la leçon 3.

Étape 0 : le terminal sans peur

Un terminal est une fenêtre où l’on tape des commandes au lieu de cliquer. Tu y tapes une ligne, tu appuies sur Entrée, l’ordinateur répond par du texte.

Ouvrir un terminal

  • Windows : ouvre le menu Démarrer, tape Terminal et ouvre Terminal (ou Windows PowerShell). La ligne commence par PS C:\Users\TonNom> : tu es dans PowerShell.
  • Mac : appuie sur Cmd+Espace, tape Terminal et valide. La ligne se termine par % : c’est le terminal de macOS (zsh).

Dans ce tutoriel, tu utiliseras surtout le terminal intégré de VS Code (étape 1), qui est le même terminal, déjà placé dans le bon dossier.

Les cinq gestes à connaître

  1. Le dossier de travail : chaque terminal « est » dans un dossier. Tape pwd puis Entrée pour l’afficher (sous Windows, PowerShell écrit Path, une ligne de tirets, puis le chemin du dossier ; sur Mac, seulement le chemin). Les commandes de Rojo, Git ou Rokit agissent sur ce dossier : il doit être celui de ton projet.
  2. Copier une commande depuis cette page (sélectionne-la ou utilise le bouton de copie du bloc), puis colle-la dans le terminal avec Ctrl+V (Windows) ou Cmd+V (Mac). Appuie sur Entrée.
  3. Lire la réponse : compare-la au « résultat attendu » donné ici. Les numéros de version peuvent être plus récents, c’est normal.
  4. Arrêter une commande qui tourne en continu (comme rojo serve) : Ctrl+C, sur Windows comme sur Mac.
  5. Rappeler une commande : flèche Haut.

Étape 1 : VS Code et le dossier du projet

  1. Télécharge VS Code sur code.visualstudio.com et installe-le avec les options par défaut.
  2. Lance VS Code, puis File › Open Folder… (les menus sont cités en anglais, la langue par défaut de VS Code ; en français : Fichier › Ouvrir le dossier…).
  3. Dans la fenêtre qui s’ouvre, va dans ton dossier Documents, crée un nouveau dossier (bouton Nouveau dossier) nommé ObbyDesNuages (sans espace ni accent) et ouvre-le. Si VS Code demande si tu fais confiance aux auteurs de ce dossier, réponds oui : c’est le tien.
  4. Ouvre le terminal intégré : menu Terminal › New Terminal (raccourci Ctrl+` ; sur un clavier français, le raccourci peut être différent : passe par le menu). Il apparaît en bas de la fenêtre, déjà placé dans ObbyDesNuages.
  5. Tape pwd : le chemin affiché doit se terminer par ObbyDesNuages.

Ce dossier sera la racine de ton projet : toutes les commandes qui suivent se tapent ici.

Étape 2 : Git, l’historique de ton projet

Git enregistre des « photos » de ton projet, appelées commits. Si l’IA casse quelque chose, tu reviens à la photo d’avant.

Installer Git

  • Windows : télécharge Git for Windows sur la page officielle (git-scm.com, rubrique Install, Windows), lance l’installateur et garde toutes les options par défaut. Claude Code s’en sert aussi sous Windows.
  • Mac : dans le terminal, tape la commande ci-dessous et accepte l’installation des « outils de ligne de commande » proposée par macOS. Si macOS répond que ces outils sont déjà installés, tant mieux : passe à la suite.
xcode-select --install

Ferme puis rouvre VS Code, et vérifie dans le terminal :

git --version

Résultat attendu : une ligne comme git version 2.56.0.windows.3 (Windows, version d’octobre 2026) ou git version 2.xx.x (Mac).

Te présenter à Git (une seule fois par ordinateur). Remplace TonPseudo et l’adresse par les tiens, en gardant les guillemets (Git ne vérifie pas l’adresse : si tu ne comptes pas publier ton projet en ligne, l’exemple fonctionne aussi) :

git config --global user.name "TonPseudo"
git config --global user.email "ton.adresse@example.com"

Ces deux informations sont écrites dans chaque commit. Si tu publies un jour ton projet en ligne, elles seront visibles : un pseudo suffit, pas besoin de ton nom complet. Tape git config --global user.name pour vérifier : ton pseudo s’affiche.

Tu n’as pas encore besoin de git init : Rojo va créer le dépôt Git pour toi à l’étape 4.

Étape 3 : Rokit et les trois outils du projet

Rokit installe les outils de l’écosystème Roblox et note leur version dans un fichier rokit.toml. Ainsi, toute personne qui récupère ton projet (ou Claude Code) utilise exactement les mêmes versions.

Installer Rokit (une fois par ordinateur). Commande officielle du dépôt rojo-rbx/rokit :

Windows, dans PowerShell (le terminal de VS Code par défaut) :

Invoke-RestMethod https://raw.githubusercontent.com/rojo-rbx/rokit/main/scripts/install.ps1 | Invoke-Expression

Mac :

curl -sSf https://raw.githubusercontent.com/rojo-rbx/rokit/main/scripts/install.sh | bash

Le script affiche trois étapes ([1 / 3] Looking for latest rokit release, [2 / 3] Downloading…, [3 / 3] Running rokit installation), puis Rokit has been installed successfully! et une demande de redémarrage. Sous Windows, ce message dit Please restart your computer : en pratique, fermer complètement VS Code suffit (le code de Rokit le précise lui-même) ; redémarre l’ordinateur seulement si la commande ci-dessous reste introuvable. Sur Mac, il demande de redémarrer le terminal.

Ferme complètement VS Code, rouvre-le (ton dossier se rouvre tout seul), puis :

rokit --version

Résultat attendu : rokit 1.2.0 (ou plus récent).

Ajouter les outils au projet. Dans le terminal de VS Code, à la racine de ObbyDesNuages, tape ces quatre commandes, une par une :

rokit init
rokit add rojo-rbx/rojo
rokit add Kampfkarren/selene
rokit add JohnnyMorganz/StyLua stylua
  • rokit init crée le fichier rokit.toml (message Initialized new Rokit project successfully!).
  • Pour chaque outil, Rokit demande Trust and install … ? : c’est une sécurité, car il va télécharger un programme. Réponds y uniquement pour ces trois outils officiels. Il confirme par Added version … of tool ….
  • Le dernier mot de la quatrième ligne (stylua) est le nom de la commande à taper ensuite.

Vérifie avec rokit list. Résultat attendu (versions d’octobre 2026) :

🛠️  Found tools:

./rokit.toml
• rojo   → rojo-rbx/rojo        @ 7.7.1
• selene → Kampfkarren/selene   @ 0.32.0
• stylua → JohnnyMorganz/StyLua @ 2.6.0

Étape 4 : Rojo, le pont entre tes fichiers et Studio

Créer le projet

Toujours à la racine du dossier :

rojo init

Résultat attendu :

Creating new Place project 'ObbyDesNuages'
Initialized empty Git repository in …/ObbyDesNuages/.git/
Created project successfully.

Rojo a créé un projet d’exemple et lancé git init : ton dossier est maintenant un dépôt Git (dossier caché .git). Si tu ne vois pas la ligne Initialized empty Git repository, tape git init toi-même.

L’adapter à l’Obby des Nuages

Le modèle de Rojo contient des dossiers d’exemple et ajoute même une Baseplate dans Workspace : ce n’est pas ce qu’on veut. On le remplace par la structure de l’Obby, la même que celle du corrigé de la formation.

  1. Supprime les dossiers d’exemple et crée ceux de l’Obby.

Windows (PowerShell) :

Remove-Item -Recurse src/shared, src/server, src/client
mkdir src/ServerScriptService, src/ReplicatedStorage/Modules, src/StarterPlayer/StarterPlayerScripts, src/StarterPlayer/StarterCharacterScripts, src/StarterGui

Mac :

rm -r src/shared src/server src/client
mkdir -p src/ServerScriptService src/ReplicatedStorage/Modules src/StarterPlayer/StarterPlayerScripts src/StarterPlayer/StarterCharacterScripts src/StarterGui

Sous Windows, PowerShell affiche ensuite la liste des dossiers créés (colonnes Mode, LastWriteTime, Name) : c’est normal. Sur Mac, mkdir -p n’affiche rien quand tout va bien. Dans l’explorateur de VS Code, src contient maintenant ReplicatedStorage, ServerScriptService, StarterGui et StarterPlayer.

  1. Dans VS Code, ouvre default.project.json (clic sur son nom, dans l’explorateur de fichiers à gauche), efface tout son contenu (Ctrl+A puis Suppr, ou Cmd+A puis la touche d’effacement sur Mac) et remplace-le par celui-ci, puis enregistre (Ctrl+S ou Cmd+S) :
{
  "name": "ObbyDesNuages",
  "tree": {
    "$className": "DataModel",
    "ReplicatedStorage": {
      "$className": "ReplicatedStorage",
      "Modules": {
        "$path": "src/ReplicatedStorage/Modules"
      },
      "Remotes": {
        "$className": "Folder",
        "AcheterObjet": { "$className": "RemoteEvent" },
        "EquiperObjet": { "$className": "RemoteEvent" },
        "Notification": { "$className": "RemoteEvent" },
        "Victoire": { "$className": "RemoteEvent" },
        "DemanderPasserEtape": { "$className": "RemoteEvent" },
        "AnnonceRedemarrage": { "$className": "RemoteEvent" }
      }
    },
    "ServerScriptService": {
      "$className": "ServerScriptService",
      "$path": "src/ServerScriptService"
    },
    "StarterGui": {
      "$className": "StarterGui",
      "$path": "src/StarterGui"
    },
    "StarterPlayer": {
      "$className": "StarterPlayer",
      "StarterPlayerScripts": {
        "$className": "StarterPlayerScripts",
        "$path": "src/StarterPlayer/StarterPlayerScripts"
      },
      "StarterCharacterScripts": {
        "$className": "StarterCharacterScripts",
        "$path": "src/StarterPlayer/StarterCharacterScripts"
      }
    }
  }
}

Comment le lire :

  • tree décrit l’arbre de Studio (l’Explorer). Chaque clé est le nom d’une instance.
  • $path relie une instance à un dossier du disque : tout ce que contient src/ServerScriptService apparaît dans ServerScriptService.
  • $className crée une instance d’une classe donnée sans fichier : c’est ainsi que le Folder Remotes et ses six RemoteEvents sont déclarés directement ici. Pour en ajouter un, une ligne suffit (et Claude Code saura le faire).
  • Workspace et Lighting n’apparaissent pas : Rojo n’y touche donc pas. Ton niveau construit à la main reste dans ton place.

Les suffixes de fichiers

Le suffixe du nom de fichier décide du type de script créé dans Studio :

Fichier sur le disque Dans Studio (avec Rojo)
Pieces.server.luau Script (serveur) nommé Pieces
MessagesProgression.client.luau LocalScript nommé MessagesProgression
Config.luau ModuleScript nommé Config
un dossier Boutique/ un Folder Boutique

L’emplacement dans Studio est celui du dossier : src/ServerScriptService/Pieces.server.luau devient le Script Pieces dans ServerScriptService.

Installer le plugin Rojo dans Studio

Rojo a deux moitiés : le programme que tu viens d’installer, et un plugin dans Studio. La méthode officielle la plus simple :

rojo plugin install

Puis ferme et rouvre Studio. Le plugin apparaît dans l’onglet Plugins sous le nom Rojo. Autre méthode officielle : installer le plugin « Rojo » depuis sa page sur le Creator Store (lien dans les sources). Rojo a un plugin par version majeure : garde le plugin et le programme en version 7.

Avant la première connexion : protège ton niveau

Quand il se connecte, Rojo remplace le contenu des emplacements qu’il gère (ServerScriptService, StarterGui, StarterPlayerScripts, StarterCharacterScripts et ReplicatedStorage.Modules) par celui de tes fichiers. Un script créé à la main à ces endroits dans Studio sera supprimé. Workspace, lui, n’est pas touché.

Lancer la synchronisation

  1. Dans le terminal de VS Code :
rojo serve

Résultat attendu (le terminal reste « occupé », c’est normal) :

Rojo server listening:
  Address: localhost
  Port:    34872

Visit http://localhost:34872/ in your browser for more information.
  1. Dans Studio, ouvre ton place (ou sa copie), onglet Plugins, bouton Rojo, puis Connect.
  2. Une fenêtre « Sync changes for project ‘ObbyDesNuages’ » liste ce que Rojo va changer. Lis-la : si elle annonce la suppression de scripts que tu veux garder, clique sur Abort et récupère-les d’abord (section « Migrer un jeu existant » plus bas). Sinon, clique sur Accept.
  3. Vérifie dans l’Explorer : ReplicatedStorage contient maintenant Modules et Remotes avec ses six RemoteEvents.

Premier test. Dans VS Code, crée le fichier src/ServerScriptService/Bonjour.server.luau (clic droit sur le dossier › New File) avec ce contenu, puis enregistre :

-- Script serveur de test : il prouve que Rojo synchronise bien les fichiers
print("Rojo fonctionne : bonjour depuis le serveur de l'Obby des Nuages !")

Quelques instants plus tard, un Script Bonjour apparaît dans ServerScriptService. Lance un test (mode Test, bouton Play, module 1, leçon 4) : le message s’affiche dans l’Output. Arrête le test, change le texte dans VS Code, enregistre : le script change aussi dans Studio. Enfin, supprime le fichier dans VS Code : le script disparaît de Studio. Tu viens de voir le principe : les fichiers sont la source de vérité.

Pour arrêter : bouton Disconnect dans le plugin, puis Ctrl+C dans le terminal.

Ce que Rojo gère, et ce qu’il ne gère pas

Rojo s’en occupe (depuis tes fichiers) Reste dans ton place (à sauvegarder toi-même)
Scripts, LocalScripts, ModuleScripts Le niveau dans Workspace : plateformes, checkpoints, pièces, kill bricks
Le Folder Remotes et ses RemoteEvents Lighting, le ciel, le terrain
L’interface de StarterGui, quand elle est décrite en fichiers Les réglages de l’expérience (Game Settings)

Tu peux aussi fabriquer un fichier de lieu avec rojo build -o ObbyDesNuages-test.rbxlx. Attention : ce fichier ne contient que ce que décrivent tes fichiers, donc pas ton niveau. Il sert à vérifier le code, pas à remplacer ton place.

Étape 5 : les outils qualité

luau-lsp dans VS Code

  1. Dans VS Code, ouvre le panneau Extensions (Ctrl+Shift+X, ou Cmd+Shift+X sur Mac).
  2. Cherche Luau Language Server (identifiant JohnnyMorganz.luau-lsp) et installe-le.
  3. C’est tout : l’extension charge par défaut les définitions de l’API Roblox (le « mode Roblox »). Elle repère ton default.project.json et génère seule un fichier sourcemap.json avec Rojo, pour savoir quel fichier correspond à quelle instance (utile pour les require, qui relient les scripts entre eux : tu les verras au module 3). Ce fichier est déjà exclu de Git par le .gitignore de Rojo.

Tu peux aussi installer les extensions selene (Kampfkarren.selene-vscode) et StyLua (JohnnyMorganz.stylua) pour voir leurs remarques directement dans l’éditeur.

selene et StyLua : trois fichiers de configuration

À la racine du projet, crée trois fichiers, les mêmes que ceux du corrigé de la formation : fais un clic droit dans la zone vide de l’explorateur de VS Code, sous la liste des fichiers (pas sur le dossier src, sinon le fichier serait créé dedans), puis New File, et tape le nom exact du fichier.

selene.toml : il dit à selene quelle « bibliothèque standard » utiliser, c’est-à-dire la liste des fonctions qui existent (sans elle, game ou Instance lui seraient inconnus).

std = "luau_recent"

luau_recent.yml : la bibliothèque luau_recent reprend celle de Roblox fournie par selene (base: roblox) et lui ajoute math.isfinite, une fonction récente de Luau que selene 0.32 ne connaît pas encore. Sans ce complément, selene signalerait une erreur à tort dès que ton code l’utilise (le module 4 s’en sert pour valider les nombres envoyés par le client).

# Complète la bibliothèque standard « roblox » de selene avec des fonctions Luau récentes
# qu'elle ne connaît pas encore.
base: roblox
globals:
  math.isfinite:
    args:
      - type: number
    must_use: true

stylua.toml : il force StyLua à lire le code comme du Luau.

syntax = "Luau"

Par défaut, StyLua indente avec des tabulations (comme l’éditeur de Studio), vise des lignes de 120 caractères au maximum et écrit des fins de ligne « Unix » (LF), même sous Windows : on en reparle à l’étape 6.

Les commandes de vérification

selene src
stylua --check src
  • selene src analyse tout le dossier src. Résultat attendu quand tout va bien : 0 errors, 0 warnings, 0 parse errors.
  • stylua --check src vérifie la mise en forme sans rien modifier. S’il n’affiche rien, tout est bien formaté. Sinon, il montre les différences.
  • stylua src reformate les fichiers (sans changer ce que fait le code).

Ces deux commandes seront écrites dans ton CLAUDE.md (leçon 3) : Claude Code les lancera lui-même après chaque modification.

Ce que chaque outil attrape

Voici un script volontairement imparfait, et ce que chaque outil en a dit lors de nos tests :

-- Script serveur volontairement imparfait, pour tester les outils qualité
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

Players.PlayerAdded:Connect(function(player)
	wait(2)
	print("Bienvenue " ..player.Name)
end)
Outil Ce qu’il a signalé
luau-lsp wait est déprécié, utiliser task.wait ; ReplicatedStorage n’est jamais utilisé
selene ReplicatedStorage is assigned a value, but never used
StyLua L’espace manquant dans " ..player.Name" (il proposera " .. player.Name")

Aucun de ces outils ne vérifie que ton jeu fait ce que tu veux, ni qu’un RemoteEvent est bien protégé : ça, c’est la relecture et le test (leçon 6). Et un outil peut se tromper : sans le fichier luau_recent.yml, selene 0.32 signale math.isfinite comme une erreur, alors que cette fonction est valide. Si un avertissement te semble faux, vérifie sur la documentation officielle avant de « corriger ».

Étape 6 : ton premier commit

Ouvre le fichier .gitignore créé par Rojo : il liste ce que Git doit ignorer. Remplace son contenu par celui-ci :

# Fichiers de lieu : ils ne vont pas dans Git (sauvegarde-les avec Save to Roblox et une copie datée)
*.rbxl
*.rbxlx

# Fichiers de verrou de Studio
*.rbxl.lock
*.rbxlx.lock

# Généré automatiquement par luau-lsp et Rojo
sourcemap.json

Crée aussi, à la racine, un fichier .gitattributes (avec le point au début) contenant ces deux lignes :

# Fins de ligne LF partout (comme StyLua), même sous Windows
* text=auto eol=lf

Pourquoi ? Windows et Mac ne terminent pas les lignes de la même façon (CRLF sous Windows, LF sur Mac). StyLua attend des LF, et Git for Windows convertit par défaut les fichiers en CRLF quand il les remet sur ton disque (git restore, nouveau clone). Sans ce fichier, stylua --check src signalerait des « différences » sur des lignes en apparence identiques. Sur Mac, il ne change rien mais ne gêne pas.

Puis, dans le terminal :

git status
git add .
git commit -m "Projet Rojo de l'Obby des Nuages : structure, Rokit, selene, StyLua"
  • git status liste les fichiers nouveaux ou modifiés.
  • git add . les prépare pour la photo (le point veut dire « tout le dossier »).
  • git commit -m "…" prend la photo, avec un message qui dit ce qui a changé. Résultat attendu : une ligne comme [master (root-commit) 7882bbd] Projet Rojo… (le nom de branche peut aussi être main), puis le nombre de fichiers.

Sous Windows, une ligne warning: in the working copy of '…', CRLF will be replaced by LF… peut apparaître : c’est le fichier .gitattributes qui fait son travail, c’est sans gravité. Si Git répond Author identity unknown, refais les deux commandes git config de l’étape 2, puis relance git commit. Tape git log --oneline pour voir ton historique.

Étape 7 : brancher le serveur MCP de Studio à Claude Code

Cette étape demande Claude Code (réservé aux 18 ans et plus, voir la leçon 1). S’il n’est pas encore installé, fais d’abord la leçon 3, puis reviens ici.

Le serveur MCP est intégré à Roblox Studio depuis mars 2026 et tourne sur ton ordinateur. L’ancien dépôt Roblox/studio-rust-mcp-server, cité par de vieux tutoriels, est archivé depuis avril 2026 : ne l’installe pas.

1. Activer le serveur dans Studio

  1. Ouvre ton place, puis l’Assistant.
  2. Clique sur … › Manage MCP Servers.
  3. Active Enable Studio as MCP server. Un indicateur vert affiche le nombre de clients connectés.

Selon la version de Studio, le libellé peut légèrement changer : cherche la section MCP Servers dans les réglages de l’Assistant.

2. Brancher Claude Code : le Quick connect (méthode officielle)

Dans les réglages de l’Assistant, section MCP Servers, ouvre la liste Quick connect : elle montre les clients installés sur ton ordinateur. Active Claude Code. Si Claude Code n’apparaît pas, installe-le, puis redémarre Studio. Ensuite, redémarre Claude Code pour qu’il charge le serveur (tape /exit dans Claude Code, puis relance claude dans le terminal du projet).

2 bis. Ou bien : la configuration manuelle

Si le Quick connect ne fonctionne pas, ajoute toi-même le serveur à Claude Code. La documentation de Roblox donne la commande qui lance le serveur ; la commande claude mcp add ci-dessous en est déduite (Roblox ne la publie pas). Nous l’avons testée sous Windows (Claude Code 2.1.310) ; la version Mac utilise le chemin officiel de Roblox, sans test de notre part. Ne fais pas les deux méthodes à la fois.

Windows (PowerShell, tape la ligne telle quelle, %LOCALAPPDATA% compris) :

claude mcp add --transport stdio --scope user Roblox_Studio -- cmd.exe /c %LOCALAPPDATA%\Roblox\mcp.bat

Mac :

claude mcp add --transport stdio --scope user Roblox_Studio -- /Applications/RobloxStudio.app/Contents/MacOS/StudioMCP

--scope user rend le serveur disponible dans tous tes projets ; tout ce qui suit -- est la commande qui lance le serveur. Pour l’enlever : claude mcp remove Roblox_Studio -s user.

3. Vérifier

Dans le terminal, avec Studio ouvert :

claude mcp list

Résultat attendu (sous Windows) : une ligne Roblox_Studio: cmd.exe /c %LOCALAPPDATA%\Roblox\mcp.bat - ✔ Connected. Dans une session Claude Code, la commande /mcp affiche aussi l’état des serveurs. En cas de problème, la documentation de Roblox conseille de redémarrer Studio et Claude Code, puis de vérifier que le chemin existe. Après une mise à jour de Studio, redémarre une fois Claude Code pour qu’il voie les nouveaux outils.

Ce que l’IA peut alors faire dans Studio

La documentation de Roblox liste les outils du serveur. Les principaux :

Lire (sans rien changer) Agir sur ton place
script_read, script_search, script_grep : lire et chercher dans les scripts multi_edit : modifier ou créer un script
search_game_tree, inspect_instance : explorer l’Explorer et les propriétés execute_luau : exécuter du code Luau dans Studio
get_console_output : lire l’Output start_stop_play : lancer ou arrêter un test
screen_capture : capturer la vue insert_asset, generate_mesh, generate_material : insérer ou générer des objets
get_studio_state, list_roblox_studios : état de Studio character_navigation, user_keyboard_input, user_mouse_input : jouer à ta place pendant un test

Avec Rojo, les scripts se modifient dans les fichiers : demande à Claude Code d’utiliser le MCP surtout pour lire le place, lancer un test et lire l’Output, pas pour éditer des scripts que Rojo écraserait ensuite.

Les précautions

Exemple de règles à placer dans .claude/settings.json, à la racine du projet (crée le dossier .claude, puis le fichier settings.json dedans, comme en leçon 3) : Claude Code demandera ton accord avant d’exécuter du Luau, de modifier un script ou d’insérer un asset par le MCP. Le préfixe mcp__Roblox_Studio__ reprend le nom du serveur : vérifie avec claude mcp list qu’il s’appelle bien Roblox_Studio chez toi, sinon adapte les trois règles.

{
  "permissions": {
    "ask": [
      "mcp__Roblox_Studio__execute_luau",
      "mcp__Roblox_Studio__multi_edit",
      "mcp__Roblox_Studio__insert_asset"
    ]
  }
}

Migrer un jeu existant vers Rojo

Tu as déjà un jeu avec des scripts créés dans Studio ? Deux méthodes, toujours sur une copie du place.

Méthode 1, à la main (la plus sûre). Pour chaque script, crée le fichier correspondant dans src (même dossier, bon suffixe, même nom), colle le code, enregistre. Ensuite seulement, connecte Rojo.

Méthode 2, rojo syncback (Rojo 7.7 et plus). Rojo lit un fichier de lieu et écrit les fichiers à ta place, en suivant ton default.project.json. Enregistre une copie du place avec Save to File As… (par exemple AncienJeu.rbxl à côté du dossier), puis commence toujours par une simulation :

rojo syncback --input ../AncienJeu.rbxl --dry-run --list

Rojo affiche les fichiers qu’il écrirait (Writing src/ServerScriptService/…) sans rien toucher. Si la liste te convient, relance sans --dry-run --list, puis vérifie le résultat avec git status avant de committer. Lors de nos tests, une interface faite à la main dans StarterGui a été écrite sous forme d’un fichier .rbxm (format binaire de Roblox), illisible dans VS Code : c’est normal.

Et Script Sync, la solution intégrée à Studio ?

Depuis juin 2026, Studio propose en version finale Script Sync : clic droit sur un dossier de l’Explorer › Sync to…, et ses scripts sont synchronisés avec des fichiers, dans les deux sens (certaines pages de Roblox parlent encore d’une bêta à activer dans File › Beta Features : si l’option Sync to… n’apparaît pas, regarde là). C’est plus simple à installer que Rojo, et Roblox le présente dans son guide « Build with a coding harness » avec le serveur MCP et Git. Mais :

  • il ne gère que les Scripts, LocalScripts, ModuleScripts et Folders (pas les RemoteEvents ni l’interface) ;
  • les suffixes ne veulent pas dire la même chose : avec Script Sync, .client.luau donne un Script en RunContext Client, et il faut .local.luau pour un LocalScript. Mélanger Script Sync et Rojo sur le même projet mène tout droit à des scripts du mauvais type ;
  • Roblox lui-même conseille un outil comme Rojo pour versionner tout le projet et faire des fichiers la source de vérité.

Décision de la formation : nous gardons Rojo, parce que le projet est entièrement décrit en fichiers (y compris les Remotes), et parce que tes fichiers restent compatibles avec le corrigé projet-reference. Script Sync reste une alternative honnête si tu préfères rester au plus près de Studio, mais choisis l’un ou l’autre.

Ton poste est prêt ?

Ce qu’il faut retenir

  • Le terminal se pilote avec cinq gestes : vérifier le dossier (pwd), coller, Entrée, lire la réponse, Ctrl+C pour arrêter.
  • Rokit installe Rojo, selene et StyLua dans des versions fixées par rokit.toml ; Git garde l’historique, un commit par étape.
  • Rojo synchronise les fichiers de src vers Studio selon default.project.json ; .server.luau = Script, .client.luau = LocalScript, .luau = ModuleScript. Le niveau de Workspace reste dans ton place : sauvegarde-le.
  • luau-lsp, selene src et stylua --check src attrapent des erreurs différentes ; aucun ne remplace le test.
  • Le serveur MCP intégré à Studio se branche à Claude Code par le Quick connect (ou claude mcp add) ; il modifie ton place pour de vrai : sauvegarde et garde la main.

Sources et pour aller plus loin

Quiz : vérifie tes acquis

6 questions · réussite à partir de 70 % · valide chaque réponse pour voir l’explication

  1. Question 1QCMTu tapes rojo serve et tu obtiens : « Could not start the Rojo server on 127.0.0.1:34872. The address may already be in use or reserved. » Que se passe-t-il ?
  2. Question 2QCMAvec Rojo et le default.project.json de l’Obby, que devient le fichier src/StarterPlayer/StarterPlayerScripts/MessagesProgression.client.luau dans Studio ?
  3. Question 3Vrai ou fauxUne fois Rojo connecté, les plateformes et checkpoints que tu as construits à la main dans Workspace sont enregistrés dans les fichiers du dossier src.
  4. Question 4QCMAprès avoir récupéré ton projet sur un autre ordinateur, rojo serve affiche : « Rojo project referred to a file using $path that could not be turned into a Roblox Instance… File $path: src/ReplicatedStorage/Modules ». Quelle est la cause la plus probable ?
  5. Question 5QCMDans VS Code, quel outil souligne wait(2) en indiquant qu’il est déprécié et qu’il faut utiliser task.wait ?
  6. Question 6Améliore ce promptLe serveur MCP de Studio est branché. Tu veux que Claude Code vérifie tes checkpoints. Quelle version du prompt est la plus précise et la plus sûre ?
    Le prompt de départ
    regarde mon jeu dans studio et corrige ce qui va pas

    Choisis la meilleure version de ce prompt.