Learn Luau
A free, interactive Luau course - the gradually typed Lua dialect created at Roblox and used by every Roblox game. You write real Luau on every lesson: type annotations, typed tables, unions, literal types, generics, strict mode - with AI hints when a type error stops you and a certificate when you finish. It's the fourth section of the Lua journey, so the Lua foundations that Luau builds on are one click away.
68,940+ codders enrolled
73 lessons57 challenges420 quiz questions
- Beginner friendly
AI-assisted coding help
Hands-on interactive lessons
Audio narration on every lesson
Quizzes to test your knowledge
Free certificate of completion
Syllabus
This section is part of the Lua Journey. The full syllabus has more sections - click any preview below to view it on the Journey page.
- Section 1Fundamentals90 lessons
- Section 2Logic & Flow54 lessons
- Section 3Object Oriented Programming70 lessons
Section 4
Introduction To Luau
Start sectionStartExpandCollapseTake your Lua skills further with Luau - Lua with a gradual type system. Learn type annotations, typed tables, unions, generics and more, and catch bugs before your code even runs.Getting Started with Luau
5 lessons232Core Types
7 lessons748Typed Tables: Arrays & Maps
9 lessons863Working with Functions
8 lessons856Aliases, Unions, Intersections
7 lessons748Typing Table Shapes
8 lessons755Project: Typed Task Manager
Project6 lessons1Enums, the Luau Way
6 lessons539Generics: A First Look
6 lessons539Project: Generic Inventory
Project5 lessons1Advanced Topics
6 lessons640
Learn by Doing
Write real code, query databases, build websites, and master AI prompts. Our interactive lessons cover every skill modern developers need.
Build Your Coding Streak
Stay consistent and watch your progress grow! Track your daily coding habit, protect your streak with freeze days, and earn rewards for showing up every day.
12 days streak
Return tomorrow to keep your streak!
January 2026
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
21
22
23
24
25
26
27
28
29
30
Double or Nothing
Day 5 of 7
Streak Freeze
2 left
Code Anywhere, Anytime
Take your coding journey on the go! No setup, no downloads - just open and start coding. Available on iOS, Android and Web with 4.9 star ratings.
You're Not Alone in This
Compete on global leaderboards, invite friends to earn rewards, and celebrate each other's wins. Coding is better with friends!
Every way to learn
Read, listen, test yourself, ask the AI, or look up anything you've already covered. Every lesson meets you where you are.
A variable is a named container that stores a value you can reference later in your program.
In Python, you create one by writing the name, an equals sign, then the value you want to store.
The value can change over time - reassigning the name simply points it to a new value.
Prove Your Skills
Earn certificates for every course you complete. Add them to your LinkedIn profile and resume to showcase your coding expertise to employers.
Why learn Luau with Coddy
- Run Luau in your browser. No Roblox Studio, no local build of the
luauCLI, no editor plugin - write typed code and see both the output and the type errors instantly. - The type system, in small steps: annotations,
any/unknown/never, optional types with?, typed arrays and maps, function types, type aliases, unions and intersections, literal types, table shapes, enums, generics, and type guards. - Luau-only syntax you won't find in plain Lua: string interpolation with backticks, compound assignment (
+=,..=),continue,if ... then ... elseexpressions, generalized iteration, andtable.freeze. - AI hints explain what a Luau type error is actually telling you without handing over the fix, so the next one is easier to read on your own.
Frequently asked questions about learning Luau
What is Luau?
What is the difference between Lua and Luau?
local hp: number = 100, type aliases, unions, generics, and three checking modes (--!nocheck, --!nonstrict, --!strict). Luau also adds string interpolation with backticks, compound assignment operators like += and ..=, continue, if ... then ... else expressions, floor division //, generalized iteration, and functions like table.freeze. For sandboxing it drops loadstring, loadfile and dofile. Ordinary Lua code generally runs unchanged as Luau.Do I need to know Lua before learning Luau?
Is Luau the same as Roblox scripting?
game, workspace, Instance.new, events, and services). This course teaches the language itself - the part that transfers to any Luau project and the part that trips people up when they start reading real Roblox code. Lessons run standalone Luau in the browser, so the Roblox engine API isn't available here; once the language clicks, the Roblox API is documentation you look up, not a language you relearn.Is Luau's type system like TypeScript's?
local x: number, type Point = { x: number, y: number }, (number) -> string for function types) and Luau infers a lot without annotations. Coming from TypeScript, you'll be productive within a lesson or two.Can I learn Luau online for free?
luau runtime is built into the browser editor, so nothing to install and nothing to configure before your first typed function.