Objectif : Arrêter de construire des statues et commencer à créer de la vie. Tu vas apprendre à parler la langue de Roblox : le Luau.
Tes premiers pas en Luau
Jusqu'ici, tu as utilisé ta souris pour bouger des objets. C'est sympa, mais limité. Le script, c'est ton super-pouvoir pour modifier les règles du jeu. Apprends à parler la langue de Roblox.
Commençons par la base absolue : faire parler ton jeu.
Un script, c'est un fichier texte qui contient des ordres. Mais où le mettre ? Pour du code qui gère le jeu global (serveur), la bonne pratique est de le ranger dans le ServerScriptService.
Fais un Clic Droit sur ServerScriptService > Insert Object > Script.
Astuce : Renomme-le tout de suite "MainScript" (touche F2).
Double-clique sur ton script. Tu verras une ligne par défaut :
MainScript.lua
print("Hello world!")C'est la fonction print(). Elle ne sert pas à imprimer sur du papier, mais à envoyer un message au développeur.
Hello world!Si tu ne la vois pas, va dans l'onglet View et clique sur l'icône Output. Sans elle, tu codes à l'aveugle !
Tu peux écrire des notes dans ton code que l'ordinateur va ignorer. On appelle ça des commentaires. En Luau, on utilise deux tirets --.
print("Le jeu commence") -- Ceci est un message pour moi
-- print("Ce message ne s'affichera pas car il est commenté")Imagine que tu joues à un RPG. Ton score, ta vie, ton pseudo... l'ordinateur doit s'en souvenir. Pour ça, il utilise des Variables.
C'est une boîte avec une étiquette. Tu mets une information dedans, et tu peux la retrouver plus tard grâce à l'étiquette.
En Luau, on crée une boîte avec le mot magique local.
local monPrenom = "LearnBlox" -- Je crée la boîte
print(monPrenom) -- J'affiche ce qu'il y a dedansSi tu changes le contenu de la boîte, le reste du code s'adapte automatiquement :
local energie = 100
print(energie) -- Affiche 100
energie = 50 -- On a pris un coup !
print(energie) -- Affiche 50Tu ne peux pas ranger n'importe quoi n'importe comment. Voici les 3 types à connaître par cur :
Chaîne de caractères. Il faut toujours mettre des guillemets autour.
local nom = "Zombie"Des chiffres pour faire des maths. Pas de guillemets.
local vitesse = 16C'est un interrupteur. Soit c'est Vrai (true), soit c'est Faux (false).
local estVivant = trueC'est ici que ça devient drôle. On va utiliser le code pour repeindre les murs.
Roblox fonctionne comme un arbre généalogique.
Si ton script est à l'intérieur de la Part, alors la Part est le Parent du script. Pour cibler la Part depuis le code, on écrit :
script.ParentTu te souviens de la fenêtre Properties du Module 1 ? (Color, Transparency, Material). On peut les changer en écrivant . (point) suivi du nom de la propriété.
Exemple : Rendre une pièce invisible
Place un script DANS une Part, et écris :
local maPiece = script.Parent -- Je cible la pièce
-- Je change la transparence (1 = invisible)
maPiece.Transparency = 1
-- Je change le nom de la pièce
maPiece.Name = "PieceFantome"Changer une couleur est un peu spécial. On ne peut pas juste écrire ="Rouge". Il faut utiliser une palette de couleurs pré-définie appelée BrickColor.
local maPiece = script.Parent
-- Attention aux majuscules ! "Really red" est le nom exact dans Roblox.
maPiece.BrickColor = BrickColor.new("Really red")
maPiece.Material = Enum.Material.Neon -- Pour la faire brillerLe code est sensible aux majuscules/minuscules.
❌ maPiece.transparency = 0.5 (Erreur, minuscule 't')
✅ maPiece.Transparency = 0.5 (Correct)
Si ton script ne marche pas, vérifie toujours tes majuscules en premier !
4 lampes automatiques qui consomment de l'énergie : -1 ⚡/jour par lampe
Module 1 terminé (station avec sol, murs, plafond, réacteur)
Home → petite flèche à côté de Part → Cylinder. Le cylindre apparaît dans Workspace (Explorer à droite).
Les lampes se placent juste sous le plafond (Y = 15), aux 4 coins de la station. Voici les propriétés communes :
📍 Où les placer ? NW = Nord-Ouest, NE = Nord-Est, etc. Les positions négatives vont vers le Nord/Ouest.
💡 Astuce : Crée 1 lampe puis Ctrl+D pour dupliquer.
Dans l'Explorer (panneau à droite), clic droit sur Workspace → Insert Object → Folder → Nomme-le Lampes
Ensuite, dans l'Explorer, glisse-dépose tes 4 lampes (Lampe_NW, etc.) dans le Folder "Lampes". Cela garde ton projet organisé !
Dans l'Explorer, déplie le Folder "Lampes" → clic droit sur Lampe_NW → Insert Object → PointLight
Le PointLight apparaît dans la lampe (il devient un enfant de Lampe_NW dans l'Explorer). Configure-le :
Répète pour les 4 lampes. Le script les allumera au démarrage.
Dans l'Explorer, clic droit sur le Folder Lampes → Insert Object → Script
Le Script apparaît dans le Folder Lampes. Renomme-le GestionLampes (clic droit → Rename). Structure finale dans l'Explorer :
Double-clique sur GestionLampes et copie ce code :
-- GestionLampes : Allume toutes les lampes au démarrage
local dossierLampes = script.Parent
task.wait(1)
print("=== SYSTÈME D'ÉCLAIRAGE ===")
-- 1. Récupère chaque lampe
local lampeNW = dossierLampes.Lampe_NW
local lampeNE = dossierLampes.Lampe_NE
local lampeSW = dossierLampes.Lampe_SW
local lampeSE = dossierLampes.Lampe_SE
-- 2. Allume Lampe Nord-Ouest (NW)
lampeNW.Material = Enum.Material.Neon
lampeNW.BrickColor = BrickColor.new("Cyan")
lampeNW.PointLight.Enabled = true
print("💡 Lampe NW allumée")
-- 3. Allume Lampe Nord-Est (NE)
lampeNE.Material = Enum.Material.Neon
lampeNE.BrickColor = BrickColor.new("Cyan")
lampeNE.PointLight.Enabled = true
print("💡 Lampe NE allumée")
-- 4. Allume Lampe Sud-Ouest (SW)
lampeSW.Material = Enum.Material.Neon
lampeSW.BrickColor = BrickColor.new("Cyan")
lampeSW.PointLight.Enabled = true
print("💡 Lampe SW allumée")
-- 5. Allume Lampe Sud-Est (SE)
lampeSE.Material = Enum.Material.Neon
lampeSE.BrickColor = BrickColor.new("Cyan")
lampeSE.PointLight.Enabled = true
print("💡 Lampe SE allumée")
print("=== ÉCLAIRAGE OPÉRATIONNEL ===")Vérifie que :
Vérifie que le script est dans le Folder (pas dans une lampe) et que chaque lampe contient un PointLight.
N'oublie pas de sauvegarder ton travail !
Prochaine étape → Module 3 : Sas de sortie (vérifie l'oxygène 💨)
Construis la salle de commande au bout du couloir et installe un éclairage intelligent dans toute la station.
Au bout du Couloir_Nord, crée un Model SalleControle dans Station. C'est une pièce plus petite (20×20).
Material = SmoothPlastic, Color = Institutional white. Tout Anchored ✓.
Crée 3 consoles face au mur du fond :
Material = SmoothPlastic, Color = Really black. Ajoute un SurfaceGui (face Top) sur chaque console avec un TextLabel :
💨 OXYGÈNE⚡ ÉNERGIE💎 MATÉRIAUXTextLabel : TextColor3 = Cyan, BackgroundTransparency = 1, TextScaled = true.
Dans le Hub, crée un Folder Lampes. Ajoute 4 cylindres lumineux au plafond :
Material = SmoothPlastic, Color = blanc. Ajoute un PointLight à chacune (Brightness = 2, Range = 30, Enabled = false).
Fais la même chose dans la SalleControle avec 2 lampes (Lampe_Ctrl_G et Lampe_Ctrl_D) et dans le Couloir_Nord avec 2 lampes (Lampe_Couloir_1, Lampe_Couloir_2).
Crée un Script dans ServerScriptService nommé GestionEclairage :
-- GestionEclairage : allume toutes les lampes de la station local station = game.Workspace:WaitForChild("Station") -- Fonction qui allume une lampe local function allumerLampe(lampe) lampe.Material = Enum.Material.Neon lampe.Color = Color3.fromRGB(180, 230, 255) -- bleu clair local light = lampe:FindFirstChildOfClass("PointLight") if light then light.Enabled = true end print("💡 Lampe allumée :", lampe.Name) end -- Cherche toutes les lampes dans la station for _, piece in station:GetDescendants() do if piece.Name:sub(1, 5) == "Lampe" then allumerLampe(piece) end end print("✅ Éclairage de la station activé")Vérifie :
Sauvegarde : Ctrl+S
Prochaine étape → Module 3 : Sas & Système d'Oxygène