Premiers Scripts

Objectif : Arrêter de construire des statues et commencer à créer de la vie. Tu vas apprendre à parler la langue de Roblox : le Luau.

Bienvenue dans la Matrice

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.

1. Hello World (La console)

Commençons par la base absolue : faire parler ton jeu.

1.1 Où ranger son cerveau (Le Script)

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.

Action

Fais un Clic Droit sur ServerScriptService > Insert Object > Script.
Astuce : Renomme-le tout de suite "MainScript" (touche F2).

1.2 La tradition du "Hello World"

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.

  • Clique sur Play.
  • Regarde la fenêtre Output en bas de ton écran.
  • Tu verras : Hello world!
Fenêtre Output

Si tu ne la vois pas, va dans l'onglet View et clique sur l'icône Output. Sans elle, tu codes à l'aveugle !

1.3 Les Commentaires

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é")

2. Les Variables (Tes boîtes de stockage)

Imagine que tu joues à un RPG. Ton score, ta vie, ton pseudo... l'ordinateur doit s'en souvenir. Pour ça, il utilise des Variables.

2.1 Qu'est-ce qu'une variable ?

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.

2.2 La syntaxe

local monPrenom = "LearnBlox"  -- Je crée la boîte
print(monPrenom)               -- J'affiche ce qu'il y a dedans

Si 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 50

2.3 Les 3 types de données essentiels

Tu ne peux pas ranger n'importe quoi n'importe comment. Voici les 3 types à connaître par cœur :

String (Texte)

Chaîne de caractères. Il faut toujours mettre des guillemets autour.

local nom = "Zombie"
Number (Nombre)

Des chiffres pour faire des maths. Pas de guillemets.

local vitesse = 16
Boolean (Logique)

C'est un interrupteur. Soit c'est Vrai (true), soit c'est Faux (false).

local estVivant = true

3. Manipuler le Monde (Propriétés)

C'est ici que ça devient drôle. On va utiliser le code pour repeindre les murs.

3.1 Comprendre la Hiérarchie (Parents et Enfants)

Roblox fonctionne comme un arbre généalogique.

  • Le jeu contient le Workspace.
  • Le Workspace contient ta Part.
  • Ta Part contient ton Script.

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.Parent

3.2 Changer les propriétés

Tu 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"

3.3 Le piège des Couleurs (BrickColor)

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 briller
💡 Astuce de Pro : Sensible à la casse

Le 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 !

💻 Sandbox Luau
Simulateur v2.0
1 2 3 4 5 6 7 8
👉 Clique sur Exécuter pour tester ton code...
Quiz

Maîtrises-tu le Luau ?

Sélectionnez une réponse pour chaque question, puis validez en bas de page.

30-50 Points

1. Quel mot-clé utilise-t-on pour créer une variable ?

  • var
  • local
  • create
  • dim

2. Comment écrit-on un commentaire en Luau ?

  • // Commentaire
  • # Commentaire
  • -- Commentaire
  • /* Commentaire */

3. Si mon script est DANS une Part, comment je cible cette Part ?

  • game.Part
  • script.Parent
  • workspace.Part
  • Parent.script

4. Quel type de donnée utilise-t-on pour du texte en Luau ?

  • String
  • Number
  • Boolean
  • Text

5. Quelle est la bonne façon de changer la couleur d'une Part ?

  • part.Color = "Red"
  • part.BrickColor = BrickColor.new("Red")
  • part.BrickColor = "Red"
  • part.Color = BrickColor("Red")
Challenge Code

Le Fantôme

Complète ce script pour rendre la pièce invisible et traversable.

15-50 Points
Script.lua
-- Récupère la pièce (Part contenant ce script)
local piece =
-- Rend la pièce invisible (0=visible, 1=invisible)
piece. = -- Quelle valeur rend invisible ?
-- Désactive les collisions pour que le joueur traverse
piece.CanCollide =
-- Détruit la pièce après 2 secondes
wait(2)
piece:()
💡
Étape 2/10

Système d'Éclairage

4 lampes automatiques qui consomment de l'énergie : -1 ⚡/jour par lampe

1
2
3
4
5
6
7
8
9
10
Prérequis

Module 1 terminé (station avec sol, murs, plafond, réacteur)

Ajoute l'éclairage à ta station

1
Crée 4 Lampes au plafond

Home → petite flèche à côté de PartCylinder. 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 :

