AstralTower's paper and bridge modules each load their own config.yml and messages.yml. Both are reloadable at runtime with /tower reload (paper) and /tower reload (bridge) — see Commands. Content data (rooms, mobs, artifacts, shop, coins, rewards) is covered on Tower Instances and Loot, Shop & Rewards; this page covers the two config.yml files and messages.
Paper config.yml
Key
Type
Description
fallback-group
string
Server group participants are sent to if teleportation elsewhere fails. Default spawn.
permanent-effects
map of PotionEffectType → int
Potion effects (key = effect name, value = amplifier) applied to every player for the duration of their tower session, on join.
reward-types
map of RoomRewardType → ItemStack (material id)
Display material used to represent each RoomRewardType (ARTIFACTS, COINS, SHOP, BOSS) — e.g. on doors.
damage-zone.delay
duration
Tick interval between damage ticks inside a room's damage-zone cuboid.
damage-zone.damage-per-second
double
Damage dealt per second while standing in a room's damage zone.
hand-slot
int
The raw packet slot (0-8 hotbar range) treated as the player's "held" slot for the cosmetic hand-slot illusion.
inventory
map of int (slot) → ItemStackWrapper
Fake items shown at specific inventory slots via packet interception — not real items in the player's inventory. See Overview: cosmetic hand slot.
damage-indicators.immune
component
Floating text shown when a hit dealt no damage (target invulnerable or 0 final damage).
damage-indicators.damaged
component
Floating text shown for a normal hit. Supports {amount}.
damage-indicators.critical
component
Floating text shown for a critical hit (magic damage modifier > 1).
lobby-hologram
component list
Lines of the hologram spawned above the lobby room's GENERIC position component.
room-complete-actions
action list
Run against every participant whenever RoomClearedEvent fires (a room's mobs are cleared), before the room transitions to REWARDS.
fallback-group: "spawn"
permanent-effects:
jump-boost: 2
speed: 1
reward-types:
ARTIFACTS: "nether_star"
COINS: "gold_nugget"
SHOP: "emerald"
BOSS: "diamond"
damage-zone:
delay: 1s
damage-per-second: 1.0
hand-slot: 36
inventory:
36:
material: "wooden_sword"
name: "<red>Starter Sword"
lore:
- "<green>A basic sword to get you started."
damage-indicators:
immune: "<yellow>Immune</yellow>"
damaged: "<red>-{amount}</red>"
lobby-hologram:
- "<green>Welcome to the Arena!</green>"
- "<yellow>Prepare for battle and earn rewards!</yellow>"
Bridge config.yml
Key
Type
Description
target-server-group
string
Server group /tower create picks a target from, via findEmptiestByGroup.
maximum-party-size
int
Maximum party size (including the owner) allowed to create an instance.
daily-tickets.default
int (YAML key default)
Base number of tickets a player is refilled to each day.
daily-tickets.permissions
map of permission → int
Bonus tickets added on top of the default for each matching permission the player holds (checked in TowerConfiguration#tickets(Player), cumulative across all matches).
access-permission
string
Permission required to use the entry portal (not required for /tower create).
portal-enabled-groups
list of string
Server groups on which the portal listener is registered at all — portal.enabled() checks the current server's group against this set.
portal.min/portal.max
{x, y, z, world}
The cuboid whose bounds define the entry portal (a Cuboid).
Both modules load their messages.yml into a TowerMessages enum (MessageEnum) — each enum constant name is converted to a kebab-case key (_ → -, e.g. SHOP_PURCHASED → shop-purchased) and looked up under that key. Missing keys log a "Missing configuration key" warning at load and fall back to the enum's toString().