.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
string
URL of the JSON schema for this file. Written automatically by
glua init and the VS Code commands.string[]
Globals provided by addons outside this workspace, e.g.
["ULib", "ulx", "pac"]. Declaring them stops undefined-global firing on every use.Diagnostics
Per-rule severities — see below. Rules can also be suppressed inline with
-- glua-ignore <rule>.object
A subset of
.gluafmtrc.json’s options — see below. A .gluafmtrc.json file, if present, wins over this.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.
boolean
default:"true"
Turns every diagnostic on or off at once.
severity
default:"warning"
severity
default:"warning"
severity
default:"hint"
severity
default:"warning"
severity
default:"warning"
severity
default:"warning"
severity
default:"information"
severity
default:"warning"
severity
default:"warning"
severity
default:"warning"
severity
default:"off"
severity
default:"warning"
severity
default:"off"
missing-asset. Needs workspace.gamePath — a VS Code setting, not a .glua.json property.severity
default:"warning"
severity
default:"off"
severity
default:"hint"
"open" | "workspace"
default:"open"
Whether to report problems only in open files, or in every indexed file.
workspace
integer, minimum 1
Maximum Lua files to index. The CLI’s own
--max-files flag, when given, wins over this.string[]
Directory names to skip while indexing.
string[]
Source trees for frameworks this project uses but does not contain (ULib, DarkRP, Wiremod). Indexed for what they define and never reported on. Absolute, or relative to this file. See Frameworks and Libraries.
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
boolean
default:"true"
Insert parentheses and tab stops for parameters when completing a function.
inlayHints
boolean
default:"true"
Show parameter names inline at call sites of known API functions.
hover
boolean
default:"true"
Include a link to the Garry’s Mod wiki in hover documentation.
overrides
An array of objects, applied in order — later entries win when two overrides
match the same file.
string[]
required
Glob patterns relative to this file’s directory, e.g.
lua/vendor/**. At least one entry.Diagnostics
Severities to apply to matching files, same shape as the top-level
diagnostics object — see above.string[]
Extra globals available only in matching files.