How each tool is chosen
Each tool is picked in order of priority:
| Tool | In order |
|---|---|
| Lute | LUAU_RUN_LUTE_EXE; your [projects.'<folder>'.paths] lute; the project’s [tools] lute; your [paths] lute; your [tools] lute; Luau Run’s own Lute. |
| Supervisor | LUAU_RUN_SUPERVISOR_EXE; your [projects.'<folder>'.paths] supervisor; your [paths] supervisor; Luau Run’s own. |
| Roblox Studio | LUAU_RUN_STUDIO_EXE; your [projects.'<folder>'.paths] studio; your [paths] studio; the installed Studio Luau Run finds. |
| Rojo | LUAU_RUN_ROJO_EXE; your [projects.'<folder>'.paths] rojo; the project’s Rokit or Aftman pin, in its folder or a folder above it; your [paths] rojo; your own Rokit or Aftman pin, in ~\.rokit\rokit.toml or ~\.aftman\aftman.toml; a rojo on PATH. |
| Jest for Roblox Studio | LUAU_RUN_JEST_ROBLOX_ROOT; your [projects.'<folder>'.paths] jest-roblox; your [paths] jest-roblox; the copy inside luau-run.exe. |
| Jest-Portable version | The project’s [tools] jest-portable; the version Luau Run carries. |
luau-run doctor shows where each tool came from.
Roblox Studio lane lists where
Luau Run looks for Studio.
- A path names the program, or a folder holding it under its usual name:
lute.exe,luau-run-windows-supervisor.exe,rojo.exe, andRobloxStudioBeta.exeorRobloxStudio.exefor Studio. - A path you name is final. If nothing is there, Luau Run refuses the run instead of trying the next place.
- When a path replaces a Lute or Rojo the project pins, or names a Lute that Luau Run does not know, every run prints a notice.
- A Rojo that is a tool manager’s launcher is refused, and so is a Foreman pin.
Pin Rojo with Rokit, or name the
rojo.exeprogram itself. - A supervisor you name must be the build Luau Run pins. To run one you built, see The supervisor’s pin.
Environment variables
Section titled “Environment variables”| Variable | What it does |
|---|---|
LUAU_RUN_HOME |
Moves the home: bin, the store, the cache, the records and your config.toml. A full path, with a drive letter, to a folder that exists. See Where Luau Run keeps things. |
LUAU_RUN_CACHE_ROOT |
Moves the cache alone. A full path, with a drive letter. The folder need not exist yet. |
LUAU_RUN_LUTE_EXE |
The Lute to run. |
LUAU_RUN_SUPERVISOR_EXE |
The supervisor to run. |
LUAU_RUN_STUDIO_EXE |
The Roblox Studio to run. |
LUAU_RUN_ROJO_EXE |
The Rojo that builds Studio places. |
LUAU_RUN_JEST_ROBLOX_ROOT |
Jest for Roblox Studio, for a build that does not carry it: the pinned jest-portable-studio-<version>.zip, or a folder holding its unpacked files. |
LUAU_RUN_LUAU_EXE, LUAU_RUN_LUNE_EXE, LUAU_RUN_PESDE_EXE |
A program a project command uses in place of the one the project pins. |
LUAU_RUN_NO_UPDATE_NOTICE |
1 turns the update notice off. |
LUAU_RUN_INSTALL_YES, LUAU_RUN_INSTALL_NO_PATH, LUAU_RUN_INSTALL_NO_SETUP, LUAU_RUN_INSTALL_UNINSTALL |
The install script’s options. |
An empty variable counts as unset. Luau Run also reads NO_COLOR and
FORCE_COLOR for colour. When CI is set, progress = "auto" prints no
lines, the spinner and the update notice are off, and a refusal prints as a
JSON object.
© 2026 PRMS Developer