Menu
Coddy logo textTech
lua iconPart of the Lua JourneyJourney

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
  • sparkles iconAI-assisted coding help
  • hint iconHands-on interactive lessons
  • volume On iconAudio narration on every lesson
  • quiz iconQuizzes to test your knowledge
  • certificate iconFree certificate of completion

Syllabus

1 sections2 projects73 lessons57 challenges420 quiz questions

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.

  1. Section 1Fundamentals90 lessons
  2. Section 2Logic & Flow54 lessons
  3. Section 3Object Oriented Programming70 lessons
  4. 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 lessons232

    Core Types

    7 lessons748

    Typed Tables: Arrays & Maps

    9 lessons863

    Working with Functions

    8 lessons856

    Aliases, Unions, Intersections

    7 lessons748

    Typing Table Shapes

    8 lessons755

    Enums, the Luau Way

    6 lessons539

    Generics: A First Look

    6 lessons539

    Project: Generic Inventory

    Project5 lessons1

    Advanced Topics

    6 lessons640
What you get
Everything you'll use to learn to code

Learn by Doing

Write real code, query databases, build websites, and master AI prompts. Our interactive lessons cover every skill modern developers need.

playground.js
Code Editor
1const greeting = "Hello, Coddy!"
2function sayHi(name) {
3    return greeting + " " + name
4}
5
bottombar Collapse icon
Test #1test Case Success icon
Test #2test Case Success icon
Test #3test Case Failure icon
Input
"Alex"
Output
"Hello, Coddy! Alex"

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!

fire Filled icon
left icon

January 2026

right icon

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

product Double Or Nothing icon

Double or Nothing

Day 5 of 7

fire Freeze icon

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.

Python
7Streak
250Score
5Energy
Variables
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Right Done icon
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Left Done icon
journey Hex Active Base iconjourney Hex Active Shadow iconjourney Hex Active Top iconjourney Lesson Theory Challenge icon
CONTINUE
journey Path Right icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson Theory Challenge icon
journey Path Left icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson All icon
Journey
Goals
Leaderboard
Profile
4.9
StarStarStarStarStar
Rating

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!

Challenger League
Challenger LeagueTop 7 advance
leaderboard First icon1
avatar 1 icon
fire Filled icon
Alex7+ Days
2840
leaderboard Second icon2
avatar 2 icon
fire Filled icon
Jordan7+ Days
2650
leaderboard Third icon3
avatar 3 icon
fire Filled icon
Sam7+ Days
2420
4
avatar 4 icon
Casey
2180
5
avatar placeholder icon
fire Filled icon
Morgan7+ Days
1950
leaderboard Arrow Up iconPromotion zoneleaderboard Arrow Up icon

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.

Intro to Variables
Audio

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.

1xSarah

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.

CoddyCertificate of Completion
This certifies thatJohn Doehas successfully completed
PythonPython Fundamentals
Verified
DateJan 2026
LinkedInAdd to LinkedIn

Why learn Luau with Coddy

  • Run Luau in your browser. No Roblox Studio, no local build of the luau CLI, 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 ... else expressions, generalized iteration, and table.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?

Luau is a programming language derived from Lua 5.1, created and open-sourced by Roblox. It keeps Lua's syntax and speed but adds a gradual type system, so you can annotate as much or as little of your code as you like. It's the language every Roblox game is scripted in, and it's also used standalone as a fast, embeddable scripting language.

What is the difference between Lua and Luau?

Luau is a superset of Lua 5.1 with a few removals. The big addition is types: 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?

Yes - Luau is Lua with types on top, so tables, functions, metatables, and scoping are the same. That's why this section is the fourth part of the Lua journey: take the Fundamentals, Logic & Flow, and OOP sections first, or jump straight here if you're already comfortable with Lua.

Is Luau the same as Roblox scripting?

Luau is the language; Roblox scripting is the language plus the Roblox engine API (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?

The idea is the same - optional static types layered on a dynamic language, checked before your code runs - and many concepts carry over: unions, generics, literal types, narrowing. The syntax differs (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?

Yes. The whole Luau section is free - lessons, coding exercises, projects, quizzes, and the certificate. The luau runtime is built into the browser editor, so nothing to install and nothing to configure before your first typed function.
Coddy programming languages illustration

Learn Introduction To Luau with Coddy

GET STARTED