Describe private behavior variables (#257)

Behaviors explains the lock switch, the read-only default value and Keep as a pin icon. Development has the new total of 1527 checks.
admin committed 2026-09-28 13:55:05 +02:00
1 parent 4f606eb7a7
commit 1ebead52fc
2 files changed
+13 -2

No files matched your search

+12 -1
@@ -24,6 +24,17 @@ playing use the same two words.
means the behavior's own, a **Variables asset** means one value per key for the whole run (see
below). Switching it changes nothing else — a port whose name the new source does not declare is
marked, not dropped.
A variable switched **Private** (the lock beside the *Keep* pin, off for a new variable) belongs to the
behavior's own graph alone: a placed object neither shows it in its inspector or Variables tab
nor overrides it, not even with its live value while the game runs — look into the graph for
that. Switching a variable private drops the overrides every placed object had for it (one undo
step brings them back), and a running game writes no private value back into the scene. Inside
the graph nothing changes: `Variables` node, default, *Keep* and one value per instance. On the
behavior asset the value of a private variable is greyed out and read-only; the graph sets it.
Switch the lock off to change the default there.
A `Properties` node of type *Behavior* does not offer a private variable under `+ Property`, but
a port that names it still reads and writes it — one picked while it was public, or one typed by
hand under type *Any*.
`Properties` is the same node for the
object it is handed (fixed input `object`). Its **Type** setting, above the list, decides what
`+ Property` offers: *Sprite*, *Text*, *Collider*, *Camera* and *Container* offer their fields,
@@ -283,7 +294,7 @@ playing use the same two words.
A behavior **without a start node** is called from its **On start** nodes instead, all of them in
graph order, as when it starts on its own. It takes no inputs then, but its end node still hands
back what it is given. With a start node in the graph, its On start nodes stay out of the call.
- **Keep** (a switch on each variable of the called behavior, in its inspector): a kept variable
- **Keep** (the pin on each variable of the called behavior, in its inspector): a kept variable
picks up where the last call **from this node, on this object** left it; the others start at
their default every call. Every variable starts out not kept, a new one as well as one from a
project saved before the switch existed; Keep is switched on by hand. Two call
+1 -1
@@ -15,7 +15,7 @@ npm run build # writes dist/ and regenerates index.html
php tools/make-user.php <name> <password> [admin|user] # an account; every tool signs in (see Accounts)
php tests/php/accounts.test.php # the API's account rules, no server needed (CI's gate job)
php tests/php/snapshots.test.php # the snapshot store (#231), the same way
node tools/seed-e2e.mjs && node tools/e2e.mjs # 1520 editor checks, screenshots in /tmp/gm-e2e-*.png
node tools/seed-e2e.mjs && node tools/e2e.mjs # 1527 editor checks, screenshots in /tmp/gm-e2e-*.png
GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 — a subset while working on one step
./e2e.sh start [GM_STEPS] # the same run detached, see below
./e2e.sh status # live progress, or the last run's result