Appearance
Glossary
Written: 2026-10-14
Short definitions for terms used across the course. Each term links to the page that teaches it where one exists.
AnchorPoint: A Vector2 from 0, 0 to 1, 1 picking which point of a GuiObject sits at its Position. See UI and input.
Annotation: A type label you write on a variable, parameter, or return, such as x: number. See annotations.
API: The named operations something offers. A ModuleScript's API is the table it returns.
Argument: A value you pass to a function call. Parameters receive them.
Array: A table used with consecutive integer keys starting at 1. See tables.
Assertion: A check that stops the program with an error when it fails, via assert.
Attribute (Luau): A @name tag before a function that adjusts compiling or analysis, such as @native. Distinct from Instance attributes.
Attribute (Instance): Custom data attached to an Instance in Studio, replicated to clients. See DataModel.
BindableEvent: A same-side Engine event for script-to-script signals without crossing the network.
Bootstrap: The small entry script that wires a project together and starts everything in order, with no game logic of its own.
Callback: A function you hand to other code so it can call you back later, such as an event connection.
Cast: An assertion between related types with ::. See casts.
Client: A player's device and its copy of the experience. Never trusted with authority. See client-server.
Closure: A function that remembers variables from the scope where it was defined. See scope.
Comm: The codebase's networking package: the server binds functions and signals, the client uses them, instead of hand-built remotes.
ContextActionService: Binds one named action across keyboard, gamepad, and touch, with an automatic touch button. See UI and input.
Controller: A client-side module owning rendering and input intent for one feature. See patterns.
DataModel: The tree of Instances that makes up a place. See DataModel.
DataStore: Roblox cloud key-value storage for persistence. See state and data.
Deprecated: Still present but officially discouraged, with a replacement named in the deprecated inventory.
Dictionary: A table used with non-sequential keys.
Discriminated union: A union whose members carry a tag field so branches can narrow on it. See narrowing.
Engine: The Roblox runtime itself: Instances, services, physics, replication.
Event: An object you connect functions to with :Connect(); the functions run when the event fires.
Exhaustiveness: Handling every member of a union so the leftover branch is never.
Freeze: table.freeze makes a table read-only permanently. Shared modules return frozen tables.
Generic: A function or alias parameterized by types, such as f<T>. See generics.
Humanoid: The object inside a character Model driving health, movement, and life state. See players.
Inference: Types the checker figures out without annotations. See annotations.
Instance: One node in the DataModel, such as a Part or Script. Everything visible or runnable descends from it.
Intersection: A type satisfying two types at once, written A & B.
Janitor: The codebase's cleanup package: one object collects connections and threads, then releases them together.
Lint: Automated style/correctness checks without running code (Selene). Distinct from formatting (StyLua) and type checking.
LocalScript: A script that runs on the client only, in client containers. See execution.
Lune: A standalone Luau runtime for running scripts outside Studio. See testing.
MarketplaceService: Sells developer products and passes; receipts validate on the server only. See server authority.
MemoryStore: Fast temporary cross-server storage with expiry, for queues and matchmaking rather than saves.
MicroProfiler: The frame-time profiler: orange bands are simulation work, blue bands are rendering. See performance.
Metatable: A table that customizes another table's behavior through metamethods. See metatables.
Metamethod: A double-underscore hook such as __index or __call.
ModuleScript: A script that runs when required and returns one value, cached per side. See modules.
Narrowing: The checker shrinking a broad type after a check. See narrowing.
never: The bottom type, inhabited by nothing; marks unreachable branches. See type system.
Optional: A type that includes nil, written T?.
OrderedDataStore: A DataStore that keeps integer values sorted for leaderboards, with sorted paging.
Pack (type): A reusable group of types for variadic positions, such as T.... See packs.
Parameter: A named placeholder in a function definition. Arguments fill them.
PlayerGui: Each player's personal UI container; StarterGui copies land here on spawn. See UI and input.
Parent: The Instance a thing lives under. Assigned last when constructing Instances.
pcall: Protected call: runs a function, returns success plus result instead of erroring. Mandatory around DataStore calls.
ProcessReceipt: The server callback that grants developer-product purchases; only it proves payment. See server authority.
ProfileStore: The community session-locking data package this course mirrors conceptually. See state and data.
Promise: A chaining async package; the course prefers task pipelines and covers it as an alternative. See packages.
Realm: Which side may load a package: shared (Packages) or server-only (ServerPackages).
Remote: A RemoteEvent or RemoteFunction crossing the client-server boundary. See remotes.
Replication: The Engine copying state from server to clients.
Require: Loading a ModuleScript's return value with require().
Ripple: A tweening package alternative to raw TweenService. See packages.
RunContext: A property deciding whether a Script runs on server or client.
ScreenGui: The root container for 2D interface screens. See UI and input.
Script: A script running on the server (or per RunContext), in server containers.
Sealed table: A table whose shape is fully known, allowing width subtyping. See subtyping.
Selene: The Luau linter for correctness checks without running code. See format, lint.
Server: The authoritative host of an experience. See server authority.
Service (codebase): A server-side module owning one feature's state and validation. See patterns.
Service (Engine): A singleton object obtained with game:GetService, such as Players or Workspace.
Shared module: A pure frozen module both sides may require: config, ids, types, constants only.
Signal: The codebase's same-side event package.
Singleton type: A type with exactly one value, such as true or "ready".
Solver: The part of Luau that checks types. See solver.
Strict mode: --!strict: the checker verifies everything. See modes.
StarterGui: The edit-time UI container replicated into each PlayerGui on spawn. See UI and input.
Streaming: Instance streaming sends nearby content first so large places load fast.
StyLua: The deterministic Luau formatter. See format, lint.
Suppression: The solver's internal cascading-diagnostic behavior (not a user per-line silencer; lints suppress with --!nolint NAME at the file top, and the type checker disables only via --!nocheck, fix the root type error).
task library: The modern scheduling API: task.wait/spawn/delay/defer. See task.
TestEZ: The archived BDD test library, cited as legacy only. See testing.
Truthiness: Only nil and false count as false; 0 and "" count as true.
TweenService: Animates property values over time with easing. See services.
Type function: Luau code that computes types, running inside the new solver. See type functions.
UDim2: A 2D position or size pairing scale with pixels. See UI and input.
Union: A value of one type or another, written A | B.
unknown: The top type: everything inhabits it, so you must narrow before use. See narrowing.
Unsealed table: A table still under construction during inference. See subtyping.
Upvalue: A local from an outer scope captured by a closure.
UserInputService: Raw keyboard, mouse, touch, and gamepad input on the client. See UI and input.
Variadic: A function taking any number of trailing arguments via ....
Wally: The Luau package manager: wally.toml declares, wally.lock pins, wally install fetches.
Rojo: Filesystem-first Roblox workflow: edit in an editor, sync into Studio, build places from the command line.
Yield: Pausing a thread until something resumes it, such as task.wait() or a RemoteFunction response.