A material language for Unreal Engine
DreamShaderLang
Describe materials in .dsm / .dsf / .dsh source files. The DreamShader plugin parses them inside the editor and builds standard UMaterial, UMaterialFunction and Material Layer assets. The source is the authoring surface; the asset is build output, and can always be thrown away and regenerated.
Shader(Name="DreamMaterials/M_Minimal"){ Properties = { vec3 Tint = vec3(1.0, 0.2, 0.2); } Settings = { Domain = "UI"; ShadingModel = "Unlit"; } Outputs = { vec3 Color; Base.EmissiveColor = Color; } Graph = { Color = Tint; }}builds /Game/DreamMaterials/M_Minimal
Workflow
From source file to material asset
Asset declarations describe the Unreal output, Graph describes the node connections, and Function / GraphFunction hold reusable Custom-node logic. Saving compiles, and generation is idempotent.
Source
.dsm / .dsf / .dsh files describe materials, function assets, shared helpers and package dependencies. import inlines the whole closure into one text before parsing.
Compile
The plugin parses declarations and Graph code, builds MaterialExpression nodes, Custom nodes and function assets, and maps diagnostics back to the line you actually wrote.
Asset
The generator writes UMaterial, UMaterialFunction, Material Layer and Layer Blend assets. Under the default backend the material lives in memory only.
Tooling
Plugin, editor extensions, package distribution
Four pieces share one grammar and one diagnostics channel: Unreal parses and generates, the editor extensions handle completion and navigation, and packages ship reusable libraries.
DreamShader plugin
Parses sources in Unreal, generates assets, and exports bridge diagnostics plus MaterialExpression metadata.
VSCode extension
Completion, hover, go to definition, signature help, diagnostics, material preview, package commands and templates.
Rider plugin
JetBrains file type, PSI parser, highlighting, completion, navigation, diagnostics and inlay hints.
Packages
Ship reusable .dsh libraries through the @scope/name directory convention and pin dependency sources for teams.
Documentation
Enter the docs from here
The homepage is for orientation; the docs hold the full reference. Pick the entry that matches the task you are doing now.
Getting started
Install the plugin, write a first material, and learn the save-and-compile loop.
Language reference
File model, lexical rules, top-level blocks, sections, types, functions and imports.
The Graph language
Statements, expressions, conversions, if / else, calls — and what Graph is not.
Diagnostics
Every error and warning, with cause and fix, plus the current limitations.
Examples
Common patterns, and complete sources you can copy as they are.
Changelog
Release notes for the plugin, the VSCode extension and this site.