Parcours
Apprendre Lua
Un cours Lua en ligne, gratuit et interactif. Tu écris du Lua à chaque leçon — syntaxe, tables, fonctions, metatables et les bases qu'il te faut pour scripter sur Roblox ou bosser sur un moteur de jeu — avec des indices IA quand ça part en nil, et un certificat gratuit à la fin.
52,312+ codders inscrits
- Adapté aux débutants
Aide au codage assistée par IA
Leçons interactives et pratiques
Narration audio dans chaque leçon
Quiz pour tester vos connaissances
Certificat gratuit de réussite
Programme
Section 1
Fundamentals
Commencer la sectionDémarrerDévelopperRéduireThe first section in Lua for absolute beginners.Introduction
3 leçons216- 01Le langageDéfi
- 02Hello World !DéfiQuizAudio
- 03CommentairesQuizAudio
Variables et types de données
8 leçons754- 01Qu'est-ce qu'une variable ?DéfiQuizAudio
- 02Les nombresDéfiQuizAudio
- 03Les chaînes de caractèresDéfiQuizAudio
- 04Les booléensDéfiQuizAudio
- 05La valeur 'nil'DéfiQuizAudio
- 06La fonction type()DéfiQuizAudio
- 07Conventions de nommageQuizAudio
- 08Récapitulatif - Profil de personnageDéfi
Opérateurs 1 Arithmétique & Conc.
6 leçons636- 01Opérateurs arithmétiquesDéfiQuizAudio
- 02Opérateur moduloDéfiQuizAudio
- 03Opérateur d'exponentiationDéfiQuizAudio
- 04Concaténation de chaînesDéfiQuizAudio
- 05Priorité des opérateursDéfiQuizAudio
- 06Récapitulatif - Calculs simplesDéfi
Opérateurs 2 : Relationnels et Logique
8 leçons651- 01Opérateurs d'égalitéDéfiQuizAudio
- 02Opérateurs relationnelsDéfiQuizAudio
- 03L'opérateur 'and'DéfiQuizAudio
- 04L'opérateur 'or'DéfiQuizAudio
- 05L'opérateur 'not'DéfiQuizAudio
- 06Évaluation court-circuitQuizAudio
- 07Valeurs Truthy et FalsyQuizAudio
- 08Récapitulatif - Logique simpleDéfi
Affichage de base
9 leçons954- 01Afficher des littérauxDéfiQuizAudio
- 02Afficher des variablesDéfiQuizAudio
- 03Afficher plusieurs valeursDéfiQuizAudio
- 04Combiner des chaînes et des variablesDéfiQuizAudio
- 05La fonction tostring()DéfiQuizAudio
- 06EntréeDéfiQuizAudio
- 07Le CastDéfiQuizAudio
- 08Récapitulatif - Rapport d'étatDéfi
- 09Récapitulatif - Jusqu'à 120Défi
Projet : Affichage des stats du personnage
Projet5 leçons1- 01Message de bienvenueDéfi
- 02Déclarer les statistiques du personnageProjet
- 03Afficher les statistiques de baseProjet
- 04Ajouter un indicateur booléenProjet
- 05Résumé finalProjet
Logique conditionnelle de base
4 leçons423- 01L'instruction if-thenDéfiQuizAudio
- 02L'instruction if-then-elseDéfiQuizAudio
- 03L'instruction elseifDéfiQuizAudio
- 04Récapitulatif - Le coffre au trésorDéfi
Bases de la manipulation de chaînes
6 leçons638- 01string.len()DéfiQuizAudio
- 02string.upper et string.lowerDéfiQuizAudio
- 03string.sub()DéfiQuizAudio
- 04string.rep()DéfiQuizAudio
- 05string.find()DéfiQuizAudio
- 06Récapitulatif - Formater le nom d'utilisateurDéfi
Bases des fonctions
6 leçons636- 01Déclarer une fonctionDéfiQuizAudio
- 02Appeler une fonctionDéfiQuizAudio
- 03Fonctions avec paramètresDéfiQuizAudio
- 04Fonctions avec plusieurs paramètresDéfiQuizAudio
- 05L'instruction 'return'DéfiQuizAudio
- 06Récapitulatif - Calculateur d'aireDéfi
Tables Partie 1 : Style Liste
8 leçons752- 01Qu'est-ce qu'une Table ?QuizAudio
- 02Créer une TableDéfiQuizAudio
- 03Accéder aux éléments par indexDéfiQuizAudio
- 04Modifier des éléments par indexDéfiQuizAudio
- 05L'opérateur de longueur '#'DéfiQuizAudio
- 06table.insert()DéfiQuizAudio
- 07table.remove()DéfiQuizAudio
- 08Récapitulatif - Gérer les membres du groupeDéfi
Tables 2 : Style dictionnaire
7 leçons648- 01Paires clé-valeurQuizAudio
- 02Créer des tables de style dictionnaireDéfiQuizAudio
- 03Accès - Notation par crochetsDéfiQuizAudio
- 04Accès avec la notation par pointDéfiQuizAudio
- 05Ajouter et modifier des pairesDéfiQuizAudio
- 06Supprimer des paires avec nilDéfiQuizAudio
- 07Récapitulatif - Propriétés des élémentsDéfi
Bases des boucles
6 leçons636- 01La boucle whileDéfiQuizAudio
- 02La boucle repeat-untilDéfiQuizAudio
- 03La boucle for numériqueDéfiQuizAudio
- 04Boucle for avec un pasDéfiQuizAudio
- 05L'instruction 'break'DéfiQuizAudio
- 06Récapitulatif - Compte à reboursDéfi
Projet : Boutique de potions simple
Projet6 leçons1- 01Configuration du projetDéfi
- 02Ajouter une potionProjet
- 03Afficher l'inventaireProjet
- 04Calculer la valeur totale du stockProjet
- 05Trouver une potion spécifiqueProjet
- 06Vendre une potionProjet
Portée des variables
5 leçons330- 01Variables globalesQuizAudio
- 02Variables localesDéfiQuizAudio
- 03Pourquoi utiliser des variables locales ?QuizAudio
- 04Portée et blocsDéfiQuizAudio
- 05Récapitulatif - Énigme de portéeDéfi
Défis finaux
3 leçons3- 01Récapitulatif - Tour du joueurDéfi
- 02Récapitulatif - Base de données simpleDéfi
- 03Récapitulatif - Somme des nombres pairsDéfi
Section 2
Logic & Flow
Commencer la sectionDémarrerDévelopperRéduireDevelop problem-solving skills and create dynamic, interactive programsItération avancée des tables
4 leçons423- 01Itérer avec pairs()DéfiQuiz
- 02Itérer avec ipairs()DéfiQuiz
- 03pairs() vs. ipairs()DéfiQuiz
- 04Récapitulatif - Fiche de personnageDéfi
Plus de fonctions de la bibliothèque table
5 leçons430- 01table.concat()DéfiQuiz
- 02Construction de table & unpack()DéfiQuiz
- 03table.sort()DéfiQuiz
- 04Tri personnalisé avec des fonctionsQuiz
- 05Récapitulatif - Tableau des scoresDéfi
Concepts avancés sur les fonctions
6 leçons539- 01Retourner plusieurs valeursQuiz
- 02Fonctions variadiques (...)DéfiQuiz
- 03Les fonctions comme valeurs de première classeDéfiQuiz
- 04Fonctions anonymesDéfiQuiz
- 05Qu'est-ce qu'une closure ?DéfiQuiz
- 06Récapitulatif - Gestionnaire d'événements simpleDéfi
Introduction aux Metatables
8 leçons757- 01Qu'est-ce qu'une Metatable ?Quiz
- 02setmetatable & getmetatableDéfiQuiz
- 03La métaméthode __indexDéfiQuiz
- 04La métaméthode __newindexDéfiQuiz
- 05La métaméthode __tostringDéfiQuiz
- 06Métaméthodes arithmétiques - Partie 1DéfiQuiz
- 07Métaméthodes arithmétiques - Partie 2DéfiQuiz
- 08Récapitulatif - Table en lecture seuleDéfi
Projet : Moteur de jeu d'aventure textuel
Projet8 leçons1- 01Configuration du projet : La pièceDéfi
- 02Relier les piècesProjet
- 03État du joueurProjet
- 04La boucle de jeuProjet
- 05Gérer les entrées utilisateurProjet
- 06Déplacer le joueurProjet
- 07Gérer les déplacements non validesProjet
- 08Afficher les sortiesProjet
Gestion des erreurs
3 leçons216- 01La fonction error()Quiz
- 02Appels protégés avec pcall()DéfiQuiz
- 03Récapitulatif - Division sécuriséeDéfi
Manipulation avancée de chaînes
6 leçons641- 01string.gsub() pour la substitutionDéfiQuiz
- 02Intro aux motifs de chaînesDéfiQuiz
- 03string.find()DéfiQuiz
- 04string.match()DéfiQuiz
- 05Itération avec string.gmatch()DéfiQuiz
- 06Récapitulatif - Analyseur de fichiers de logDéfi
Projet : Liste de contacts
Projet7 leçons1- 01Configuration du projetDéfi
- 02La boucle principaleProjet
- 03Ajouter un contactProjet
- 04Afficher tous les contactsProjet
- 05Rechercher un contactProjet
- 06Supprimer un contactProjet
- 07Gérer les entrées invalidesProjet
Les coroutines pour débutants
7 leçons638- 01Qu'est-ce qu'une coroutine ?Quiz
- 02coroutine create & resumeDéfiQuiz
- 03Pause avec coroutine.yield()DéfiQuiz
- 04resume & yieldDéfiQuiz
- 05Vérifier l'état d'une coroutineDéfiQuiz
- 06Récapitulatif - Générateur de nombresDéfi
- 07Récapitulatif - Calcul vectorielDéfi
Section 3
Object Oriented Programming
Commencer la sectionDémarrerDévelopperRéduireDiscover how to organize code with classes, objects, and reusable structuresLe concept de « self »
5 leçons532- 01Tables avec fonctionsDéfiQuiz
- 02« self » expliciteDéfiQuiz
- 03La syntaxe avec deux-pointsDéfiQuiz
- 04Point vs deux-pointsDéfiQuiz
- 05Récapitulatif - Point mobileDéfi
Modèle de prototype de classe
6 leçons641- 01Le concept de prototypeDéfiQuiz
- 02Liaison avec __indexDéfiQuiz
- 03Le constructeur :new()DéfiQuiz
- 04Initialisation des attributsDéfiQuiz
- 05Instances indépendantesDéfiQuiz
- 06Récapitulatif - Usine de voituresDéfi
État et comportement des objets
7 leçons748- 01Variables d'instanceDéfiQuiz
- 02Méthodes GetterDéfiQuiz
- 03Méthodes SetterDéfiQuiz
- 04Propriétés calculéesDéfiQuiz
- 05Formatage de chaînesDéfiQuiz
- 06Vérifications d'égalitéDéfiQuiz
- 07Récapitulatif - Note de l'étudiantDéfi
Projet : Banque numérique
Projet7 leçons1- 01Configuration du projetDéfi
- 02Méthode de dépôtProjet
- 03Méthode de retraitProjet
- 04Obtenir le soldeProjet
- 05Informations du compteProjet
- 06Transférer des fondsProjet
- 07Test bancaire finalProjet
Surcharge d'opérateurs en POO
5 leçons531- 01Additionner des objetsDéfiQuiz
- 02Soustraire des objetsDéfiQuiz
- 03Concaténer des objetsDéfiQuiz
- 04Comparer des objets (<, >)DéfiQuiz
- 05Récapitulatif - Calculs de portefeuilleDéfi
Bases de l'héritage
6 leçons643- 01Mise en place de l'héritageDéfiQuiz
- 02Hériter des méthodesDéfiQuiz
- 03Étendre le constructeurDéfiQuiz
- 04Ajouter des méthodes enfantsDéfiQuiz
- 05Partagé vs UniqueDéfiQuiz
- 06Récapitulatif - Hiérarchie des formesDéfi
Polymorphisme et Redéfinition
6 leçons640- 01Redéfinition de méthodesDéfiQuiz
- 02Appeler des méthodes parentesDéfiQuiz
- 03Duck TypingDéfiQuiz
- 04Interface communeDéfiQuiz
- 05Vérification du typeDéfiQuiz
- 06Récapitulatif - Rôles des employésDéfi
Encapsulation
6 leçons644- 01Conventions de nommageDéfiQuiz
- 02Closures pour la confidentialitéDéfiQuiz
- 03Accès via les ClosuresDéfiQuiz
- 04Tables en lecture seuleDéfiQuiz
- 05Logique de validationDéfiQuiz
- 06Récapitulatif - Coffre-fort sécuriséDéfi
Composition et Mixins
6 leçons642- 01Relation 'A un'DéfiQuiz
- 02DélégationDéfiQuiz
- 03Mixins simplesDéfiQuiz
- 04Appliquer plusieurs MixinsDéfiQuiz
- 05Mixins vs HéritageDéfiQuiz
- 06Récapitulatif - Assemblage de robotsDéfi
Projet : Gestionnaire de formes
Projet7 leçons1- 01Configuration du projetDéfi
- 02Classe RectangleProjet
- 03Classe CercleProjet
- 04Méthode PérimètreProjet
- 05Collection de formesProjet
- 06Aire totaleProjet
- 07Filtrer les formesProjet
Patrons de conception (Lite)
5 leçons532- 01Fonctions FactoryDéfiQuiz
- 02Table SingletonDéfiQuiz
- 03Patron IteratorDéfiQuiz
- 04Observer (Écouteur)DéfiQuiz
- 05Récapitulatif - Logger FactoryDéfi
Défis finaux
4 leçons4- 01Récapitulatif - Système d'inventaireDéfi
- 02Récapitulatif - Gestionnaire d'utilisateursDéfi
- 03Récapitulatif - Suivi des scoresDéfi
- 04Vérification finale POODéfi
Pourquoi apprendre Lua avec Coddy
- Du vrai code Lua exécuté dans ton navigateur. Aucun interpréteur Lua à installer, aucune toolchain à configurer. Chaque leçon exécute ton script Lua côté serveur et affiche le résultat instantanément.
- Du Lua tel qu'on l'utilise vraiment : variables, contrôle de flux, fonctions, tables (l'unique structure de données de Lua), manipulation de chaînes, metatables et patterns OOP, gestion des erreurs. Les bases de Lua qu'il te faut pour Roblox, Love2D ou le scripting embarqué.
- Les indices IA t'aident à débugger tes scripts Lua et à lire les erreurs sans te spoiler la réponse — du coup, les pièges classiques comme l'indexation sur nil ou les tableaux qui commencent à 1 deviennent des occasions d'apprendre.
- Certificat Lua gratuit à la fin du cours. Un vrai plus à mettre en avant à côté de tes jeux Roblox, mods ou projets de scripting embarqué.
Questions fréquentes sur l’apprentissage de Lua
À quoi sert Lua ?
Lua sert principalement de langage de script embarqué dans des applications plus larges, surtout des moteurs de jeu. Le scripting Roblox (Luau est un dialecte de Lua propre à Roblox), Love2D, les addons de World of Warcraft, Defold et Garry's Mod utilisent tous Lua. En dehors des jeux, Lua sert aussi à la configuration, à l'automatisation et aux systèmes embarqués.
Le Lua est-il facile à apprendre ?
Lua fait partie des langages de programmation les plus petits et les plus simples — le manuel de référence complet tient dans un court PDF, et il y a globalement une seule structure de données principale (la table). La plupart des débutants font tourner leur premier programme Lua dès la première heure. Les parties plus délicates (metatables, closures, coroutines) viennent plus tard et sont introduites progressivement.
Faut-il apprendre Lua pour Roblox ?
Oui. Lua (et plus précisément le dialecte Luau utilisé par Roblox) est le seul langage de scripting pour les jeux Roblox. Le cours Lua couvre les bases du langage sur lequel Luau s'appuie (variables, tables, fonctions, metatables, patterns OOP) — en le terminant, tu prends une vraie longueur d'avance sur le scripting Roblox.
Combien de temps faut-il pour apprendre Lua ?
Les bases de Lua — variables, conditionnelles, boucles, fonctions, tables — te demandent une à deux semaines de pratique quotidienne. Te sentir à l'aise avec les metatables, les closures et les patterns OOP en Lua prend en général deux à quatre semaines de plus. Ensuite, appliquer Lua dans Roblox ou un autre moteur de jeu, c'est une courbe d'apprentissage à part, qui s'ajoute au langage lui-même.
Est-ce que je peux apprendre Lua en ligne gratuitement ?
Oui. Le cours interactif de Lua est gratuit — leçons, exercices de code, quiz et certificat. Lua tourne côté serveur, donc tu n'as rien à installer localement, ni Lua ni le moindre moteur de jeu, pour commencer à coder.
Est-ce que j'obtiens un certificat à la fin du cours Lua ?
Oui. En terminant le cours Lua, tu obtiens un certificat de complétion gratuit, à ajouter à ton CV ou à partager sur LinkedIn avec les jeux Roblox, mods ou projets de scripting que tu as créés.