Premier addon

En quelques minutes : un addon qui souhaite la bienvenue aux joueurs et ajoute une commande de chat.

1. Créer le dossier

Le plus simple : Créer → Code → Nouvel addon Lua. PhysiCore crée l'addon et ouvre l'éditeur de code ; tu peux alors passer directement à l'étape 3. Les étapes ci-dessous montrent ce que contient un addon.

Tu peux aussi le créer à la main dans le dossier des addons locaux :

%APPDATA%\Godot\app_userdata\PhysiCore\addons\mon_addon\
AstuceLe bouton « Dossier » de Mods → Mes addons t'emmène directement au bon endroit.

2. Décrire l'addon

Crée un fichier addon.json à la racine du dossier :

{
	"title": "Mon premier addon",
	"description": "Dit bonjour et ajoute la commande /saut."
}

3. Écrire le script

Crée un fichier lua/autorun/server/bonjour.lua (le dossier server : ce code tourne sur le serveur) :

-- Message de bienvenue quand un joueur arrive sur le serveur.
hook.Add("PlayerInitialSpawn", "bonjour_bienvenue", function(ply)
	ply:ChatPrint("Salut " .. ply:Name() .. " ! Tape /saut pour sauter très haut.")
end)

-- Commande de chat : /saut
concommand.Add("saut", function(ply, args)
	ply:SetJumpPower(12)
	ply:ChatPrint("Super saut activé pendant 10 secondes !")
	timer.Simple(10, function()
		if ply:IsValid() then
			ply:SetJumpPower(5.08) -- valeur par défaut
			ply:ChatPrint("Super saut terminé.")
		end
	end)
end)

4. Tester

  1. Dans Mes addons, vérifie que ton addon est coché (activé).
  2. Lance une partie : Jouer → Créer une partie → Sandbox, puis une carte. Depuis l'éditeur de code, TESTER (F5) fait tout ça d'un coup.
  3. Le message de bienvenue s'affiche. Ouvre le chat (Y) et tape /saut.
Après une modificationDans l'éditeur de code, RECHARGER (F5) relance tes scripts sans quitter la partie (F2 pour passer du jeu à l'éditeur). Sinon, les scripts sont relus au lancement de la partie suivante.

5. En cas d'erreur

Une erreur Lua ne fait pas planter le jeu : le message s'affiche dans le chat, préfixé par [Lua] Erreur :, avec le dossier de l'addon, le fichier et la ligne fautive. Dans l'éditeur de code, la console affiche le détail et un clic sur l'erreur ouvre le fichier à la bonne ligne.

[Lua] Erreur : mon_addon/lua/autorun/server/bonjour.lua:7: attempt to call a nil value (method 'SetJumPower')

Ici, une faute de frappe dans SetJumpPower.

Et ensuite ?