Button
The label, pointer, and interaction state of the button that owns the blueprint.
Self nodes for nl.button. Each one acts on the button whose blueprint it sits in, takes no Element input, and only appears in that button's own blueprint. To reach a different button, use its counterpart in Element.
Conventions
- Reads are pure, writes are latent. Every
Getnode here isPure. EverySetnode isLatent: the write goes through the host and resolves asynchronously, and the graph waits for it. - A write that changes nothing does nothing. The host compares the incoming value against the current one and returns early when they match, so no redraw is queued and no
On Flushfires. - Boolean inputs fall back to the current value.
enabledandvisibletake no on-card literal; if nothing is wired, or the edge resolves tonull, the property is left as it is. A wired non-boolean counts as true only when it is the string"true"or"1". - Appearance lives in Displayable. Geometry, opacity, and appearance variants are set there, for every widget, not here.
- Two nodes on this page are not in the palette.
Get VariantandSet Variantwere superseded by the Displayable variant nodes and hidden. They are documented because blueprints authored before that switch still hold them and still run — not because you can add one. - None of these run inside a Blueprint Value. The
Getnodes are pure, but a Blueprint Value evaluates on awidgetValueowner and every node on this page is scoped to the button's main blueprint. To read the button from inside a Blueprint Value, place anElementliteral for it and use the Element-category reader.props.labelis itself a property a Blueprint Value can drive. - The visible and enabled nodes are two families. While the palette is browsed,
Get VisibleandGet Enabledare one row, Get Visible or Enabled, andSet VisibleandSet Enabledare Set Visible or Enabled. A search finds each node by its own name, and the ▾ beside a placed card's title switches between the two. See Node families.
Set Label
blueprint.button.setLabel · Latent
Writes the button's text. With nothing wired and the card field left empty it writes an empty string — it blanks the label rather than leaving it alone.
The label it writes shows as written in every language, ahead of a translation key, the translation of the button's own label and a Blueprint Value, until the page is opened again. The label written the first time is a change even when it equals the one on screen. The button's own label is its default value until the first write; see Interface text.
| Pin | Direction | Type | Notes |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
label | in · data | string | Accepts an on-card literal. |
Get Label
blueprint.button.getLabel · Pure
Reads the label on screen: a label written while the game runs; otherwise the words of the button's translation key, or its own label, in the player's current language; or the label a Blueprint Value or a list row's field gives.
| Pin | Direction | Type | Notes |
|---|---|---|---|
label | out · data | string |
Set Pointer
blueprint.button.setPointer · Latent
Sets the button's default mouse pointer — the same field the Mouse section of the Appearance inspector writes. There is no Get Pointer.
| Pin | Direction | Type | Notes |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — |
On-card fields
| Field | What |
|---|---|
cursor | One of auto, default, pointer, text, move, grab, grabbing, crosshair, help, wait, progress, not-allowed. |
auto is resolved at runtime rather than stored as a shape: pointer when the button can dispatch a click, default when it cannot. A button with enabled false shows not-allowed whatever you set here, so pointer changes on a disabled button are invisible until you enable it again.
Set Enabled
blueprint.button.setEnabled · Latent
false disables interaction. The button stays rendered and laid out; it stops taking clicks and switches to the not-allowed pointer.
| Pin | Direction | Type | Notes |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
enabled | in · data | boolean |
Get Enabled
blueprint.button.getEnabled · Pure
| Pin | Direction | Type | Notes |
|---|---|---|---|
enabled | out · data | boolean |
Set Visible
blueprint.button.setVisible · Latent
| Pin | Direction | Type | Notes |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
visible | in · data | boolean |
visible false removes the button and its subtree from the runtime element tree — it is not a CSS hide. The widget unmounts, this blueprint stops, and Init runs again when it comes back, so a hidden button cannot show itself: something else has to call Set Button Visible on it. Use Displayable Set Display when you want it hidden but mounted.
Get Visible
blueprint.button.getVisible · Pure
| Pin | Direction | Type | Notes |
|---|---|---|---|
visible | out · data | boolean |
Set Variant
blueprint.button.setVariant · Latent
Hidden from the palette — you cannot add this node. It is superseded by Displayable Set Variant, which picks the variant by name on the card and covers every widget that has variants. It still executes, so blueprints authored before the switch keep working.
| Pin | Direction | Type | Notes |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — |
The variant id comes from the variantId input an older document stored on the node; the current definition declares no such pin, so a freshly placed card has nothing to set. An id the button does not own raises a graph execution error; an empty id resets it to the default variant.
Get Variant
blueprint.button.getVariant · Pure
Hidden from the palette for the same reason, and it has no supported replacement: the Displayable Get Variant is hidden too, and the variant UUID this outputs is an internal persistence value that nothing in a new blueprint consumes.
| Pin | Direction | Type | Notes |
|---|---|---|---|
variantId | out · data | string | The runtime override if one is set, else the authored default, else the first variant. "" when the button has no variants. |