This is the reference for Athena’s Luau scripting environment. It documents every global the environment injects: the arguments each one takes, what it returns, how it behaves at the edges, and the errors it can raise. Every page is written against how Athena actually behaves in the current build. Where Athena is stricter or safer than the bare convention, the page says so and explains why, so you are never guessing about an edge case.

How a page is laid out

Signature

The type signature, including optional arguments and the real return shape.

Parameters and returns

Every argument and return value, typed, with the default Athena applies when an argument is omitted.

Behavior

What the function does, including the cases that only surface in actors, parallel phases, or across Lua states.

Errors

The exact message a call can raise and the condition behind it, so you can guard against the condition precisely.

The three environments

Athena works with three environments. Keeping them straight avoids most confusing script behavior.

Identity and capabilities

Code you run through Athena executes with an elevated thread identity and a capability set the game’s own scripts do not have. That identity is what lets game:HttpGet, protected-property access, and the reflection library work. It is also what the environment checks before it treats a thread as yours. See Conventions for how identity and yielding apply across the whole environment. This documentation is versioned with the Athena build it describes. Signatures and behavior can change between releases, and each page reflects the current build.