Placeholders
AstralTower registers a tower placeholder namespace independently in each module — the paper module's TowerPlaceholder reads live in-instance state, the bridge module's TowerPlaceholder reads lobby-side ticket/queue state. Both are ComplexPlaceholders registered globally into RootPlaceholderContainer. For the placeholder syntax itself (%namespace_key%, %outer_{inner}%) see Placeholders.
tower_* (tower server)
Resolves only against a Player context; any other context (or none) returns null.
Placeholder | Type | Description |
|---|---|---|
| int | The player's in-session coin count from the in-memory |
|
| The player's current room, resolved via |
| boolean | Whether the player is currently inside a tower instance. |
Any other sub-key (or none) resolves to null.
tower_room_* sub-keys
RoomInstance is itself a ComplexPlaceholder (namespace room) — chained under %tower_room_<key>%. A bare %tower_room% (no sub-key) resolves to the RoomInstance object itself (its toString()).
Placeholder | Description |
|---|---|
| The room's position in the generated sequence ( |
| The room's |
| The |
| The room blueprint's |
| Count of still-valid (alive) mob entities currently tracked for the room. |
| The room's configured total mob count ( |
| Whether the room's phase is |
tower_* (lobby)
A separate ComplexPlaceholder (also namespace tower) registered by the bridge module. Resolves only against a Player context.
Placeholder | Description |
|---|---|
| The player's |
| The lobby's tower-queue status component — |
Any other sub-key (or none) resolves to null.
Because this namespace only exists on the lobby and the paper module's tower namespace only exists on tower servers, %tower_*% always resolves against whichever module is actually running on that server — the two never collide at runtime.