Dans ce module, tu vas apprendre à :
Ce script va dans ServerScriptService. Il crée ton compteur de monnaie et la machine à sous invisible qui te donne de l’argent toutes les secondes.
game.Players.PlayerAdded:Connect(function(joueur)
-- 1. On crée le compteur d'argent visible en haut à droite
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = joueur
local argent = Instance.new("IntValue")
argent.Name = "Argent" -- Tu peux changer le nom entre les guillemets !
argent.Value = 0
argent.Parent = leaderstats
-- 2. On crée la cachette invisible pour ton revenu par seconde
local stats = Instance.new("Folder")
stats.Name = "Stats"
stats.Parent = joueur
local revenu = Instance.new("IntValue")
revenu.Name = "Revenu"
revenu.Value = 0 -- Au début, on gagne 0 pièce par seconde
revenu.Parent = stats
-- 3. La machine à sous automatique (ajoute le revenu chaque seconde)
task.spawn(function()
while true do
task.wait(1)
argent.Value = argent.Value + revenu.Value
end
end)
end)
Dans Roblox, pour qu’un personnage puisse tenir un mème dans sa main, on doit le ranger dans une boîte magique appelée Tool (Outil).
+ à côté de Workspace et ajoute un Tool. Renomme-le “MonBrainrot”.+ à côté de ce bloc > Insert Object > ProximityPrompt (le bouton E).+ à côté de ce bloc > Insert Object > Script.Ce script est magique : quand on appuie sur E, il fait disparaître le mème par terre, ouvre le coffre-fort secret pour donner une copie du mème dans tes mains, et augmente ton argent par seconde !
local bloc = script.Parent
local boutonE = bloc.ProximityPrompt
-- Fonction magique pour cacher ou montrer TOUTES les pièces du mème d'un coup
local function changerVisibilite(invisible)
for _, piece in pairs(bloc:GetDescendants()) do
if piece:IsA("BasePart") then
if invisible == true then
piece.Transparency = 1
piece.CanCollide = false
else
piece.Transparency = 0 -- Redevient visible
piece.CanCollide = true
end
end
end
end
-- Quand le joueur s'approche et appuie sur E
boutonE.Triggered:Connect(function(joueur)
-- 1. On va chercher le Tool caché dans le coffre-fort (ReplicatedStorage)
local toolOriginal = game.ReplicatedStorage:FindFirstChild("MonBrainrot")
if toolOriginal then
-- On fait une photocopie du Tool et on la met dans le sac du joueur
local copieTool = toolOriginal:Clone()
copieTool.Parent = joueur:FindFirstChild("Backpack")
-- 2. On augmente son revenu d'argent passif
local revenuDuJoueur = joueur.Stats.Revenu
revenuDuJoueur.Value = revenuDuJoueur.Value + 10 -- Gagne +10/seconde !
-- 3. On cache le mème par terre et on éteint le bouton E
changerVisibilite(true)
boutonE.Enabled = false
-- 4. On attend 5 secondes et le mème réapparaît sur la montagne !
task.wait(5)
changerVisibilite(false)
boutonE.Enabled = true
end
end)
Pour forcer le joueur à acheter des améliorations pour monter plus haut, on va créer une zone invisible qui le rend super lourd !
local zone = workspace:WaitForChild("ZoneLourde")
local joueur = game.Players.LocalPlayer
-- Quand le joueur entre dans la zone, la gravité augmente d'un coup !
zone.Touched:Connect(function(hit)
if hit.Parent == joueur.Character then
workspace.Gravity = 300 -- Gravité augmentée (de base c'est 196)
end
end)
-- Quand le joueur sort de la zone, la gravité revient à la normale
zone.TouchEnded:Connect(function(hit)
if hit.Parent == joueur.Character then
workspace.Gravity = 196
end
end)
Ta mission principale est de créer le GDD (Game Design Document) de ton futur jeu de montagne.
C’est quoi un GDD ?
C’est le “plan d’architecte” du jeu. Ta mission est de décrire le plus précisément possible ce que tu as dans la tête pour ton jeu, pour qu’on sache exactement quoi fabriquer ensemble au prochain cours.
Ce que tu devez décrire précisément dans ton document :
-- Rappel : Ce script s'exécute en arrière-plan toutes les secondes
task.spawn(function()
while true do
task.wait(____) -- Attendre combien de temps ?
argent.Value = argent.Value + revenu._____ -- Quelle boîte magique on ajoute ?
end
end)
-- Pour donner l'objet au joueur et cacher le mème par terre, on fait :
local copieTool = toolOriginal:_______() -- Faire la photocopie
copieTool.Parent = joueur:FindFirstChild("_______") -- Mettre dans le sac à dos
changerVisibilite(_______) -- Cacher le mème par terre (true ou false ?)
boutonE.Enabled = false -- Éteindre le bouton E