Module 01 · Leçon 3 sur 5
Organiser son jeu : services, Models et Folders
Découvre le rôle des principaux services de l’Explorer, range ton projet avec des Folders et des Models, et nomme tes objets pour que tes futurs scripts les trouvent.
- ⏱️ 25 min
- 📝 Quiz de 7 questions
- 🔄 Vérifié le 24 octobre 2026
Sur cette page
🎯 Dans cette leçon, tu vas apprendre à…
- Connaître le rôle des principaux services de l’Explorer
- Ranger un projet avec des Folders et des Models
- Nommer tes objets de façon claire et cohérente
- Comprendre la hiérarchie parent/enfant
Ton niveau commence à se remplir de Parts. Sans rangement, tu auras vite des dizaines d’objets nommés « Part » dans le désordre, et tes futurs scripts ne sauront pas les retrouver. Cette leçon t’apprend comment Roblox organise un jeu, à quoi sert chaque grand service, et comment ranger l’Obby des Nuages dès maintenant pour ne pas le regretter au module 3.
Le data model : l’arbre de ton jeu
Tout ce qui compose un place (Parts, scripts, lumières, sons, interfaces) forme un grand arbre appelé le data model. C’est exactement ce que montre l’Explorer. Chaque élément de cet arbre est une instance (un objet) : toutes héritent de la même classe de base (le « modèle » commun à tous les objets), Instance, qui leur donne des propriétés communes comme Name (le nom) et Parent (le parent).
Le moteur de Roblox se sert de ce data model comme source de vérité : c’est à partir de lui qu’il simule et affiche le jeu sur l’appareil de chaque joueur.
Parents et enfants
Dans l’arbre, chaque objet a un parent (l’objet qui le contient) et peut avoir des enfants (les objets qu’il contient). Une Part posée dans le monde a pour parent le Workspace. Si tu la ranges dans un dossier, son parent devient ce dossier.
Quelques manipulations utiles dans l’Explorer :
- clique sur la flèche à gauche d’un objet pour déplier ou replier sa branche (maintiens
Shiftpour tout déplier d’un coup) ; - fais glisser un objet sur un autre pour changer son parent ;
- clic droit puis Hierarchy › Select Children pour sélectionner tous les enfants d’un objet ;
Ctrl+Shift+V(Paste Into) colle le contenu du presse-papiers à l’intérieur de l’objet sélectionné.
Quand tu supprimes ou déplaces un parent, tous ses enfants le suivent. C’est ce qui rend le rangement si puissant : déplacer un dossier déplace tout ce qu’il contient dans l’arbre.
Les services à connaître
Au premier niveau de l’arbre se trouvent les services : des conteneurs fournis par Roblox, chacun avec un rôle précis. Le moteur s’attend à trouver certains objets dans certains services : un script mal placé peut tout simplement ne pas s’exécuter.
| Service | Rôle | Ce que tu y mettras |
|---|---|---|
Workspace |
Le monde 3D : tout ce qui y est s’affiche chez les joueurs | Plateformes, SpawnLocation, décor |
Players |
Contient un objet Player par joueur connecté (créé automatiquement) |
Rien à la main |
Lighting |
L’éclairage global, le ciel, l’atmosphère | Réglages d’ambiance |
ReplicatedStorage |
Objets accessibles à la fois par le serveur et par les joueurs | Code partagé (ModuleScripts, module 3), objets de communication (RemoteEvents, module 4) |
ServerScriptService |
Scripts côté serveur, jamais envoyés aux joueurs | La logique du jeu |
ServerStorage |
Objets côté serveur uniquement ; les scripts ne s’y exécutent pas | Objets à cloner plus tard |
StarterGui |
Interfaces copiées dans le PlayerGui de chaque joueur |
Écrans, boutons, compteurs |
StarterPlayer |
Réglages des personnages et deux dossiers de scripts côté joueur | Voir ci-dessous |
StarterPack |
Outils copiés dans le Backpack (sac) de chaque joueur |
Outils |
StarterPlayer contient deux dossiers importants :
- StarterPlayerScripts : ses scripts sont copiés dans les
PlayerScriptsdu joueur à son arrivée ; - StarterCharacterScripts : ses scripts sont copiés dans le personnage à chaque apparition, donc à nouveau après chaque mort.
Tu croiseras aussi ReplicatedFirst (des objets envoyés aux joueurs avant tout le reste), SoundService ou TextChatService. Pas besoin de les maîtriser maintenant.
Certains services sont masqués par défaut pour garder l’arbre lisible. Un clic droit dans l’Explorer puis Show Services… permet de les afficher.
Folder ou Model ?
Pour regrouper des objets, tu as deux conteneurs. Ils se ressemblent dans l’Explorer, mais leurs rôles sont différents.
| Folder | Model | |
|---|---|---|
| Rôle | Ranger, comme un dossier sur ton ordinateur | Regrouper des objets physiques qui forment un tout |
| Comportement propre | Aucun | Se sélectionne et se transforme d’un bloc, peut avoir une PrimaryPart |
| Exemple | Toutes les plateformes du niveau 1 | Un nuage fait de six sphères, un portail décoratif |
| Créer | Ctrl+Alt+G, ou clic droit › Group As a Folder |
Ctrl+G, ou clic droit › Group |
La PrimaryPart d’un Model
Quand tu déplaces ou tournes un Model, Studio s’appuie par défaut sur le centre de sa boîte englobante. Tu peux désigner une PrimaryPart : la Part de référence que suivent le point de pivot et la boîte englobante du Model. Pour la régler :
- sélectionne le Model dans l’Explorer ;
- dans Properties, clique sur la propriété PrimaryPart (le curseur change) ;
- clique sur la Part voulue dans l’Explorer.
C’est surtout utile quand des scripts déplacent un Model, ou quand ses Parts sont reliées par des articulations. Les personnages des joueurs sont d’ailleurs eux-mêmes des Models.
Bien nommer ses objets
La documentation officielle le résume ainsi : nomme toujours tes objets de façon descriptive, pour les retrouver et les modifier facilement. Pour l’Obby des Nuages, on adopte les conventions suivantes :
- Un nom qui dit ce que c’est :
PlateformeDepart,NuageDecor, plutôt quePartouModel. - Majuscule à chaque mot, sans espace ni accent :
KillBricks,Pieces. Les noms affichés aux joueurs pourront avoir des accents, mais les noms d’objets que tes scripts utilisent restent simples. - Des noms uniques parmi les enfants d’un même parent, surtout pour les objets que tes scripts chercheront.
- La bonne casse, toujours : pour Roblox,
Checkpointsetcheckpointssont deux noms différents. Le tutoriel officiel le rappelle : une faute de majuscule suffit à casser un script.
Retrouver un objet avec la recherche de l’Explorer
Le champ de recherche en haut de l’Explorer (Ctrl+Shift+X) est bien plus puissant qu’il n’y paraît :
plateforme: tous les objets dont le nom contient ce mot (sans tenir compte des majuscules) ;is:Part: toutes les Parts ;Anchored=false: toutes les Parts non ancrées. Parfait pour vérifier ton obby avant un test !Plateformes.*: tous les enfants directs de l’objet nomméPlateformes.
L’organisation de l’Obby des Nuages
Voici la structure que nous allons suivre pendant toute la formation. Crée dès maintenant les dossiers du Workspace, même vides : les modules suivants les rempliront.
Workspace
├── SpawnLocation (le point de départ)
├── Plateformes (Folder : toutes les plateformes, rangées par zone si besoin)
├── Checkpoints (Folder : des Parts nommées "1", "2", "3"… — module 3)
├── KillBricks (Folder : les pièges qui éliminent le joueur — module 3)
└── Pieces (Folder : les pièces à ramasser — module 3)
ReplicatedStorage
├── Remotes (Folder : la communication client/serveur — module 4)
└── Modules (Folder : les ModuleScripts partagés, comme Config — module 3)
ServerScriptService (les scripts du serveur)
Les checkpoints seront nommés par leur numéro d’étape (1, 2, 3…) : un script pourra ainsi savoir à quelle étape correspond chaque checkpoint simplement en lisant son nom.
Aperçu : pourquoi les noms comptent pour les scripts
Tu apprendras à écrire du code au module 3. Mais regarde déjà comment un script retrouve un objet : par son chemin dans l’arbre et par son nom.
-- Script (côté serveur) à placer dans ServerScriptService
-- Aperçu : chaque ligne sera expliquée au module 3.
local Workspace = game:GetService("Workspace")
-- On attend que le dossier « Plateformes » existe dans le Workspace, puis on le récupère
local dossierPlateformes = Workspace:WaitForChild("Plateformes")
-- GetChildren renvoie la liste des enfants directs du dossier
local plateformes = dossierPlateformes:GetChildren()
-- Le signe # donne le nombre d'éléments de la liste
print("L'Obby des Nuages contient " .. #plateformes .. " plateformes")
Si tu renommes le dossier plateformes (sans majuscule), ce script ne le trouve plus : WaitForChild attend indéfiniment et, au bout de 5 secondes, l’Output affiche un avertissement d’attente infinie possible. Un simple renommage peut donc casser un jeu entier : choisis tes noms tôt et n’en change plus.
Ce qu’il faut retenir
- L’Explorer montre le data model : un arbre d’instances où chaque objet a un parent et des enfants.
- Chaque service a un rôle :
Workspace(monde 3D),ServerScriptService(scripts serveur),ReplicatedStorage(partagé),ServerStorage(stockage serveur, scripts inactifs),StarterGui,StarterPlayer,Lighting,Players. - Folder = ranger une catégorie ; Model = un objet physique composé, avec une PrimaryPart possible.
- Des noms descriptifs, uniques et sans accent ; la casse compte.
- La structure de l’Obby des Nuages (
Plateformes,Checkpoints,KillBricks,Pieces,Remotes,Modules) servira dans tous les modules.