Skip to main content
.glua.json is validated against glua.bluejutzu.dev/schemas/glua.schema.json, the same schema glua init and GLua: Create Linter Config File point $schema at. This page documents every property it accepts. For a shorter, example-first walkthrough see Config Files.
The schema sets additionalProperties: false at every level shown below, so a typo’d key is flagged in your editor rather than silently ignored.

Top level

format

Only these keys have any effect here: maxLineWidth, quoteStyle, operatorStyle, commentStyle, spaceInsideParens, keepSingleLineBlocks, maxBlankLines, semicolons. The schema does not reject the rest of .gluafmtrc.json’s keys here, but useTabs, indentSize and endOfLine are silently ignored when written inside .glua.json — indentation and line endings come from your editor (or .editorconfig) instead. Put those two in an actual .gluafmtrc.json file if you need to pin them for the whole team.

diagnostics

Every property accepts a severity"error", "warning", "information", "hint" or "off" — except enable and scope, which are about how the server runs rather than any one rule. See the rule reference for what each rule actually catches; the settings key here is the same one shown under each rule there.
Use the settings key, not the diagnostic code, here. "net-payload-mismatch": "error" is not a valid entry — the key is netReadWriteMismatch. Codes are for the Problems panel and for -- glua-ignore; see Suppressions for why the two names differ.

workspace

workspace.gamePath completes and checks asset paths against a full Garry’s Mod install. It is not part of this schema — set it as the VS Code setting glua.workspace.gamePath instead, described on the Asset Paths page.

completion

inlayHints

hover

overrides

An array of objects, applied in order — later entries win when two overrides match the same file.