NarraLeaf

Button, Container, Switch, Frame, Video

Button label and pointer, container clipping, a Switch's checked state, the Page a Frame shows, and a Video's playback, all on a wired element.

A Button's label and cursor, a Container's clipping, a Switch's checked state, the Page a Frame shows, and a Video's playback. The rules common to every Element node are in Element.

Button

Button nodes take an element:nl.button pin. Get Button Label reads the label on screen. The label Set Button Label writes shows as written in every language, ahead of a Translation key and a Blueprint Value, until the page is opened again. The Self forms are in Button.

Get Button Label

blueprint.element.button.getLabel · Pure

Reads the label on screen, in the player's current language.

PinDirectionTypeNotes
elementin · dataelement:nl.button
labelout · datastring

Set Button Label

blueprint.element.button.setLabel · Latent

Sets the button's label text.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
elementin · dataelement:nl.button
labelin · datastringAccepts an on-card literal.

Set Button Pointer

blueprint.element.button.setPointer · Latent

Chooses the button's default cursor. There is no data pin for it — the card carries the same icon dropdown as the button's Appearance inspector.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
elementin · dataelement:nl.button

On-card fields

FieldWhat
cursorAuto, Default, Pointer, Text, Move, Grab, Grabbing, Crosshair, Help, Wait, Progress, Not allowed. Auto resolves at runtime to a click cursor or the plain default depending on whether the button is clickable; a disabled button is rendered not-allowed either way.

Get Button Variant

blueprint.element.button.getVariant · Pure

The old id-based read. Kept registered so graphs that already contain it keep running; the palette does not offer it.

PinDirectionTypeNotes
elementin · dataelement:nl.button
variantIdout · datastring

Set Button Variant

blueprint.element.button.setVariant · Latent

The old id-based write, likewise hidden. It has no variantId pin — it reads a stored parameter — and there is no author-facing way to fill that parameter any more. Use Set Element Variant, which picks Variants by name.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
elementin · dataelement:nl.button

Container

Container nodes take an element:nl.container pin. The Self forms are in Container.

Get Container Clip Content

blueprint.element.container.getClipContent · Pure

Reads whether the container clips its overflowing content.

PinDirectionTypeNotes
elementin · dataelement:nl.container
clipContentout · databoolean

Set Container Clip Content

blueprint.element.container.setClipContent · Latent

Sets whether the container clips its overflowing content.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
elementin · dataelement:nl.container
clipContentin · databoolean

Get Container Variant

blueprint.element.container.getVariant · Pure

The old id-based read, hidden from the palette for the same reason as the Button pair.

PinDirectionTypeNotes
elementin · dataelement:nl.container
variantIdout · datastring

Set Container Variant

blueprint.element.container.setVariant · Latent

The old id-based write, hidden from the palette. Use Set Element Variant.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
elementin · dataelement:nl.container

Switch

Switch nodes take an element:nl.switch pin. The Self forms are in Switch; the Switch's visible and enabled pair is with the rest of that family on Displayable.

None of these dispatch the Switch's Changed, Turned On or Turned Off heads — those are for the player toggling it. A graph that writes the Switch it also listens to does not trigger itself.

Get Switch Checked

blueprint.element.switch.getChecked · Pure

PinDirectionTypeNotes
switchin · dataelement:nl.switch
checkedout · databoolean

Set Switch Checked

blueprint.element.switch.setChecked · Latent

PinDirectionTypeNotes
inin · exec—
nextout · exec—
switchin · dataelement:nl.switch
checkedin · databooleanAccepts an on-card literal.

Turn Switch On

blueprint.element.switch.turnOn · Latent

Set Switch Checked with true, as its own card so the common case reads as one word.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
switchin · dataelement:nl.switch

Turn Switch Off

blueprint.element.switch.turnOff · Latent

PinDirectionTypeNotes
inin · exec—
nextout · exec—
switchin · dataelement:nl.switch

Toggle Switch

blueprint.element.switch.toggle · Latent

Flips the state and hands back what it became, so the branch after it does not need a second read.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
switchin · dataelement:nl.switch
checkedout · databooleanThe new state.

Frame

Frame nodes take an element:nl.frame pin and act on the Frame's own target Page and params. Moving the player to a different Page is a different job, done by Go Page in App. The Self forms are in Frame.

Get Frame Target Page

blueprint.element.frame.getTargetPage · Pure

Reads the target Page's surface id, or an empty string when the Frame shows nothing.

