lloyAlloy on GitHub
.luaurc and .config.luau
Docs

.luaurc and .config.luau

Updated

Luau reads its settings from .luaurc, a JSON file, or from .config.luau, a Luau chunk that returns { luau = { ... } }. With both, .config.luau wins. Alloy reads and writes both the same way: languageMode and aliases are the keys it uses.

{ "languageMode": "strict", "aliases": { "alloy": "./build/alloy" } }
return { luau = { languagemode = "strict", aliases = { alloy = "./build/alloy" } } }

The language server copies the file into its mirror, and adds languagemode = "strict" when the file sets no mode, so the default stays strict.

The aliases of the file are the project's aliases. @shared/economy in a source names the folder the alias points at; the DataModel tree says where that folder lands, and the ship artifact writes the instance path (alloy doc mount). alloy init adds alloy = "./build/alloy" and strict mode when the file lacks them, and leaves every other key alone; nothing else writes to these files.

One alias name is reserved here: game. @game names the Roblox services and the DataModel path past one, so the compiler answers it, and a file that declares game is an error naming the file. @alloy is reserved in the [mount] table of alloy.toml alone, since alloy init writes it here.