DUI6xxx · Compiling
The .dui could not be attached to its Blueprint.
Generated by scripts/diagnostics/sync.py from the plugin's code table (EDreamUIDiagnosticCode); the name on each card is the one the tests assert.
DUI6001
errorcode nameSourceFileUnreadable
The Blueprint's Source File does not exist or cannot be read.
How it happens: the compile looks the .dui up from the Source File: a relative path is searched under the project's DUI/ root and then each plugin's, a Plugin.Name: prefix names one plugin's DUI/, and an absolute path is used as written. The message gives the path you wrote, where it looked, and the roots it searched; a Plugin.Name: naming no enabled plugin with a DUI/ directory is said as such.
How to fix: put the file under a DUI/ root (not Content/), or correct the Blueprint's Source File.
DUI6002
errorcode nameEmptyTree
The file parsed and produced no tree.
How it happens: the builder handed back no hierarchy. The cause -- a node type nothing resolves, say -- was reported earlier in the same compile; this reports the outcome: there is nothing to compile into the class.
How to fix: deal with the earlier diagnostics of the same compile.
DUI6003
warningcode nameClassPathMismatch
The class line names another Blueprint than the one compiling (a warning).
How it happens: the file's class line names an asset other than the Blueprint being compiled -- a copied file whose class line was left as it was, for example. It is a warning: the line's job is a stable localization namespace, so a wrong one drifts keys rather than breaking the build, and the localization keys keep using the name in the file.
class /Game/UI/WBP_Settings
Widget Root { }How to fix: point the class line at the Blueprint being compiled; for a file deliberately shared across subclasses, the warning can stand.
DUI6004
errorcode nameEventHandlerNotFound
-> Handler naming a function the class does not have.
How it happens: the handler lives on the class this compile is building, which the builder cannot look into ahead of time, so the compiler checks it: this Blueprint has no function of that name. A wrong event, the other half of a route, is DUI5010.
Widget Confirm {
+ UIButton { OnClick -> HandleConfrm }
}How to fix: fix the name, or add the function to the Blueprint.
DUI6005
errorcode nameEventHandlerSignatureMismatch
A handler whose parameters are not the event's.
How it happens: the function exists, and its parameters are not the ones the event sends, in count or type.
How to fix: give the function the event's signature, or route to one that has it.
DUI6006
errorcode nameEachSourceNotFound
A loop source the class has neither as a function nor as a variable.
How it happens: in GetOptions() needs a no-argument function of that name on the class, in Options an array variable of that name. The source lives on the class this compile is building, so the compile checks it.
VerticalBox Options {
for Option in GetOptions() {
Text { Text <- Option.Label }
}
}How to fix: declare the function or the variable in the Blueprint, or fix the name.
DUI6007
errorcode nameEachSourceNotObjectArray
A loop source that is not an array of objects.
How it happens: the source exists and does not supply an array of objects. The item bindings read Item.Member off each element by reflection, which needs an element with members to read: TArray<UMyRow*> works, TArray<FMyRow> and TArray<int32> do not. The name is right and the type is wrong, which is why it is not DUI6006.
How to fix: have the source return an array of objects -- make each row a UObject subclass, for example.
DUI6008
errorcode namePropTypeUnknown
A props or events type with no Blueprint pin.
How it happens: the type of a prop or an event parameter is one of Text, String, Number, Integer, Bool, Color, Vector2, Asset, Class, or Enum followed by the enum's path. A misspelt type, Enum with no path, a path with no enum at it, or an enum that is not BlueprintType is this code.
props {
Float Speed = 1
}
Widget Root { }How to fix: use one of the types above (Number here); an enum must be usable as a Blueprint type.
DUI6009
errorcode namePropNameTaken
A props name another member already has with another type, or a widget's id.
How it happens: each prop becomes a variable of the class, and its name must be free: not a widget's id (every widget has a class variable of its name), a resource entry, a member this Blueprint declares, or a function of the parent. A C++ parent's property of the same name and type is used instead of declaring one; of another type, it is this code.
props {
Text Title
}
VerticalBox Root {
Text Title { Text <- Title }
}How to fix: rename one of them; to use the parent's property, declare it with that property's type.
DUI6010
errorcode nameEmitUnknownEvent
emit Name of an event this file does not declare.
How it happens: emit raises an event of its own file's events block; a name the block does not declare, or a file with no events block, is this code.
events {
Picked(Number Index)
}
Widget Row {
+ UIButton { OnClick -> emit Pickd(0) }
}How to fix: fix the event's name, or declare it in the events block.
DUI6011
errorcode nameEmitArgumentMismatch
emit arguments that are not the event's parameters.
How it happens: emit Name(…) passes as many arguments as the event declares parameters, each of a type the matching parameter can take.
events {
Picked(Number Index)
}
Widget Row {
+ UIButton { OnClick -> emit Picked() }
}How to fix: pass what the event declares, emit Picked(ValueIndex) for example.
DUI6012
errorcode nameEmitRouteUnsupported
An emit where no handler can be generated: in a loop body, or for an event Blueprints cannot carry.
How it happens: -> emit is compiled into a generated handler. The widgets of a for or each body are the loop's copies, not the class's, so no such handler can stand there; and an event whose parameters no Blueprint function can take (an FDreamUIEventDelegate of a width Blueprints have no pin for) cannot have one either. It is said rather than dropped, so the route is never silently missing.
events {
Picked(Number Index)
}
VerticalBox Options {
for Option in GetOptions() {
Widget {
+ UIButton { OnClick -> emit Picked(0) }
}
}
}How to fix: route the event to a function of the class and raise the event from there, or use an event whose parameters a Blueprint can take.
DUI6013
errorcode namePropDefaultInvalid
A props default its type cannot hold.
How it happens: a default must fit the prop's type: a quoted string for Text and String, a whole number for Integer, true or false for Bool, a hex colour for Color, a pair for Vector2, a value the enum declares, an asset that is there, a @Name naming a resource entry. The default is dropped, since a variable that would fail every binding and every host line reading it is worse than none.
props {
Integer Count = 1.5
}
Widget Root { }How to fix: give a default of the declared type, Integer Count = 1.
DUI6014
errorcode nameEventNameTaken
An events name another member of the class already answers to.
How it happens: each event becomes an event dispatcher, and its name must not already belong to a prop, a widget, a resource, a variable or function of this Blueprint, or a parent's member that is not a dispatcher of the same parameters. A parent's dispatcher of the same name and parameters is used as it is.
events {
Title
}
VerticalBox Root {
Text Title { Text = "Settings" }
}How to fix: rename the event or the other member.