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.

Docs last synced: 2026-07-08
Screenshot viewer