--- generated_by: gdlink-build generated_at: 2026-06-23T12:34:28Z do_not_edit: true title: Variable brick_type: executor tier: Basic generated: true --- # Variable **Category:** Executor **Tier:** Basic ## Purpose Writes values into Local or Global variables, supports gameplay text-buffer flows with optional mask formatting, supports direct vector/array edits, and can sample native physics data directly into a variable without a GDScript bridge. ## Visual Reference ```{raw} html
As added to your scene
Variable brick as it appears in the GDLink editor
``` ```{raw} html
Generated UI Mockup — showing expanded properties
Variable
-
x
Name:
Label this brick...
Scope:
Global
Field:
Test:
Equal
Value:
v
Min:
0.0
v
Max:
0.0
v
``` ## Properties | Property | Type | Default | Notes | |---|---|---|---| | Scope | option | Global | Global: Check shared variables. Local: Check this node's variables | | Var Name | variable_name | | Variable to check (Timer dicts and the reserved Global '_system_time' supported) | | Field | option | | Optional Dictionary/Transform subfield. Timer dicts: elapsed/remaining/etc. _system_time: formatted/hms/hm/hour/minute/second/etc. Transform2D/3D: position/rotation/scale/origin/basis axes. | | Test | option | Equal | Type of comparison to perform | | Value | string | | Value to compare against | | Min | float | 0.0 | In Range: lower bound (inclusive) | | Max | float | 0.0 | In Range: upper bound (inclusive) | ## Notes - Empty `target_node` means "sample the owner node" - `1 Godot unit = 1 meter`, so the stored magnitude is meters per second - This executor stores the raw sampled number only; unit conversion and smoothing belong in `Math` - Mask formatting is deterministic and separator-driven; it is intentionally not a general-purpose template language - Local and Global variable panels parse Array values with Godot Variant syntax first, preserving integer values instead of coercing all numbers to floats.