Ce script permet de changer la taille du joueur quand il passe à travers un bloc spécial (Part).
- Effet : Le joueur devient 30% de sa taille normale (très petit !).
- Déclencheur : Quand le joueur touche la pièce
Part(dans le dossierFolder).
Objets à créer dans Roblox Studio
Pour que le script fonctionne, il faut :
- Créer un dossier dans le
Workspace:- Nom :
Folder(le script attend ce dossier).
- Nom :
- Ajouter une pièce dans ce dossier :
- Nom :
Part(c’est la pièce qui déclenchera le changement de taille). - Type :
BasePart(un cube, une sphère, etc.).
- Nom :

Crée un script dans ServerScriptService :
local heightScaleFolder = workspace:WaitForChild("Folder")
local heightScale = heightScaleFolder:WaitForChild("Part")
heightScale.Touched:Connect(function(hit)
local character = hit:FindFirstAncestorOfClass("Model")
if not character then return end
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.BodyHeightScale.Value = 0.3
humanoid.BodyWidthScale.Value = 0.3
humanoid.BodyDepthScale.Value = 0.3
humanoid.HeadScale.Value = 0.3
end
end)
Explication du code pas à pas
1. Récupérer les objets dans le Workspace
local heightScaleFolder = workspace:WaitForChild("Folder")
local heightScale = heightScaleFolder:WaitForChild("Part")
workspace:WaitForChild("Folder"):- Attend que le dossier
Folderexiste dans leWorkspace. - Si le dossier n’existe pas encore, le script attend qu’il soit créé (au lieu de planter).
- Attend que le dossier
heightScaleFolder:WaitForChild("Part"):- Attend que la pièce
Partexiste dans le dossierFolder.
- Attend que la pièce
💡 Pourquoi
WaitForChild?
- En Lua/Roblox, si un objet n’existe pas encore au moment où le script s’exécute, le jeu pourrait planter.
WaitForChildévite ce problème en attendant que l’objet soit créé.
2. Détecter quand un joueur touche la pièce
heightScale.Touched:Connect(function(hit)
heightScale.Touched:- C’est un événement qui se déclenche quand quelque chose touche la pièce
Part.
- C’est un événement qui se déclenche quand quelque chose touche la pièce
hit:- C’est l’objet qui a touché la pièce (ex: la main, la tête ou le torse du joueur).
3. Récupérer le personnage du joueur
local character = hit:FindFirstAncestorOfClass("Model")
hit:FindFirstAncestorOfClass("Model"):- Cherche le premier ancêtre de
hitqui est unModel. - En Roblox, un joueur est représenté par un
Model(son personnage entier). hitest une partie du corps (ex:Head,Torso), et son ancêtre est le modèle du joueur.
- Cherche le premier ancêtre de
🔍 Exemple :
Sihitest la main du joueur (RightHand), alors :RightHand→RightArm→Torso→Character(le Model).
La fonction trouveCharacter.
4. Récupérer l’Humanoid
local humanoid = character:FindFirstChildOfClass("Humanoid")
FindFirstChildOfClass("Humanoid"):- Cherche l’Humanoid dans le modèle du joueur.
- L’Humanoid est le composant qui gère :
- La vie du joueur.
- Le mouvement (saut, course, etc.).
- La taille (
BodyHeightScale,BodyWidthScale, etc.).
5. Vérifier si l’Humanoid existe
if humanoid then
- Pourquoi cette vérification ?
- Si
humanoidestnil(n’existe pas), le script ne fait rien (returnimplicite). - C’est une sécurité pour éviter les erreurs.
- Si
6. Modifier la taille du joueur
humanoid.BodyHeightScale.Value = 0.3 -- Hauteur du corps = 30% de la normale.
humanoid.BodyWidthScale.Value = 0.3 -- Largeur du corps = 30% de la normale.
humanoid.BodyDepthScale.Value = 0.3 -- Profondeur du corps = 30% de la normale.
humanoid.HeadScale.Value = 0.3 -- Taille de la tête = 30% de la normale.
BodyHeightScale: Contrôle la hauteur du corps.BodyWidthScale: Contrôle la largeur du corps.BodyDepthScale: Contrôle la profondeur (épaisseur) du corps.HeadScale: Contrôle la taille de la tête.0.3: Le joueur sera 30% de sa taille normale (donc très petit).
💡 Pour agrandir le joueur :
- Remplace
0.3par2pour doubler la taille.- Remplace
0.3par0.5pour réduire de moitié.
QCM pour vérifier la compréhension
Questions sur le script « Changer la taille du joueur »
- Que fait
workspace:WaitForChild("Folder")?- A. Crée un dossier nommé
Folder. - B. Attend que le dossier
Folderexiste dans leWorkspace. - C. Supprime le dossier
Folder. - D. Change le nom du dossier.
- A. Crée un dossier nommé
- Que représente
hitdansheightScale.Touched:Connect(function(hit)?- A. Le dossier
Folder. - B. La partie du joueur qui a touché la pièce
Part(ex: la main, la tête). - C. La pièce
Partelle-même. - D. Le script Lua.
- A. Le dossier
- À quoi sert
hit:FindFirstAncestorOfClass("Model")?- A. Trouve la pièce
Part. - B. Trouve le modèle du personnage (le joueur entier).
- C. Trouve l’Humanoid.
- D. Change la taille de la pièce.
- A. Trouve la pièce
- Que fait
humanoid.BodyHeightScale.Value = 0.3?- A. Réduit la hauteur du corps du joueur à 30% de sa taille normale.
- B. Augmente la hauteur de saut.
- C. Change la couleur du joueur.
- D. Supprime l’Humanoid.
- Si on veut que le joueur devienne deux fois plus grand, que doit-on faire ?
- A. Mettre
BodyHeightScale.Value = 0.5. - B. Mettre
BodyHeightScale.Value = 2. - C. Mettre
BodyHeightScale.Value = 0. - D. Supprimer la ligne
BodyHeightScale.
- A. Mettre
- Pourquoi utilise-t-on
if humanoid then?- A. Pour créer un Humanoid.
- B. Pour éviter les erreurs si l’Humanoid n’existe pas.
- C. Pour changer la taille de la pièce.
- D. Pour désactiver le script.
