Skip to main content

Minecraft Plugins

Zander's Minecraft plugins are what connect your actual game servers to the rest of the Zander platform (your website and Discord). Each plugin has one job and goes on one type of server - for example, one runs on your main game server, another runs on your "proxy" server (the router that sends players between your different servers). You only install the ones that match the servers you actually run, and they all report back to the same central Zander system.

This page covers the four most important plugins in detail below. The full set also includes three more, summarised here for completeness:

ModulePlatformInstall On
zander-addonPaper/Spigot 1.21+Each game server
zander-authPaper/Spigot 1.19+Your dedicated auth server
zander-hubPaper/Spigot 1.19+Your hub server
zander-velocityVelocity proxyYour Velocity proxy
zander-waterfallWaterfall/BungeeCord proxyNetworks still on Waterfall instead of Velocity
zander-pgmPaper/Spigot (PGM servers)Mixed/PGM competitive game servers - feeds the web Mixed module
zander-bridgePaper + VelocityTask polling, Tebex purchases, and vote forwarding to the web API
note

zander-waterfall mirrors zander-velocity's feature set (Discord relay, session tracking, tip announcements, an API heartbeat) for networks that haven't migrated to Velocity. zander-pgm is the server-side half of the Mixed module - match/player/map stat tracking, XP/levels/achievements, Map Voting, Map Ratings, and the Map Token economy, reporting to zander-web over HTTP and a WebSocket.

zander-bridge source lives on a feature branch

zander-bridge is a cross-platform (Paper + Velocity) plugin that bridges zander-web and the Minecraft servers. It polls zander-web (GET /api/bridge/processor/get) for pending command tasks, runs them as console commands, and reports results back (POST /api/bridge/processor/task/{id}/report); it also periodically reports server status (POST /api/bridge/server/update) and can expand named multi-step routines (GET /api/bridge/routine/get, POST /api/bridge/processor/command/add). It integrates Tebex (purchase/subscription events → routines) and Votifier/NuVotifier (vote events → routines), and queues player-targeted commands until the target player is online. Authentication is an x-access-token header.

