Astral Realms Documentation Help

BlueMap Integration

When BlueMap is installed on the same server, BlueMapHook renders every town's claimed area as a 3D polygon on the BlueMap web viewer.

What it shows

For each town:

  1. The set of claimed chunks is grouped into continuous polygons using the Cheese library. Adjacent chunks become a single ring; detached groups become multiple polygons.

  2. Each polygon is extruded vertically to show the column above the claim.

  3. The polygon is labelled with the town's name.

  4. Hovering shows a tooltip rendered from map-town-detail in config.yml. MiniMessage with placeholders — typically a card of name, members, balance, claim count.

Lifecycle

Trigger

Behaviour

Plugin enable

BlueMapHook.onSuccess() waits for BlueMapAPI then initialises marker sets per claimable world.

World load

A 100-tick deferred refresh ensures markers exist for the world.

Scheduled task

Every 72 000 ticks (≈1 hour) every town's marker set is rebuilt.

The hour cadence is deliberate — recomputing polygons across an active network is non-trivial and there is no value to sub-minute precision on a top-down map.

Configuration

The only knob is the tooltip template:

map-town-detail: | <bold>%town_name%</bold> <gray>Members: <white>%town_members%</white> <gray>Claims: <white>%town_claims%</white> <gray>Balance: <white>%town_balanceFormatted%</white>

MiniMessage. The hook resolves the placeholder against the town instance — the standard town placeholders are available.

Disabling

BlueMap is a soft dependency. If it isn't installed, the hook silently does nothing. No configuration is required to disable it.

Last modified: 25 July 2026