PlayedEver
Counts how many of the targeted nodes have played across the whole run, ignoring scene visits and scene push/pop. For a node argument the result is always 0 or 1. For a tag argument it is the number of distinct tagged nodes that have played at any point this run, capped at the count of tagged nodes in the project. The session-global counterpart to Played, which only sees plays during the current scene visit.
Category: Play history
Returns: int (boolean-coerces, see Boolean coercion)
Signature
PlayedEver(nodeOrTag)
The argument is either a node ID or a tag ID. For a node, the result is 1 if the node has played at any point this run and 0 otherwise. For a tag, the result is the count of distinct tagged nodes that have played across the run. A node that plays more than once still contributes one to that count.
Examples
PlayedEver(node_first_meeting) // 1 once the first-meeting beat has played,
// even after the player leaves and returns
PlayedEver(tag_reveal) // count of distinct reveal-tagged nodes played this run
PlayedEver(tag_combat) >= 5 // gate on the player having played at least five
// distinct combat-tagged nodes over the whole run
!PlayedEver(node_tutorial_warning)
// gate a one-shot tutorial that should
// never re-fire (0 coerces to false)
Notes
PlayedEver survives scene re-entry, save/restore, and intervening
scene visits. It’s the right pick for once-per-run reveals and
permanent state checks. For per-visit checks (does the gate reset
when the scene reopens?) use Played. See
Expressions
for the distinction.