Journey
Lua lernen
Ein kostenloser, interaktiver Online-Kurs für Lua. In jeder Lektion schreibst du selbst Lua — Syntax, Tables, Funktionen, Metatables und die Grundlagen, die du für Roblox-Scripting und Arbeit mit Game Engines brauchst — mit KI-Hinweisen, wenn mal wieder irgendwo ein nil auftaucht, und einem kostenlosen Zertifikat zum Abschluss.
52,312+ codders eingeschrieben
- Anfängerfreundlich
KI-gestützte Coding-Hilfe
Praktische, interaktive Lektionen
Audio-Erzählung in jeder Lektion
Quizfragen zum Wissenstest
Kostenloses Abschlusszertifikat
Lehrplan
Abschnitt 1
Fundamentals
Abschnitt startenStartenAusklappenEinklappenThe first section in Lua for absolute beginners.Einführung
3 Lektionen216- 01Die SpracheAufgabe
- 02Hello World!AufgabeQuizAudio
- 03KommentareQuizAudio
Variablen und Datentypen
8 Lektionen754- 01Was ist eine Variable?AufgabeQuizAudio
- 02ZahlenAufgabeQuizAudio
- 03StringsAufgabeQuizAudio
- 04BooleansAufgabeQuizAudio
- 05Der Wert 'nil'AufgabeQuizAudio
- 06Die type()-FunktionAufgabeQuizAudio
- 07NamenskonventionenQuizAudio
- 08Zusammenfassung - CharakterprofilAufgabe
Operatoren 1 Arithmetik & Verkettung
6 Lektionen636- 01Arithmetische OperatorenAufgabeQuizAudio
- 02Modulo-OperatorAufgabeQuizAudio
- 03PotenzierungsoperatorAufgabeQuizAudio
- 04String-VerkettungAufgabeQuizAudio
- 05OperatorrangfolgeAufgabeQuizAudio
- 06Rückblick - Einfache BerechnungenAufgabe
Operatoren 2: Vergleichs- & Logikoperatoren
8 Lektionen651- 01GleichheitsoperatorenAufgabeQuizAudio
- 02VergleichsoperatorenAufgabeQuizAudio
- 03Der 'and'-OperatorAufgabeQuizAudio
- 04Der 'or'-OperatorAufgabeQuizAudio
- 05Der 'not'-OperatorAufgabeQuizAudio
- 06Short-Circuit EvaluationQuizAudio
- 07Truthy- und Falsy-WerteQuizAudio
- 08Zusammenfassung – Einfache LogikAufgabe
Grundlegende Ausgabe
9 Lektionen954- 01Literale ausgebenAufgabeQuizAudio
- 02Variablen ausgebenAufgabeQuizAudio
- 03Mehrere Werte ausgebenAufgabeQuizAudio
- 04Strings & Variablen kombinierenAufgabeQuizAudio
- 05Die tostring() FunktionAufgabeQuizAudio
- 06EingabeAufgabeQuizAudio
- 07CastAufgabeQuizAudio
- 08Wiederholung - StatusberichtAufgabe
- 09Wiederholung - Bis 120Aufgabe
Projekt: Charakter-Stats Anzeige
Projekt5 Lektionen1- 01WillkommensnachrichtAufgabe
- 02Charakter-Stats deklarierenProjekt
- 03Basis-Stats anzeigenProjekt
- 04Ein Boolean-Flag hinzufügenProjekt
- 05Abschließende ZusammenfassungProjekt
Grundlagen der bedingten Logik
4 Lektionen423- 01Die if-then-AnweisungAufgabeQuizAudio
- 02Die if-then-else-AnweisungAufgabeQuizAudio
- 03Die elseif-AnweisungAufgabeQuizAudio
- 04Zusammenfassung – SchatzkisteAufgabe
Grundlagen der String-Manipulation
6 Lektionen638- 01string.len()AufgabeQuizAudio
- 02string.upper & string.lowerAufgabeQuizAudio
- 03string.sub()AufgabeQuizAudio
- 04string.rep()AufgabeQuizAudio
- 05string.find()AufgabeQuizAudio
- 06Wiederholung - Benutzernamen formatierenAufgabe
Grundlagen der Funktionen
6 Lektionen636- 01Eine Funktion deklarierenAufgabeQuizAudio
- 02Eine Funktion aufrufenAufgabeQuizAudio
- 03Funktionen mit ParameternAufgabeQuizAudio
- 04Funktionen mit mehreren ParameternAufgabeQuizAudio
- 05Die 'return'-AnweisungAufgabeQuizAudio
- 06Zusammenfassung - FlächenrechnerAufgabe
Tabellen Teil 1: Listen-Stil
8 Lektionen752- 01Was ist eine Tabelle?QuizAudio
- 02Eine Tabelle erstellenAufgabeQuizAudio
- 03Zugriff auf Elemente per IndexAufgabeQuizAudio
- 04Elemente per Index ändernAufgabeQuizAudio
- 05Der Längenoperator '#'AufgabeQuizAudio
- 06table.insert()AufgabeQuizAudio
- 07table.remove()AufgabeQuizAudio
- 08Zusammenfassung - Gruppenmitglieder verwaltenAufgabe
Tabellen 2: Dictionary-Stil
7 Lektionen648- 01Schlüssel-Wert-PaareQuizAudio
- 02Dictionary-Stil Tabellen erstellenAufgabeQuizAudio
- 03Zugriff – KlammerschreibweiseAufgabeQuizAudio
- 04Zugriff mit PunktnotationAufgabeQuizAudio
- 05Paare hinzufügen und ändernAufgabeQuizAudio
- 06Paare mit nil entfernenAufgabeQuizAudio
- 07Wiederholung – ElementeigenschaftenAufgabe
Schleifen-Grundlagen
6 Lektionen636- 01Die while-SchleifeAufgabeQuizAudio
- 02Die repeat-until-SchleifeAufgabeQuizAudio
- 03Die numerische for-SchleifeAufgabeQuizAudio
- 04for-Schleife mit SchrittweiteAufgabeQuizAudio
- 05Die 'break'-AnweisungAufgabeQuizAudio
- 06Zusammenfassung - CountdownAufgabe
Projekt: Einfacher Zaubertrank-Laden
Projekt6 Lektionen1- 01Projekt-SetupAufgabe
- 02Einen Trank hinzufügenProjekt
- 03Das Inventar anzeigenProjekt
- 04Gesamten Lagerwert berechnenProjekt
- 05Einen bestimmten Trank findenProjekt
- 06Einen Trank verkaufenProjekt
Gültigkeitsbereich von Variablen
5 Lektionen330- 01Globale VariablenQuizAudio
- 02Lokale VariablenAufgabeQuizAudio
- 03Warum lokale Variablen verwenden?QuizAudio
- 04Gültigkeitsbereich und BlöckeAufgabeQuizAudio
- 05Rückblick – Scope-RätselAufgabe
Abschluss-Herausforderungen
3 Lektionen3- 01Wiederholung – SpielerzugAufgabe
- 02Wiederholung – Einfache DatenbankAufgabe
- 03Wiederholung – Summe gerader ZahlenAufgabe
Abschnitt 2
Logic & Flow
Abschnitt startenStartenAusklappenEinklappenDevelop problem-solving skills and create dynamic, interactive programsFortgeschrittene Table-Iteration
4 Lektionen423- 01Iterieren mit pairs()AufgabeQuiz
- 02Iterieren mit ipairs()AufgabeQuiz
- 03pairs() vs. ipairs()AufgabeQuiz
- 04Zusammenfassung – CharakterbogenAufgabe
Weitere Funktionen der Table-Bibliothek
5 Lektionen430- 01table.concat()AufgabeQuiz
- 02Tabellenerstellung & unpack()AufgabeQuiz
- 03table.sort()AufgabeQuiz
- 04Benutzerdefiniertes Sortieren mit FunktionenQuiz
- 05Rückblick – Highscore-TabelleAufgabe
Fortgeschrittene Funktionskonzepte
6 Lektionen539- 01Mehrere RückgabewerteQuiz
- 02Variadische Funktionen (...)AufgabeQuiz
- 03Funktionen als First-Class ValuesAufgabeQuiz
- 04Anonyme FunktionenAufgabeQuiz
- 05Was ist eine Closure?AufgabeQuiz
- 06Zusammenfassung – Einfacher Event HandlerAufgabe
Einführung in Metatables
8 Lektionen757- 01Was ist eine Metatable?Quiz
- 02setmetatable & getmetatableAufgabeQuiz
- 03Die __index-MetamethodeAufgabeQuiz
- 04Die __newindex-MetamethodeAufgabeQuiz
- 05Die __tostring-MetamethodeAufgabeQuiz
- 06Arithmetische Metamethoden Teil 1AufgabeQuiz
- 07Arithmetische Metamethoden Teil 2AufgabeQuiz
- 08Zusammenfassung – Schreibgeschützte TabellenAufgabe
Projekt: Text-Adventure-Engine
Projekt8 Lektionen1- 01Projekt-Setup: Der RaumAufgabe
- 02Räume verknüpfenProjekt
- 03SpielerzustandProjekt
- 04Die Game-LoopProjekt
- 05Benutzereingaben verarbeitenProjekt
- 06Den Spieler bewegenProjekt
- 07Ungültige Spielzüge verarbeitenProjekt
- 08Ausgänge anzeigenProjekt
Fehlerbehandlung
3 Lektionen216- 01Die error()-FunktionQuiz
- 02Geschützte Aufrufe mit pcall()AufgabeQuiz
- 03Zusammenfassung – Sichere DivisionAufgabe
Fortgeschrittene String-Manipulation
6 Lektionen641- 01string.gsub() für ErsetzungenAufgabeQuiz
- 02Einführung in String-PatternsAufgabeQuiz
- 03string.find()AufgabeQuiz
- 04string.match()AufgabeQuiz
- 05Iterieren mit string.gmatch()AufgabeQuiz
- 06Rückblick – Log-File-ParserAufgabe
Projekt: Kontaktliste
Projekt7 Lektionen1- 01Projekt-SetupAufgabe
- 02Die HauptschleifeProjekt
- 03Einen Kontakt hinzufügenProjekt
- 04Alle Kontakte auflistenProjekt
- 05Nach einem Kontakt suchenProjekt
- 06Einen Kontakt löschenProjekt
- 07Ungültige Eingaben verarbeitenProjekt
Coroutines für Anfänger
7 Lektionen638- 01Was ist eine Coroutine?Quiz
- 02coroutine create & resumeAufgabeQuiz
- 03Pausieren mit coroutine.yield()AufgabeQuiz
- 04resume & yieldAufgabeQuiz
- 05Coroutine-Status prüfenAufgabeQuiz
- 06Wiederholung – ZahlengeneratorAufgabe
- 07Wiederholung – VektormathematikAufgabe
Abschnitt 3
Object Oriented Programming
Abschnitt startenStartenAusklappenEinklappenDiscover how to organize code with classes, objects, and reusable structuresDas 'self'-Konzept
5 Lektionen532- 01Tabellen mit FunktionenAufgabeQuiz
- 02Explizites 'self'AufgabeQuiz
- 03Die Doppelpunkt-SyntaxAufgabeQuiz
- 04Punkt vs. DoppelpunktAufgabeQuiz
- 05Zusammenfassung – Beweglicher PunktAufgabe
Klassen-Prototyp-Muster
6 Lektionen641- 01Das Prototyp-KonzeptAufgabeQuiz
- 02Verknüpfung mit __indexAufgabeQuiz
- 03Der :new()-KonstruktorAufgabeQuiz
- 04Attribute initialisierenAufgabeQuiz
- 05Unabhängige InstanzenAufgabeQuiz
- 06Zusammenfassung – AutofabrikAufgabe
Objektzustand und -verhalten
7 Lektionen748- 01InstanzvariablenAufgabeQuiz
- 02Getter-MethodenAufgabeQuiz
- 03Setter-MethodenAufgabeQuiz
- 04Berechnete EigenschaftenAufgabeQuiz
- 05Strings formatierenAufgabeQuiz
- 06GleichheitsprüfungenAufgabeQuiz
- 07Zusammenfassung – StudentennoteAufgabe
Projekt: Digitale Bank
Projekt7 Lektionen1- 01Projekt-SetupAufgabe
- 02EinzahlungsmethodeProjekt
- 03AuszahlungsmethodeProjekt
- 04Kontostand abrufenProjekt
- 05KontoinformationenProjekt
- 06Geld überweisenProjekt
- 07Abschließender Bank-TestProjekt
Operatorüberladung in OOP
5 Lektionen531- 01Objekte addierenAufgabeQuiz
- 02Objekte subtrahierenAufgabeQuiz
- 03Objekte verkettenAufgabeQuiz
- 04Objekte vergleichen (<, >)AufgabeQuiz
- 05Rückblick – Wallet-MathematikAufgabe
Grundlagen der Vererbung
6 Lektionen643- 01Das Vererbungs-SetupAufgabeQuiz
- 02Methoden vererbenAufgabeQuiz
- 03Den Konstruktor erweiternAufgabeQuiz
- 04Child-Methoden hinzufügenAufgabeQuiz
- 05Gemeinsam vs. EinzigartigAufgabeQuiz
- 06Zusammenfassung - Formen-HierarchieAufgabe
Polymorphie & Überschreiben
6 Lektionen640- 01Methoden überschreibenAufgabeQuiz
- 02Elternmethoden aufrufenAufgabeQuiz
- 03Duck TypingAufgabeQuiz
- 04Gemeinsames InterfaceAufgabeQuiz
- 05Typ prüfenAufgabeQuiz
- 06Rückblick - MitarbeiterrollenAufgabe
Kapselung
6 Lektionen644- 01NamenskonventionenAufgabeQuiz
- 02Closures für private DatenAufgabeQuiz
- 03Zugriff über ClosuresAufgabeQuiz
- 04Schreibgeschützte TabellenAufgabeQuiz
- 05ValidierungslogikAufgabeQuiz
- 06Zusammenfassung – Sicherer TresorAufgabe
Komposition & Mixins
6 Lektionen642- 01Has-A-BeziehungAufgabeQuiz
- 02DelegationAufgabeQuiz
- 03Einfache MixinsAufgabeQuiz
- 04Anwendung mehrerer MixinsAufgabeQuiz
- 05Mixins vs. VererbungAufgabeQuiz
- 06Zusammenfassung – Roboter-MontageAufgabe
Projekt: Formen-Manager
Projekt7 Lektionen1- 01Projekt-SetupAufgabe
- 02Rechteck-KlasseProjekt
- 03Kreis-KlasseProjekt
- 04Umfang-MethodeProjekt
- 05Formen-SammlungProjekt
- 06GesamtflächeProjekt
- 07Formen filternProjekt
Entwurfsmuster (Lite)
5 Lektionen532- 01Factory-FunktionenAufgabeQuiz
- 02Singleton-TabelleAufgabeQuiz
- 03Iterator-MusterAufgabeQuiz
- 04Observer (Listener)AufgabeQuiz
- 05Wiederholung – Logger-FactoryAufgabe
Abschluss-Herausforderungen
4 Lektionen4- 01Wiederholung - InventarsystemAufgabe
- 02Wiederholung - BenutzerverwaltungAufgabe
- 03Wiederholung - Score-TrackerAufgabe
- 04Finaler OOP-CheckAufgabe
Warum Lua mit Coddy lernen
- Echten Lua-Code im Browser ausführen. Kein Lua-Interpreter zu installieren, kein Toolchain-Setup. Jede Lektion führt dein Lua-Skript serverseitig aus und zeigt die Ausgabe sofort an.
- Lua, wie es wirklich eingesetzt wird: Variablen, Kontrollfluss, Funktionen, Tables (Luas einzige echte Datenstruktur), String-Manipulation, Metatables und OOP-Muster, Fehlerbehandlung. Die Lua-Grundlagen, die du für Roblox, Love2D oder Embedded-Scripting brauchst.
- KI-Hinweise helfen dir beim Debuggen von Lua-Skripten und beim Lesen von Fehlermeldungen, ohne die Lösung zu verraten – so werden typische Stolperfallen wie nil-Indexierung und 1-basierte Arrays zu Lernmomenten.
- Kostenloses Lua-Zertifikat, wenn du den Kurs abschließt. Ein glaubwürdiges Signal neben Roblox-Spielen, Mods oder Embedded-Scripting-Projekten, die du gebaut hast.
Häufige Fragen zum Lernen von Lua
Wofür wird Lua verwendet?
Lua wird vor allem als eingebettete Skriptsprache in größeren Anwendungen eingesetzt, insbesondere in Game Engines. Roblox-Scripting (Luau ist ein Roblox-spezifischer Lua-Dialekt), Love2D, World-of-Warcraft-Addons, Defold und Garry's Mod nutzen alle Lua. Außerhalb von Spielen kommt Lua auch für Konfiguration, Automatisierung und Embedded Systems zum Einsatz.
Ist Lua einfach zu lernen?
Lua gehört zu den kleineren, einfacheren Programmiersprachen – das komplette Referenzhandbuch passt in ein kurzes PDF, und im Grunde gibt es nur eine zentrale Datenstruktur (die Tabelle). Die meisten Anfänger schreiben ihr erstes funktionierendes Lua-Programm schon in der ersten Stunde. Die kniffligeren Themen (Metatables, Closures, Coroutines) kommen später und werden Schritt für Schritt eingeführt.
Sollte ich Lua für Roblox lernen?
Ja. Lua (genauer gesagt der Luau-Dialekt, den Roblox verwendet) ist die einzige Skriptsprache für Roblox-Spiele. Der Lua-Kurs deckt genau die Sprachgrundlagen ab, auf denen Luau aufbaut (Variablen, Tables, Funktionen, Metatables, OOP-Muster) — wer ihn abschließt, hat beim Roblox-Scripting einen echten Vorsprung.
Wie lange dauert es, Lua zu lernen?
Die Lua-Grundlagen – Variablen, Bedingungen, Schleifen, Funktionen, Tabellen – schaffst du mit täglicher Übung in ein bis zwei Wochen. Bis du dich mit Metatables, Closures und OOP-Mustern in Lua wohlfühlst, dauert es meist weitere zwei bis vier Wochen. Lua dann tatsächlich in Roblox oder einer anderen Game-Engine einzusetzen, ist eine eigene Lernkurve obendrauf.
Kann ich Lua online kostenlos lernen?
Ja. Der interaktive Lua-Kurs ist kostenlos – Lektionen, Programmieraufgaben, Quizze und ein Zertifikat. Lua läuft serverseitig, du musst also weder Lua noch eine Game-Engine lokal installieren, um loszulegen.
Bekomme ich nach dem Lua-Kurs ein Zertifikat?
Ja. Wenn du den Lua-Kurs abschließt, bekommst du ein kostenloses Abschlusszertifikat, das du in deinen Lebenslauf aufnehmen oder auf LinkedIn teilen kannst – zusammen mit Roblox-Spielen, Mods oder Scripting-Projekten, die du gebaut hast.