Diagnostics
Diagnostics Every DFXnnnn code — how to read one, which pipeline stage each family belongs to, and a lookup table by code.
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 category LogDreamFXSeverities error / warning / info — all three are really usedPosition every code carries file, line and column In the editor a 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:
Range Stage Means DFX1xxxDriver and file I/O the file could not be read, or the lexer stopped DFX2xxxLexer and syntax the grammar: braces, semicolons, keywords DFX3xxxDeclarations and structure the syntax is fine, but a declaration disagrees with the real asset DFX4xxxValues, types and expressions something on the right of an = DFX5xxxGeneration and asset writing writing the asset failed, or a deliberate degradation is being announced DFX6xxxNiagara compilation the asset was written and Niagara itself objects DFX7xxxProvenance, drift and lint the asset and the source are out of step, or lint sees a hazard DFX8xxxDecompiler export, Adopt, round-trip gaps
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 tables below, or the family page. Codes are stable: DFX3003 is always the same failure mode.
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.
Limits lists what is not covered and the 1.0.0 known issues.
Code Severity Message DFX1000 error Could not read source file '%s'. DFX1001 error Unterminated string literal. DFX1002 error Unterminated block comment. DFX1003 error Unexpected character '%c' (U+%04X). DFX1004 error Unterminated raw block: missing '}'. DFX1005 error Unterminated back-quoted name. A name must close on the same line.
Code Severity Message DFX2000 error Unknown document type '%s'. Expected System, Emitter, Module or DynamicInput. DFX2001 error Expected '{' to open a raw block but found '%s'. DFX2002 error Expected a name but found %s. DFX2003 error Expected a number but found '%s'. DFX2004 error Expected a value but found %s. DFX2005 error '#EndRegion' has no matching '#Region'. DFX2006 error Unknown directive '#%s'. Expected Region or EndRegion. DFX2007 error Expected a version after '@'. DFX2008 error Module '%s' was given a positional argument. Module inputs must be written as 'Name = Value'. DFX2010 warning '#Region "%s"' was never closed with '#EndRegion'. DFX2013 error '%s' is a system-scope stack and must be written at the top level of a .dfs, not inside an emit… DFX2015 error 'from' must be followed by a quoted path to a .dfe source file. DFX2016 error (built at runtime) DFX2018 error A Module or DynamicInput must declare a 'Body = { }' block. DFX2019 error Header argument '%s' must be a quoted string. DFX2020 error Unknown curve key attribute '%s'. Expected Interp, Tangent, Arrive or Leave. DFX2021 error File declares '%s' but its extension is '%s'. Rename the file to '%s' or change the declaration. DFX2022 error Unexpected '%s' after the end of the document. A DreamFX file declares exactly one top-level ob… DFX2023 error '%s' is a module call, so it cannot be given a type. Types are written only on assignments. DFX2024 error 'disabled' can only prefix a module call, and '%s' is an assignment. DFX2025 error Unknown OnEvent argument '%s'. Expected Source, Event, Mode, SpawnNumber, MaxEventsPerFrame, Up… DFX2026 error Unknown Stage argument '%s'. Expected Iteration, DataInterface, NumIterations, ExecuteBehavior…
Code Severity Message DFX3000 error (built at runtime) DFX3001 error (built at runtime) DFX3002 error Could not read the input schema of module '%s': %s DFX3003 error Module '%s' has no input named '%s'.%s Available inputs: %s DFX3004 error Unknown renderer type '%s'. Expected one of SpriteRenderer, MeshRenderer, RibbonRenderer, Light… DFX3005 error Emitter '%s' is declared more than once. Emitter names are stable keys and must be unique. DFX3006 error '%s' is neither an allowed inline function (%s) nor a dynamic input: %s DFX3007 error Could not read the input schema of dynamic input '%s': %s DFX3008 error Dynamic input '%s' has no input named '%s'. Available inputs: %s DFX3009 error Dynamic input '%s' is pinned to version %s, which its asset does not offer. Available version(s… DFX3010 error Property '%s': %s DFX3020 error Unknown %s setting '%s'. Available settings: %s DFX3021 error User parameter '%s' is declared more than once. DFX3030 error A Module or DynamicInput must declare Settings.Usage -- it decides which stacks the module can… DFX3031 error A DynamicInput must declare Settings.Output -- its return type cannot be inferred from the body. DFX3032 error A DynamicInput's Usage must be DynamicInput, not '%s'. DFX3033 error Input '%s' is declared more than once. DFX3034 error Input '%s' is marked [StaticSwitch] but is a %s. A static switch must be a bool, an int or an e… DFX3035 error Input '%s' is a [StaticSwitch], so its default must be a compile-time constant. DFX3036 error The Body block is empty. DFX3037 error (built at runtime) DFX3038 error '%s' is not a stack a module can be placed in. Use one of: %s. DFX3039 error A DynamicInput cannot return a data interface; its Output must be a value type. DFX3040 error (built at runtime) DFX3041 error '%s' could not be parsed; see the errors above. DFX3042 error '%s' declares a %s, but 'from' needs an Emitter document. DFX3043 error '%s' reads user parameters this system does not declare: %s. Add them to the Properties block. DFX3044 error The default for input '%s' has to be a literal or an enum entry. A module input default is stor… DFX3045 error '%s' is not a type a particle attribute can have. DFX3046 error '%s' is not a particle attribute DreamFX knows the type of. Write the type at its first use in… DFX3047 error A DynamicInput computes a value; it cannot write '%s'. Move the write into a Module.
Code Severity Message DFX4001 error Input '%s' expects %s, but a number was written. DFX4002 error Expression for '%s': a vector literal must have 2 to 4 components. DFX4003 error Input '%s' is an integer, but %s was written. Narrowing is not implicit -- write int(%s) if tru… DFX4004 error Input '%s' has no resolvable Niagara type. DFX4005 error Property '%s': component %d is not a number. DFX4006 error Input '%s' is a %s, which has no entry named '%s'. Valid entries: %s DFX4007 error Input '%s' expects %s. '%s' is neither a literal of that type nor a parameter reference -- para… DFX4010 error Input '%s' is set more than once on dynamic input '%s'. DFX4020 error Parameter '%s': 'Object' needs an inner type, e.g. Object<Texture>. DFX4021 error Parameter '%s': no UObject class named '%s'. Object<> takes a class name such as Object<Texture… DFX4022 error Cannot infer the type of '%s' from its value. A first assignment to a new attribute must use a… DFX4023 error Property '%s': box() takes 6 numbers -- minX, minY, minZ, maxX, maxY, maxZ. DFX4024 error Cannot type '%s = %s': the type of '%s' is not known here. Declare it in Properties, or assign… DFX4025 error '%s' is not a valid assignment target. Parameter names are namespace-qualified, e.g. Particles.… DFX4026 error 'Bind %s -> %s': the target must be a qualified parameter -- either a namespace such as Particl… DFX4027 error '%s' is %s, but '%s' is %s. Linking binds a parameter directly -- there is no conversion. Decla… DFX4028 error Default for '%s' needs a declared type. A default has no module signature to infer one from, so… DFX4029 error Default for '%s' must be a literal, an enum or another parameter. A dynamic input computes a va… DFX4030 error The hlsl block for '%s' must be a single expression: no statements, no local variables, no retu… DFX4031 error '%s' is not an allowed inline function. Allowed: %s. Anything else belongs in a .dfm dynamic in… DFX4032 error '%s' in the expression for '%s' is not a parameter. Only namespace-qualified parameters (User.X… DFX4033 error Builtin '%s' takes positional arguments, not named ones. DFX4034 error Builtin '%s' takes %d argument(s), but %d were written. DFX4035 error Expression for '%s' contains a value that has no HLSL form. DFX4036 error The hlsl block for '%s' is empty. DFX4037 error '%s' is %s; a curve { } literal only fits a curve data interface input. DFX4038 error The curve for '%s' has no keys. DFX4039 error Unknown curve interpolation '%s'. Expected Auto, Cubic, Linear or Constant. DFX4040 error Parameter '%s': no asset at '%s'. DFX4041 error Parameter '%s': '%s' is a %s, which is not a %s. DFX4042 error Unknown curve tangent mode '%s'. Expected Auto, User, Break or None. DFX4091 error Input '%s': dynamic inputs, hlsl blocks, curves and inline expressions are not available yet (p…
Code Severity Message DFX5001 error Stack '%s' has no Niagara script usage mapping. DFX5002 warning This system declares no emitters, so it will produce nothing. DFX5003 info '%s' is not declared in this source, so its existing modules are left as-is: %s DFX5004 info No Material was set, so the engine default was applied: %s. Write 'Material = "...";' to choo… DFX5030 error SavePackage failed for '%s'. DFX5031 error Emitter '%s' declares more than one OnEvent block. Only one event handler per emitter is repres… DFX5032 error Emitter '%s' declares two Stage blocks named '%s'. Stages are identified by name; rename one. DFX5033 error Emitter '%s' declares Stage blocks but simulates on the CPU. Simulation stages are a GPU featur… DFX5034 error Emitter '%s' uses 'as %s' on two module calls. Node names are unique per emitter; rename one. DFX5093 error 'MaterialParam' is reserved syntax and is not implemented in v1 (plan section 7). DFX5097 error Only System documents can be generated right now; this file declares a %s. DFX5098 error Data interface parameter '%s' takes its configuration as a quoted JSON object, the form the dec… DFX5099 info [Group] and [SortPriority] are kept in source only: the external edit API's user variable struc… DFX5100 error '%s' is a %s with no generated asset at '%s', and %s DFX5101 error (built at runtime) DFX5102 info Input '%s' is marked [StaticSwitch]. Tier-one generation (plan 3.3) lowers the whole Body to a… DFX5103 error Package '%s' exists on disk but could not be loaded. DFX5104 error Package '%s' exists but holds no Niagara script named '%s'. Refusing to overwrite it. DFX5105 error Could not create package '%s'. DFX5106 error Could not wire the module graph. The Niagara schema rejected a parameter map connection. DFX5107 error '%s' no longer matches the module asset at '%s', and this build cannot regenerate it. Rebuild i…
Code Severity Message DFX6001 error (built at runtime) DFX6002 warning (built at runtime) DFX6003 error (built at runtime) DFX6004 warning (built at runtime) DFX6005 error Niagara compilation of '%s' did not succeed (status %s). DFX6006 error Niagara could not compile the body of '%s': %s DFX6007 info Nothing in this source writes that parameter, so there is no graph parameter for a default to s… DFX6008 error '%s' finished its compile with stale scripts: %s. The compiled VM was not rebuilt from the grap…
Code Severity Message DFX7001 error Asset '%s' carries no DreamFX provenance stamp: it was never generated from this source, or it… DFX7002 error Asset '%s' is stale: it was generated from a different revision of this source. Run the DreamFX… DFX7003 warning Asset '%s' was generated by DreamFX %s; the current generator is %s. A rebuild is recommended. DFX7004 error Asset '%s' does not exist: this source has never been built. DFX7005 error (built at runtime) DFX7101 warning Emitter '%s' simulates on the GPU but declares no FixedBounds. GPU emitters cannot compute thei… DFX7102 warning Emitter '%s' spawns by rate ('%s') with no upper bound. Set AllocationMode = Fixed and PreAlloc… DFX7103 warning Emitter '%s' uses randomness ('%s') but does not set Determinism = true, so it will look differ… DFX7104 warning This renderer has no Material and DreamFX knows no default for its type, so it will not draw. S…
Code Severity Message DFX8000 error Cannot decompile a null system. DFX8001 error Could not read emitters: %s DFX8002 warning Skipping emitter '%s': %s DFX8003 error Cannot decompile a null emitter. DFX8004 error Could not create a host system to read the emitter through: %s DFX8005 error Could not copy emitter '%s' into a host system: %s DFX8006 error Could not read emitter '%s': %s DFX8010 error '%s' cannot be adopted: '%s' has no DreamFXLang form yet, so adopting would destroy it on the f… DFX8011 error '%s' is already generated by an existing source, so a second one would silently overwrite it on… DFX8012 error '%s' was adopted, but re-exporting the rebuilt asset does not reproduce this file. First differ… DFX8013 error This file sits in the decompiled output directory but Name="%s" builds '%s', outside the '%s/… DFX8014 warning Emitter '%s' inherits from '%s'. The export flattens the inheritance: the merged stack is carri… DFX8015 warning Emitter '%s' carries %d event handler(s) this export cannot represent%s. The rebuilt emitter wi… DFX8016 warning Emitter '%s' carries %d simulation stage(s) this export cannot represent (custom stage class or…