DreamFXLang
Diagnostics

Diagnostics

How to read a DFXnnnn diagnostic, which pipeline stage each family belongs to, and where to find the generated code catalog.

Every DreamFX diagnostic is a DFXnnnn carrying a file, line and column:

DFX/Effects/NS_Hello.dfs(31,17): error DFX3003: Module 'GravityForce' has no input named 'Gravty'.
Did you mean 'Gravity'? Available inputs: Gravity, CoordinateSpace
Log categoryLogDreamFX
Severitieserror / warning / info — all three are really used
Positionevery code carries file, line and column
In the editora failed build toasts with an Open in VSCode link straight to the line and column

The leading digit is the stage that raised it. That is both a reading cue and a pointer at where to look:

RangeStageMeans
DFX1xxxDriver and file I/Othe file could not be read, or the lexer stopped
DFX2xxxLexer and syntaxthe grammar: braces, semicolons, keywords
DFX3xxxDeclarations and structurethe syntax is fine, but a declaration disagrees with the real asset
DFX4xxxValues, types and expressionssomething on the right of an =
DFX5xxxGeneration and asset writingwriting the asset failed, or a deliberate degradation is being announced
DFX6xxxNiagara compilationthe asset was written and Niagara itself objects
DFX7xxxProvenance, drift and lintthe asset and the source are out of step, or lint sees a hazard
DFX8xxxDecompilerexport, Adopt, round-trip gaps

Note:

Half of these pages are machine-written: severity, message template and raise sites are scanned out of the plugin sources, and gen-diagnostics.ps1 -Check is the gate that stops them drifting. The human half — cause and fix — is written once. See ci.ps1 and gates.

The order to debug in

Look the code up

Use the generated code index or a family page below. Codes are stable: DFX3003 is always the same failure mode.

Check against the real signature

dfx.ps1 schema <Module> -Stack <Stack> prints the input signature as the build sees it — static switches included. The authority on names is the asset, not memory.

Still wrong? Read the limits

Limits lists what is not covered and the 1.0.0 known issues.

Lookup by code

The complete code index is generated from the current plugin sources. It owns the severity and message table; this guide links to that catalog instead of maintaining a second copy.

DFX1xxx — Driver and file I/O

Read the DFX1xxx reference for current messages, causes and fixes.

DFX2xxx — Lexer and syntax

Read the DFX2xxx reference for current messages, causes and fixes.

DFX3xxx — Declarations and document structure

Read the DFX3xxx reference for current messages, causes and fixes.

Older links to DFX3045 remain available as a historical entry.

DFX4xxx — Values, types and expressions

Read the DFX4xxx reference for current messages, causes and fixes.

DFX5xxx — Generation and asset writing

Read the DFX5xxx reference for current messages, causes and fixes.

Older links to DFX5099 explain the former grouping limitation.

DFX6xxx — Niagara compilation

Read the DFX6xxx reference for current messages, causes and fixes.

DFX7xxx — Provenance, drift and lint

Read the DFX7xxx reference for current messages, causes and fixes.

DFX8xxx — Decompiler

Read the DFX8xxx reference for current messages, causes and fixes.

On this page