Astral Realms Documentation Help

Commands

AstralTower registers commands from both modules independently — the paper module's /tower and /spawn run on tower servers, the bridge module's /tower (a different BaseCommand, base alias tower|tour) runs on the lobby. See Overview: two-module architecture.

/tower (tower server)

Registered by the paper module's TowerCommand (@CommandAlias("tower")). Class-level @CommandPermission("tower.command") gates the entire base command. All subcommands take a Player and are player-only, except reload (CommandSender).

Subcommand

Syntax

Permission

Description

nextroom

/tower nextroom

tower.command + tower.command.nextroom

Skips the player's current tower instance to the next room. No-ops with an error if their world isn't part of a tower instance.

prevroom

/tower prevroom

tower.command + tower.command.prevroom

Sends the instance back to the previous room.

goTo

/tower goTo <index>

tower.command + tower.command.goto

Jumps the instance directly to room index.

roominfo

/tower roominfo

tower.command + tower.command.roominfo

Prints the current room index, remaining enemy count, and room phase.

instanceinfo

/tower instanceinfo

tower.command + tower.command.instanceinfo

Prints the current room index, total room count, and instance state.

reload

/tower reload

tower.command + tower.command.reload

Console-runnable. Reloads config.yml, rooms.yml, artifacts.yml, mobs.yml, rewards.yml, coins.yml, shop.yml, and messages.yml (plugin.loadConfiguration()).

/spawn (tower server)

Registered by the paper module's SpawnCommand. Alias: /spawn. No class-level permission. Player-only (@Default takes a Player).

Sends the player to the spawn server group via TeleportationService#sendToGroup.

/tower (lobby)

Registered by the bridge module's TowerCommand. Aliases: /tower, /tour (@CommandAlias("tower|tour")). No class-level permission — each subcommand carries its own.

Subcommand

Syntax

Permission

Description

(default)

/tower

Opens the tower-main menu for the player.

create

/tower create

tower.create

Creates a tower instance for the player's party. See below.

resume

/tower resume

tower.resume

Unpauses the tower queue. Replies queue-already-enabled if it wasn't paused.

pause

/tower pause

tower.pause

Pauses the tower queue (blocks the portal and new instance creation). Replies queue-already-disabled if it was already paused.

reload

/tower reload

tower.reload

Console-runnable. Reloads config.yml, messages.yml, and the menu container.

/tower create

Requires the player to already be in an AstralParty party and to be its owner — otherwise it replies not-in-party. Delegates to InstanceService#createInstance, which checks party size against maximum-party-size (party-too-large), that the party doesn't already have an instance (party-already-in-instance), and that the owner and every member have at least one daily ticket (not-enough-tickets), before finding a target server and sending the creation request. See Overview: creating a tower instance for the full flow and its reply messages (creating-instance, instance-created, no-server-found, unexpected-error).

The entry portal (a cuboid defined by portal.min/portal.max, only active on server groups listed in portal-enabled-groups) drives the same createInstance call, but additionally requires access-permission and checks the queue isn't paused first — see Configuration: bridge config.yml.

/tower tickets (lobby)

Registered by the bridge module's TicketsCommand, nested under /tower tickets.

Subcommand

Syntax

Permission

Description

(default)

/tower tickets

Player-only. Shows the player's own ticket balance (ticket-balance, %balance%).

get

/tower tickets get <player>

tower.tickets.get

Shows <player>'s ticket balance to the sender (ticket-balance-other, %player_name% + %balance%).

set

/tower tickets set <player> <amount>

tower.tickets.set

Sets <player>'s balance to <amount>.

add

/tower tickets add <player> <amount>

tower.tickets.add

Adds <amount> to <player>'s balance.

take

/tower tickets take <player> <amount>

tower.tickets.take

Subtracts <amount> from <player>'s balance.

set/add/take all reply with ticket-balance-updated-other (%player_name% + the new %balance%) and operate on the target's TowerPlayerData (AstralSync player data), not the tower instance's session state.

/tower instance (lobby)

Registered by the bridge module's InstanceCommand, nested under /tower instance.

Subcommand

Syntax

Permission

Description

(default)

/tower instance

tower.instance.list

Lists every known tower instance grouped by server, resolving each server's display name asynchronously.

Permission summary

Node

Module

Grants

tower.command

Paper

Class-level gate on the entire /tower (tower server) base command.

tower.command.nextroom/.prevroom/.goto/.roominfo/.instanceinfo/.reload

Paper

Individual /tower (tower server) subcommands, in addition to tower.command.

tower.create

Bridge

/tower create.

tower.resume/tower.pause

Bridge

/tower resume//tower pause.

tower.reload

Bridge

/tower reload (lobby).

tower.tickets.get/.set/.add/.take

Bridge

/tower tickets admin subcommands.

tower.instance.list

Bridge

/tower instance.

tower.access (default access-permission)

Bridge

Required to use the entry portal (configurable).

tower.admin

Paper

Bypasses the arena-protection listener (block break/place, item drop, right-click, signs) — see Overview.

Last modified: 25 July 2026