PinDirectionTypeNotes
elementin · dataelement:nl.frame
targetSurfaceIdout · datastring

Set Frame Page

blueprint.element.frame.setTargetPage · Latent

Switches the Frame to another Page. The dropdown filters out the Page the Frame itself sits on and any Page that leads back to it, directly or through a component. This Element form finds the Frame through the wired Element node, so until the reference is connected the dropdown lists every Page. The Frame then plays its normal enter and exit animation.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
elementin · dataelement:nl.frame
propsin · datajsonWritten into the Frame's params and handed to the embedded Page as its props. Unwired, the current params are kept — this is not a clear. Optional.

On-card fields

FieldWhat
targetSurfaceIdDynamic options: the Pages this Frame may legally show. The empty option is labelled None and clears the target.

When the picked Page declares params, the card grows one input per param in front of props, as on the Self form in Frame.

Get Frame Params

blueprint.element.frame.getParams · Pure

Reads the params object handed to the embedded Page.

PinDirectionTypeNotes
elementin · dataelement:nl.frame
paramsout · datajson

Set Frame Params

blueprint.element.frame.setParams · Latent

Writes the params object. A non-object value is normalized to an empty object.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
elementin · dataelement:nl.frame
paramsin · datajson

Video

Video nodes take an element:nl.video pin named video, so they work from any graph on the page that holds a binding for a video, such as the blueprint of a skip button beside it. Each one does to the wired video what the node of the same name in Video does to its own video. The video's Playback Ended head is on the video's own blueprint.

Play Video

blueprint.element.video.play · Latent

Starts the video, resumes it from where it was paused, or plays it again from the start after it has ended.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
videoin · dataelement:nl.video

Pause Video

blueprint.element.video.pause · Latent

Pauses the video where it is.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
videoin · dataelement:nl.video

Stop Video

blueprint.element.video.stop · Latent

Pauses the video and returns it to the start of the clip.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
videoin · dataelement:nl.video

Seek Video

blueprint.element.video.seek · Latent

Moves the video to time. A playing video moved to its end runs its Playback Ended.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
videoin · dataelement:nl.video
timein · datafloatSeconds from the start of the clip. Accepts an on-card literal.

Get Video Time

blueprint.element.video.getTime · Pure

Where the video is, in seconds from the start of the clip. 0 while there is no clip on screen.

PinDirectionTypeNotes
videoin · dataelement:nl.video
timeout · datafloatSeconds.

Get Video Duration

blueprint.element.video.getDuration · Pure

How long the clip is, in seconds. 0 until the clip has loaded.

PinDirectionTypeNotes
videoin · dataelement:nl.video
durationout · datafloatSeconds.

Is Video Playing

blueprint.element.video.isPlaying · Pure

true while the video is playing.

PinDirectionTypeNotes
videoin · dataelement:nl.video
isPlayingout · databoolean

Is Video Ended

blueprint.element.video.isEnded · Pure

true once the clip has played to its end, until it is played or moved again. Always false while Loop is on.

PinDirectionTypeNotes
videoin · dataelement:nl.video
isEndedout · databoolean

Set Video Volume

blueprint.element.video.setVolume · Latent

Sets the video's volume in place of the Volume set on the widget.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
videoin · dataelement:nl.video
volumein · datafloatFrom 0 to 1. Accepts an on-card literal.

Set Video Muted

blueprint.element.video.setMuted · Latent

Mutes or unmutes the video.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
videoin · dataelement:nl.video
mutedin · databooleanAccepts an on-card literal.

Set Video Loop

blueprint.element.video.setLoop · Latent

Turns Loop on or off.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
videoin · dataelement:nl.video
loopin · databooleanAccepts an on-card literal.

Set Video Speed

blueprint.element.video.setPlaybackRate · Latent

Sets how fast the video plays: 1 is normal speed.

PinDirectionTypeNotes
inin · exec—
nextout · exec—
videoin · dataelement:nl.video
speedin · datafloatKept between 0.0625 and 16. Accepts an on-card literal.

Get Video Volume

blueprint.element.video.getVolume · Pure

The video's volume, from 0 to 1, without the player's volume settings.

PinDirectionTypeNotes
videoin · dataelement:nl.video
volumeout · datafloat

Is Video Muted

blueprint.element.video.isMuted · Pure

true while the video is muted.

PinDirectionTypeNotes
videoin · dataelement:nl.video
mutedout · databoolean

On this page