
Adds 5 staffs to your smp all with different features
Class-based magic staves for SMP servers. Five distinct classes, each with a unique 3D staff, two active abilities, and a class-defining passive. Pick your class manually with /class, or fire up /staffsmp start to randomly roll one for every player on the server. Don't like your class? Craft a Reroller to swap into another.
Built for Paper 1.21.x with a companion resource pack (1.21.4+) for the custom staff and projectile models — grab it here: StaffSMP Resource Pack.
| Class | Right-click | Shift + Right-click | Passive |
|---|---|---|---|
| Electric Wizard | Strike a lightning bolt at your crosshair (60 blocks) | Teleport through space, damaging any entity caught in the path | — |
| Mage | Launch a fireball with a custom 3D model | Brief levitation, then slow-falling for aimed fire | — |
| Monk | Quick forward dash (0.4s cooldown) | Leap toward the nearest player; shockwave knockback + damage on landing | Double jump · No fall damage |
| Druid | Throw a healing AOE ball that explodes into hearts | Buff your target (or self) with Speed + Haste | +2 hearts max health |
| Ranger | Channel a thin laser beam that ticks damage on target | Drop a wind-charge under you — radial knockback + guaranteed rocket-jump | — |
All abilities have configurable cooldowns, ranges, and damage values.
After your first /class pick, you're committed. Only operators can change your class via /staffadmin give.
Run /staffsmp start and every online player is instantly re-rolled into a random class with a totem-of-undying screen flash and the Ender Dragon death roar. Every new joiner from that point on is auto-rolled on connect. Effects only play on each player's first-ever staff give — no cacophony on rerolls.
Craft a Class Reroller to change your class:
Netherite Diamond Netherite
Diamond Heart of the Sea Diamond
Netherite Diamond Netherite
Right-click the reroller to open a class-picker GUI showing all 5 staves — click the one you want to become. The reroller is consumed on use and respects a configurable cooldown.
Don't want the GUI? Set reroller.gui: false in config and the reroller will instantly roll a random class (20% chance per class, current class included).
Every ability cooldown shows as its own colored boss bar at the top of your screen — and stacks alongside other active cooldowns, so you always know exactly what's available. Color-coded by class:
/staff trust <player> makes your staff abilities pass through that player harmlessly. /staff untrust <player> reverses it. /staff list shows who you're trusting. Trust is directional and persists across restarts.
Staves and rerollers can't be dropped via Q, drag-and-dropped into chests, shift-clicked into containers, placed in item frames, or stuck on armor stands. The restriction is absolute — even operators can't drop them (use /staffadmin reset to clean a player's inventory instead). The crafting table is exempt so you can actually use the reroller recipe.
Die with your staff and it's automatically returned to you on respawn. The staff is stripped from your death drops so it can't be looted.
Your own abilities never hurt you — no rocket-jumping yourself into the void by accident, no lightning-bolting yourself on close-range strikes.
Class changes always strip old staves and give a new one cleanly. Toggleable in config if you want stackable staves.
/class <wizard|mage|monk|druid|ranger> — Pick your starting class (one-shot)/staff trust <player> — Trust a player; your staff won't damage them/staff untrust <player> — Revoke trust/staff list — Show who you're trustingstaffsmp.admin, default op)/staffsmp start — Begin SMP mode: roll all online players + auto-roll joiners/staffsmp stop — Halt auto-rolling on join (existing classes preserved)/staffsmp status — Check SMP mode state/staffadmin give <player> <class|reroller> — Force-assign a class or grant a reroller/staffadmin reset <player> — Wipe a player's class, passives, and staves/staffadmin info <player> — View a player's current class/staffadmin reload — Reload config.ymlEverything is tunable in plugins/StaffSMP/config.yml:
no-drop, one-staff, keep-on-death) — each individually toggleableStaffSMP-1.0.0.jar into your server's plugins/ folderplugins/StaffSMP/config.yml)minecraft:blaze_rod via custom model data/class wizard (or any class) — receive your blaze-rod staff/staffsmp startitems/ model selector)Thanks to Yoink1975 for the idea and models.