The file model
The shape every DreamFXLang file shares — header, blocks, statements, comments, attributes — and an index of the eight L rules.
DreamFXLang reference
The language, split by what you are writing. Where a rule exists because the engine forced it —
why the stack is a statement list, why the expression whitelist is short, why #Region is only a
comment — the page says so where the rule is stated.
| Page | Covers |
|---|---|
| dfs.md | .dfs — a system: user parameters, system stacks, emitters, renderers |
| dfe.md | .dfe — a reusable emitter, and what from does to it |
| system-inheritance.md | .dfs source parents, overrides, dependency rebuilding, and cycle errors |
| native-emitter-inheritance.md | Native Niagara emitter parents with inherits |
| dfm.md | .dfm — a module or dynamic input, and which engines can generate one |
| values.md | Every value position, the type rules, and the eight L* rules by name |
Shape of every file
One top-level object, declared with the same header everywhere:
<Kind>(Name="<path under the root>", Root="<root token>")
{
...
}Kind is System, Emitter, Module or DynamicInput, and has to agree with the file extension
(DFX2021). Root is Game, empty (the same thing), or Plugin.<PluginName>; Name is the asset
path relative to that root's content directory.
Systems additionally accept Parent="../Base.dfs" for source inheritance.
An emitter declaration can use inherits "/Game/FX/NE_Base" for a
native Niagara parent. Emitter from keeps its source-copy semantics;
edits to the .dfe rebuild dependent systems through the source watcher.
Blocks are Name = { ... }, statements end in ;, and // and /* */ are comments.
Attributes hang off a declaration in brackets: [ Group="Burst"; SortPriority=10 ].
Inside Properties / Inputs, Group("Name") { ... } scopes stamp those two attributes onto
every parameter they contain — see dfs.md.
What is deliberately not here
MaterialParam. Reserved (L8), not implemented (DFX5093).- Anything that would need a general expression compiler. See L6 in values.md.
What DreamFX is
What it does and does not do, and the stances that run through all of it — the text is the truth, a gap must be visible, a menu is not a second implementation.
.dfs — a system
System settings, user parameters, module calls and assignments in the six stacks, Defaults, renderers and bindings, and referencing a .dfe.