DreamShaderLang
Reference

UE Node Entry Reference

UE.* material node creation entrypoints available in Graph and Properties.

UE.* calls create Unreal material expression nodes. Use specific helper calls when available, and fall back to UE.Expression(...) for unsupported node classes.

Graph Calls

Graph = {
    float t = UE.Time();
    float2 uv = UE.TexCoord(Index=0);
}

UE.TexCoord

float2 uv = UE.TexCoord(Index=0);

Use this for texture coordinate nodes.

UE.Time

float t = UE.Time();

Use this for time-driven animation and procedural effects.

UE.Panner

float2 moved = UE.Panner(Coordinate=uv, Time=t, SpeedX=0.1, SpeedY=0.0);

This creates a panner-style node when supported.

Transform

Transform helpers depend on the reflected Unreal metadata available to the plugin and editor extension. Use completion and hover to inspect supported parameters.

Dynamic MaterialExpression Metadata

The DreamShader plugin can export reflected MaterialExpression metadata to:

Saved/DreamShader/Bridge/material-expressions.json

The VSCode extension reads this file for completion, hover, and signature help. It also ships with a fallback manifest when bridge metadata is unavailable.

Generic UE.Expression

Use UE.Expression(...) when no shorthand exists:

float pulse = UE.Expression(
    Class="Sine",
    OutputType="float1",
    Input=t);
FieldMeaning
ClassUnreal MaterialExpression class name or reflected node class.
OutputTypeDreamShaderLang output type, such as float1, float2, float3, float4.
named inputsNode inputs or properties.

UE.CollectionParam

Use Material Parameter Collection values when supported by project metadata:

float Wind = UE.CollectionParam(Collection=Path("/Game/MPC_Global.MPC_Global"), ParameterName="Wind");

UE.StaticSwitchParameter

bool UseTint = UE.StaticSwitchParameter(Name="UseTint", DefaultValue=true);

Static switches are useful when the branch should compile as a static material choice.

Properties UE.*

Some UE.* entries can be used in Properties for explicit parameter nodes or reflected Unreal expression nodes.

Generic Property Nodes

When using generic property nodes, keep class names and output types explicit so the compiler and editor diagnostics can validate the call.

On this page