Portals
A portal is a named cuboid region that fires a list of actions the instant a player's block coordinates move into it — a config-free way to build a "walk here to be sent to server X" zone.
Creating one
/busyhub wand
Requires busyhub.portal.create. Gives a blaze rod: left-click a block to set corner 1,
right-click another block to set corner 2 (both need to be in the same world). The wand
is not a wooden axe on purpose, and its clicks are claimed before other plugins see them, so
it never doubles as a WorldEdit selection. Then:
/busyhub portal create
The style controls what BusyHub fills the cuboid with when it's created:
| Style | Fill |
|---|---|
water |
WATER in every air block of the cuboid |
nether |
NETHER_PORTAL in every air block of the cuboid |
empty |
Nothing — purely a logical trigger volume, no blocks touched |
Only air is filled, so you can click the two outer corners of a frame and the frame itself is left standing — existing blocks inside the selection are never replaced. The fill then stays put: water inside a portal never flows out of it, nether-portal blocks don't need an obsidian frame, and standing in them doesn't send anyone to the Nether.
Filling happens block-by-block on the region thread that owns each block (Folia-safe), so a large cuboid may take a moment to finish filling after the command returns.
Adding behavior
A freshly created portal has no actions — it's just a trigger volume until you add some:
/busyhub portal addaction
/busyhub portal clearactions
See Menus & Actions for the full action syntax. A
typical portal is just one [BUNGEE] <server> action, or [WARP] <name> to send the player
to an EssentialsX warp on the same server.
Managing portals
/busyhub portal list
/busyhub portal remove
Removing a portal also clears the water or nether-portal blocks it was filled with; anything else inside the region is left alone.
Portals persist in data.yml and survive restarts; /busyhub reload re-reads them from disk.
How triggering works
BusyHub tracks, per player, which portal (if any) they were last inside, and only fires actions when that changes — walking around inside the same portal's cuboid doesn't re-fire it every tick, only crossing from outside into it (or from one portal into a different one) does. This is checked against the region's block-coordinate bounds, not fine positioning, and looked up from a small per-world cache rather than scanning every registered portal on every move.