The master checkout carries only compiled target/ output (untracked, and the module isn't in the root pom.xml). The full source (18 Java files under zander-bridge/src/main/java/org/modularsoft/zander/bridge/, split into common/paper/velocity) lives on the unmerged branch codex/support-velocity-and-paper-in-bridge - check out or merge that branch to build it.


zander-addon

Platform: Paper / Spigot 1.21+
Install on: Each game server
Purpose: Adds in-game commands for server policies, social media links, and player freeze - giving staff a quick tool to pause a player mid-session while investigating.

Commands

CommandUsagePermissionDescription
/policy/policy <tos|rules|privacy|refund>NoneOpens the relevant server policy in chat
/social/socialNoneDisplays configured social media links
/freeze/freeze <player>zander.command.freezeFreezes or unfreezes a player in place

Configuration

# plugins/zander-addon/config.yml
BaseAPIURL: "https://example.com/api"
APIKey: "your-api-key"
features:
policyBook:
enabled: false
slot: 8
socialPaper:
enabled: false
slot: 7

policyBook and socialPaper are optional GUI items placed in the player's hotbar. Set enabled: true and choose a slot (0–8) to activate them.


zander-auth

Platform: Paper / Spigot 1.19+
Install on: A dedicated auth server
Purpose: When a player joins your network for the first time, they are routed to the auth server. On join, zander-auth posts the player's UUID and username to POST /user/verify on the web API and immediately kicks the player with the message the API returns - a green success message if their account is already verified/linked, or a red message explaining what's needed if not. The plugin itself does not forward players onward; getting them back onto the main network after a successful check is handled by the proxy (Velocity/Waterfall), not by zander-auth.

The plugin operates entirely through event listeners - no player-facing commands are needed.

Configuration

# plugins/zander-auth/config.yml
BaseAPIURL: "https://example.com/api"
APIKey: "your-api-key"
MOTDTopLine: "&e&lMy &2&nMinecraft&r &6&oAUTH Server"

MOTDTopLine is displayed as the first line of the auth server's MOTD. Supports & colour codes.


zander-hub

Platform: Paper / Spigot 1.19+
Install on: Your hub server
Dependencies: PremiumVanish, ProtocolLib
Purpose: Full hub server management - sets and enforces the hub spawn, manages flight for donors and staff, and gives players a one-command way to connect to any server on the network.

Commands

CommandUsagePermissionDescription
/fly/flyzander.hub.flyToggles flight for the player in the hub world (the node the command code actually checks - see Permissions)
/connect/connect <server>NoneConnects the player to the specified server

Permissions

PermissionDefaultDescription
zander.hub.flyopToggle hub flight - the node fly.java actually checks. (plugin.yml declares zander.fly instead, but no code reads it; see Permissions for the mismatch.)
zanderhub.administratoropFull hub administrator access
zanderhub.buildopEnable build mode in the hub

Configuration

# plugins/zander-hub/config.yml
velocitymultiplier: 3
hub:
world: 'world'
x: 0.5
y: 33.0
z: 0.5
yaw: -180.0
pitch: 0.0
messages:
join: '&7%p% joined.'
leave: '&7%p% left.'
misc:
always_first_join: false
slot_hub_compass: 4
KeyDescription
velocitymultiplierHorizontal velocity multiplier applied in the hub world
hub.worldWorld name for the hub spawn
hub.x/y/z/yaw/pitchExact spawn coordinates and rotation
messages.join / .leaveNetwork-wide messages; %p% is replaced with the player name
misc.always_first_joinWhen true, the first-join experience triggers on every login
misc.slot_hub_compassHotbar slot (0–8) for the hub compass item
tip

Set hub.x/y/z/yaw/pitch to your desired hub spawn location. The yaw value controls which direction the player faces on spawn - -180 faces north.


zander-velocity

Platform: Velocity proxy
Install on: Your Velocity proxy
Purpose: The network's backbone on Velocity - provides private messaging between players, rotating tip announcements in chat, MOTD management, and a set of useful commands accessible from any server on the proxy.

Commands

Private Messaging

CommandAliasesPermissionDescription
/message <player> <message>/m, /msg, /w, /whisper, /tell, /tzander.command.messageSend a private message to an online player
/reply <message>/rzander.command.replyReply to the last private message you received or sent
/ignore add <player>-zander.command.ignoreAdd a player to your ignore list
/ignore remove <player>-zander.command.ignoreRemove a player from your ignore list
/ignore list-zander.command.ignoreView your ignored players
/togglemessages/toggle-messageszander.command.togglemessagesTurn incoming private messages on or off

Private messaging respects both the recipient's toggle setting and your personal ignore list. Ignore lists are stored by UUID and persist across proxy restarts. Conversation history is held in memory only and resets when the proxy restarts.

Network Utility

CommandDescription
/discordPosts a link to your Discord server
/pingShows the player's current network latency
/reportLinks to the player report page
/rulesLinks to the server rules
/websiteLinks to the network website

Staff Moderation

CommandDescription
/clearchatClears the network chat for all players
/freezechatFreezes network-wide chat

Announcements

zander-velocity reads live announcements from the Zander API and surfaces them in two ways:

  • MOTD - The second line of the Minecraft server list. Pulled from announcements with type motd.
  • Tips - Rotating in-chat messages from announcements with type tip.

Configuration

# velocity/plugins/zander-velocity/config.yml
config-version: 1
BaseAPIURL: "https://example.com/api"
APIKey: "your-api-key"
announcementMOTDTopLine: "&e&lMy &2&nMinecraft&r &6&oServer"
announcementTipPrefix: "&7&l[&6&lTIP&7&l]&r "
announcementTipInterval: 10
KeyDescription
announcementMOTDTopLineFirst line of the server MOTD (static)
announcementTipPrefixText prepended to each rotating tip message
announcementTipIntervalHow often (in seconds) tips rotate