The org lead connected, so the occupancy criterion is met: a zone created
on the player's own position reported OnEnterZone, occupancy=1 by name,
and OnExitZone. R17's "presence transitions as events" is verified, which
is what the participation ledger and advance conditions rest on.
The exit was produced by relocating the zone rather than walking the
player out — CreateOrUpdateZone on an existing id moves the trigger
volume and fires OnExitZone. Useful for testing presence unattended.
Two ceilings recorded, both constraining later phases:
- No console session can observe a gate (the !player || idiom).
- An admin account cannot see a refusal from most plugins either, and the
bypass is NOT uniform. PopupNotifications (player.IsAdmin) and
ZoneManager (authLevel > 0) hard-bypass; Kits' RequiredPermission gate
is config-gated with a shipped default of false, and Kits' own IsAdmin
is a permission rather than auth level. So phase 13 is demonstrable on
this rig as it stands and phase 7 is not — phase 7 needs a second,
non-admin Steam account.
Adds §12.6: R18's two trees as they actually look now the configs exist.
Its data/ inventory was exactly right, but config/ is FLAT on a fresh
base set — it is data/ that nests, i.e. the nesting R18 cites to justify
the recursive walk is currently only visible in the tree it must never
walk. Also: oxide/data/ holds Oxide's own permission store, so straying
one directory over would edit R2's mirror underneath itself.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016wDDVXWMDz82WqE1i969r4