Skip to main content

Build checks

A failed check stops the build with the compiler's own message, which the ui-compiler filter relays unchanged, because those messages already name the fix.

CheckWhat fails
RootA tree that starts with something other than <Screen>, <Form> or <Container>; more than one element at a form's root; a <Container> naming neither entity nor block, or naming both
ShapeA screen that adds, drops or reorders a cell when its state changes
Live textA <Text> whose string changes with no maxLength; the message names each string it saw and the length it needs
Carried visibilityA visible that moves on a container screen, which bakes it
LooksA prop that changes with state on an element the host draws itself — a press, a slot, a live string, a live image or a list — naming each prop and the values it saw; or an element taking more than 63 looks on a container screen
Static<Screen static> on a screen that carries a live value or runs a handler of its own, naming which
TransA tag left open or closed out of order, a placeholder in a <Trans> string, a <Text> component setting more than color and shadow, a press inside a press, or a component that is neither
CanvasContent laid out past 320 × 210, with the size it measured
MechanismA component the screen's host has no mechanism for — a slider or a dropdown outside a modal, a slot outside a container screen
UnsupportedA control with no compiled form at all, listing what is supported
Face rulesA face carrying a binding that reads a host, an image without keep_ratio: false, a label that does not say whether it localizes, two siblings of one name, a reference or source_control_name that resolves to nothing
PlacementA host that moved a control while standing its mechanism in, with the face's rect and the host's
Shared facesA control that changes at runtime, or one needing a definition of its own, baked inside a button's face
NamesTwo screens with the same name; a name or namespace outside letters, digits, _ and -
Face collisionTwo screens of one addon sharing a face name with different contents
HostA screen naming an entity or block that has no definition under BP/entities or BP/blocks; two screens naming the same host
Block capacityA block-hosted screen needing more than 54 container slots
Crafting tableA block-hosted screen naming a block that declares minecraft:crafting_table
NamespaceNo namespace setting and no manifest: { creator, pack } in the register call
Import timeA module that reaches for the game while being evaluated

An entry that throws on the way to its core.register() call is a warning, not a failure: the addon gets none of the screens that follow from declaring, and the reason is printed rather than leaving a pack that builds clean with none of its app screens in it.