# Luau + Roblox > From first script to shipped game Read the levels in order. Every page has samples to run, exercises with solutions, and links to the official docs. ## Table of Contents ### Start - [How to use this course](/how-to-use-this-course.md): How to read the course in order, what each level covers, and the conventions every sample follows. ### Level 0 : Getting started - [Introduction](/getting-started/introduction.md): What programming is, how code runs, how to read errors, and how to break problems into steps. - [Studio and Environment](/getting-started/studio-and-environment.md): Tour Roblox Studio, the client-server model, and the tools you will use, without setup yet. - [Your First Script](/getting-started/first-script.md): Print your first lines, run a script in Studio, read output, and fix your first errors. ### Level 1 : Programming fundamentals - [Variables and Values](/programming-fundamentals/variables-and-values.md): Store values in variables, name them well, and trace what each line does. - [Operators and Logic](/programming-fundamentals/operators-and-logic.md): Arithmetic, comparisons, boolean logic, and truthiness rules that surprise beginners. - [Conditionals and Loops](/programming-fundamentals/conditionals-and-loops.md): Branch with if, repeat with while and for, and keep every loop safe. - [Functions and Scope](/programming-fundamentals/functions-and-scope.md): Define and call functions, pass arguments, return values, and master scope. - [Tables, Part 1](/programming-fundamentals/tables-part-1.md): Arrays, dictionaries, nesting, iteration, and mutation in the table you will use everywhere. - [Strings, Numbers, and Nil](/programming-fundamentals/strings-numbers-nil.md): Text, numbers, and nil, plus equality and conversion pitfalls to avoid. - [Debugging Basics](/programming-fundamentals/debugging-basics.md): Read diagnostics, trace with print, isolate bugs, and decode common error messages. ### Level 2 : Core Luau - [Syntax and Control Flow](/luau-basics/syntax-and-control-flow.md): Statements versus expressions, if-expressions, closures, and recursion in idiomatic Luau. - [Tables in Depth](/luau-basics/tables-in-depth.md): References versus copies, cloning, freezing, and the full table library without mutation hazards. - [Strings and Libraries](/luau-basics/strings-and-libraries.md): Interpolation, patterns, and the string and math libraries for everyday text and numbers. - [Advanced Functions](/luau-basics/functions-advanced.md): Closures with state, callbacks, variadics, multiple returns, and pcall basics. - [Modules and Require](/luau-basics/modules-and-require.md): Split code into modules, share them with require, and avoid circular dependency traps. - [Metatables and OOP](/luau-basics/metatables-and-oop.md): Customize tables with metamethods, build class-like objects, and prefer composition. - [Errors and Defensive Code](/luau-basics/errors-and-defensive-code.md): Raise and catch errors cleanly, validate input, and write readable contracts. ### Level 3 : Roblox fundamentals - [DataModel and Instances](/roblox-fundamentals/datamodel-and-instances.md): Navigate the DataModel tree, use properties and events, and manage object lifecycles. - [Scripts and Execution](/roblox-fundamentals/scripts-and-execution.md): Script, LocalScript, ModuleScript, and RunContext rules for where each one runs. - [Services and Events](/roblox-fundamentals/services-and-events.md): Reach Engine services with GetService and react to the world with events. - [Task and Async](/roblox-fundamentals/task-and-async.md): Schedule work with the task library, yield safely, and avoid race conditions. - [Players and Characters](/roblox-fundamentals/players-and-characters.md): Handle joining players, characters, respawn, and display-only leaderstats. - [Remotes and Networking](/roblox-fundamentals/remotes-and-networking.md): Send events and requests across the client-server boundary without common mistakes. - [Server Authority](/roblox-fundamentals/server-authority.md): Trust nothing from clients. Validate every input in layers, server-side. - [UI and Input](/roblox-fundamentals/ui-and-input.md): Build client UI with ScreenGuis, scale-and-offset layout, buttons, and one input action that works on keyboard, touch, and gamepad. ### Level 4 : Intermediate engineering - [Patterns and Boundaries](/intermediate/patterns-and-boundaries.md): One-job modules, service and controller shapes, and rules for dependency direction. - [State and Data](/intermediate/state-and-data.md): Model data, respect serialization limits, persist with DataStores, and validate input shapes. - [Async and Concurrency](/intermediate/async-and-concurrency.md): Spawn versus defer, timeouts, rate limiting, cleanup, and race-condition fixes. - [Rojo Project Structure](/intermediate/rojo-project-structure.md): Filesystem-first workflow, project files, realms, and the core Rojo commands. ### Level 5 : Strict typing - [Annotations and Inference](/strict-typing/annotations-and-inference.md): Label types where it pays, let inference do the rest, and shape tables precisely. - [Modes](/strict-typing/modes.md): Strict, nonstrict, and nocheck compared, plus when each mode genuinely fits. - [Narrowing and Guards](/strict-typing/narrowing-and-guards.md): Prove unknown values safe with guards, optionals, and exhaustive unions. - [Casts and Assertions](/strict-typing/casts-and-assertions.md): Convert between related types safely, and remodel instead of sprinkling any. - [Generics](/strict-typing/generics.md): Write functions and aliases that stay precisely typed for every caller. - [Subtyping and Compatibility](/strict-typing/subtyping-and-compatibility.md): Structural typing, sealed tables, width subtyping, and compatibility rules. - [Type Packs and Variadics](/strict-typing/type-packs-and-variadics.md): Type variable arguments, multiple returns, and forwarding wrappers end to end. - [Solver and Migration](/strict-typing/solver-and-migration.md): How the solver generations differ and how to migrate files gradually. - [Diagnosing Errors](/strict-typing/diagnosing-errors.md): Read expected-versus-got errors and fix the nine most common type failures. ### Level 6 : Advanced production - [Architecture](/advanced/architecture.md): Services, controllers, shared modules, and data ownership with dependency direction that holds. - [Packages](/advanced/packages.md): Prefer maintained packages over hand-rolls, evaluate them, and respect realm rules. - [Security and Production](/advanced/security-and-production.md): Layered validation, exploit case studies with fixes, failure handling, and debugging live games. - [Performance](/advanced/performance.md): Measure first, fix algorithmic costs and allocations, and know when not to optimize. ### Level 7 : Language evolution - [Implemented RFCs](/rfcs/implemented.md): How to read RFC status, what is implemented, and what is still unavailable. - [Syntax RFCs](/rfcs/syntax.md): The story behind interpolation, compound assignment, if-expressions, iteration, and const. - [Generics and Packs RFCs](/rfcs/generics-and-packs.md): Named arguments, typed variadics, pack aliases, defaults, and explicit instantiation explained. - [Type System RFCs](/rfcs/type-system-rfcs.md): Sealed tables, never and unknown, casts, and attributes with edge cases. - [Type Functions RFCs](/rfcs/type-functions.md): Type-level Luau, indexed access helpers, and metatable modeling for library authors. - [Stdlib and Config RFCs](/rfcs/stdlib-and-config.md): New math, vector, and buffer functions plus requires, config files, and error suppression. ### Tooling - [Testing](/tooling/testing.md): Design testable code and verify it with framework-free assert harnesses. - [Debugging Workflows](/tooling/debugging-workflows.md): Trace output, bisect failures, reproduce in Play, and read stack traces. - [Format Lint and Version Control](/tooling/format-lint-version-control.md): Format with StyLua, lint with Selene, and version Rojo projects with git. - [Shipping Checklist](/tooling/shipping-checklist.md): Ship a Roblox experience: test-place discipline, API access rules, pre-publish checks, budget smoke tests, and post-publish monitoring. ### Level 8 : Integration projects - [Utility Library Project](/projects/utility-library.md): Build and test a typed shared library with results, retries, and rate limiting. - [Coin Pickup Mechanic](/projects/gameplay-mechanic.md): Ship a server-authoritative coin pickup that resists teleport and spam exploits. - [Jump Pad System](/projects/service-controller-system.md): Wire a jump-pad feature across service, controller, and shared config cleanly. - [Validated Shop Protocol](/projects/client-server-protocol.md): Design a validated shop protocol with idempotency and server reconciliation. - [Player Data System](/projects/data-system.md): Persist per-player data with caching, autosave, and versioned shapes. - [Capstone Briefs](/projects/capstones.md): Three independent design briefs with acceptance criteria to prove your skills. ### Reference - [Glossary](/glossary.md): Definitions for every technical term used across the Luau course, each linked to its teaching page. - [References](/references.md): Where to verify every claim in the course, grouped by job, from Engine reference to tooling docs.