Size1, 4, 4
Orientation0, 0, 90
MaterialSmoothPlastic
ColorMedium stone grey
Anchored

📍 Où les placer ? NW = Nord-Ouest, NE = Nord-Est, etc. Les positions négatives vont vers le Nord/Ouest.

Lampe_NWPos: -15, 15, -15
Lampe_NEPos: 15, 15, -15
Lampe_SWPos: -15, 15, 15
Lampe_SEPos: 15, 15, 15

💡 Astuce : Crée 1 lampe puis Ctrl+D pour dupliquer.

2
Organise dans un Folder

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é !

3
Ajoute un PointLight à chaque lampe

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 :

Brightness2
Range30
Color255, 255, 200 (blanc chaud)
Enabled ✗ false

Répète pour les 4 lampes. Le script les allumera au démarrage.

4
Crée le Script d'allumage

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 :

Lampes
GestionLampes
Lampe_NW 💡 PointLight
Lampe_NE 💡 PointLight
Lampe_SW 💡 PointLight
Lampe_SE 💡 PointLight
5
Écris le code Lua

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 ===")
6
Teste ! (F5)

Vérifie que :

  • Les 4 lampes deviennent Cyan/Neon
  • La station est bien éclairée
  • La console affiche les messages ?
Ça ne marche pas ?

Vérifie que le script est dans le Folder (pas dans une lampe) et que chaque lampe contient un PointLight.

7
Sauvegarde (Ctrl+S)

N'oublie pas de sauvegarder ton travail !

Éclairage terminé !

Prochaine étape → Module 3 : Sas de sortie (vérifie l'oxygène 💨)

💡
Étape 2/10 — V2

SALLE DE CONTRÔLE & ÉCLAIRAGE 💡

Construis la salle de commande au bout du couloir et installe un éclairage intelligent dans toute la station.

1
2
3
4
5
6
7
8
9
10

Build — Salle de Contrôle

1
Construis la Salle de Contrôle

Au bout du Couloir_Nord, crée un Model SalleControle dans Station. C'est une pièce plus petite (20×20).

Sol_Controle20 × 1 × 20 | Pos: 0, 0, -50
Plafond_Controle20 × 1 × 20 | Pos: 0, 12, -50
Mur_Fond20 × 12 × 1 | Pos: 0, 6, -60
Mur_G1 × 12 × 20 | Pos: -10, 6, -50
Mur_D1 × 12 × 20 | Pos: 10, 6, -50

Material = SmoothPlastic, Color = Institutional white. Tout Anchored ✓.

2
Installe les consoles de commande

Crée 3 consoles face au mur du fond :

Console_Gauche5 × 3 × 2 | Pos: -6, 2, -58
Console_Centre6 × 3 × 2 | Pos: 0, 2, -58
Console_Droite5 × 3 × 2 | Pos: 6, 2, -58

Material = SmoothPlastic, Color = Really black. Ajoute un SurfaceGui (face Top) sur chaque console avec un TextLabel :

  • Console_Gauche → texte : 💨 OXYGÈNE
  • Console_Centre → texte : ⚡ ÉNERGIE
  • Console_Droite → texte : 💎 MATÉRIAUX

TextLabel : TextColor3 = Cyan, BackgroundTransparency = 1, TextScaled = true.

Script — Éclairage Intelligent

3
Crée les luminaires

Dans le Hub, crée un Folder Lampes. Ajoute 4 cylindres lumineux au plafond :

Lampe_NW2 × 0.5 × 8 | Pos: -12, 19, -12
Lampe_NE2 × 0.5 × 8 | Pos: 12, 19, -12
Lampe_SW2 × 0.5 × 8 | Pos: -12, 19, 12
Lampe_SE2 × 0.5 × 8 | Pos: 12, 19, 12

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).

4
Script : allumage automatique

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é")
GetDescendants() parcourt TOUS les objets enfants, petits-enfants, etc. Comme ça, pas besoin de chercher dans chaque pièce séparément !
5
Teste ! F5

Vérifie :

  • ✅ Les lampes du Hub, du couloir et de la salle de contrôle s'allument en bleu
  • ✅ La console dans la Output affiche le nom de chaque lampe
  • ✅ L'ambiance est immersive — sombre dehors, éclairé dedans

Sauvegarde : Ctrl+S

Salle de contrôle & Éclairage terminés ! 💡

Prochaine étape → Module 3 : Sas & Système d'Oxygène