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

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.
Workspace
Indexing limits and dependency source trees — see below.
Completion
Completion behaviour — see below.
InlayHints
Inline hints shown alongside your code — see below.
Hover
Hover documentation behaviour — see below.
Override[]
Per-path rule overrides, applied in order; later entries win — see below.

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:"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.
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

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.
boolean
default:"true"
Hide API members that cannot exist in the current file’s realm.

inlayHints

boolean
default:"true"
Show parameter names inline at call sites of known API functions.
boolean
default:"false"
Show the inferred realm at the top of each file.

hover

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.