UltraBoss is a Paper plugin by Social Studio (its creator goes by GupeLegend), in collaboration with cantv@us, for building your own bosses and turning them into an event the whole server can see coming. Instead of bosses quietly replacing random mobs where nobody finds them, UltraBoss warns ahead of time, spawns the boss far from players and announces its coordinates: you have to team up and go find it. Every boss fights in phases, has abilities, summons capped minions, drops loot from any plugin and can leave a trophy behind.
Overview
UltraBoss ships with one complete, commented example boss (ejemplo): its gear, abilities, phases, loot, dialogue, a weapon with abilities of its own and a trophy. It's there so you can see every option working and build your own bosses from it, in the file or in the in-game editor.
BOSS » A boss appears in 15m.
BOSS » Ejemplo appeared at 312 68 -1204 (world).
See it in action
The example boss against two players: boss bar, minions, the switch to phase 2 and its abilities.
Key features
- An event with a warning and coordinates: the server hears about it ahead of time (15, 5 and 1 minutes by default) and, when it spawns, everyone gets the exact spot.
- Far from everyone: it spawns 1000–1100 blocks from a random player, and never within 1000 blocks of anyone else. A destination, not something you trip over.
- Every boss in its biome: a desert boss in deserts, a cave boss underground, a water boss in the water.
- Real fights: three states (resting, alert and in combat), phases by health, abilities that telegraph before they land and a leash that sends it back to its arena.
- Capped minions: every boss keeps track of its own, with a cap per boss, per world and per area. Minions never drop loot.
- Gear and loot from any plugin: armour, weapons and drops are stored complete, with name, model, enchantments and other plugins' hidden data.
- Boss weapons with abilities: sneak + right click and sneak + left click, each on its own cooldown.
- Trophies with no resource pack: collectibles that can't be eaten, smelted, crafted or traded away.
- A full in-game editor (
/ub): everything in the file can be changed from menus. - Up to 32 bosses (minions don't count), with no limit on items.
- English and Spanish: messages, menus, boss names and dialogue.
Requirements and compatibility
| Requirement | Value |
|---|---|
| Server | Paper, Purpur or Folia, on 26.1, 26.2 or 26.3 (one jar for all of them; Spigot is not supported) |
| Java | Java 25 |
| Folia | Supported: each boss runs on its own region's thread |
| Required dependencies | None |
| Optional | LibsDisguises (bosses with a player's skin) and EcoItems (EcoItems drops) |
Important: Paper caps every mob's health at 1024. For bosses with more, set
settings.attribute.maxHealth.max: 8192inspigot.ymland restart. UltraBoss warns about it in the console and in/ub validate. The example boss has 800, so it works without touching anything.
Installation and first steps
- Download the UltraBoss
.jarand drop it in your server'splugins/folder. - Start the server. A new install gets the event turned on and the example boss.
- Check the console: you should see
UltraBoss v… enabled. - Adjust the files in
plugins/UltraBoss/(see Configuration) and run/ub reload.
Data lives in plugins/UltraBoss/:
| File | What it holds |
|---|---|
config.yml |
Just the language (language: en or es) |
SpawnMobs/config.yml |
The engine: the event, boss and minion caps, and the fight states |
SpawnMobs/mobs/*.yml |
Bosses and their minions |
SpawnMobs/items/*.yml |
Boss weapons and trophies |
SpawnMobs/dialogs/*.yml |
What each boss says |
lang/en.yml, lang/es.yml |
Messages |
Note: if your server already has its own bosses, the example isn't added. If you're coming from a version that kept everything in
plugins/UltraView/UltraBoss/, the files move over on their own the first time, without overwriting anything.
Event system
When it spawns, chat says which boss appeared and where.
Every interval-minutes (45 by default) UltraBoss looks for a spot and spawns a boss:
- It warns ahead of time, at the minutes in
warn-minutes([15, 5, 1]). - It picks a random player and looks for a point between
radius-minandradius-maxblocks from them (1000–1100), with no other player closer thanmin-player-distance(1000). - It picks the boss by that point's biome. The spot comes first and the boss second, so it always lands somewhere reachable.
- If no boss belongs to that biome, it brings one from the same dimension (never a Nether boss in the Overworld). With
fallback-any-biome: false, it says it found nowhere instead and tries again afterretry-seconds. - It announces the boss and its coordinates (
announce-coords: true).
The search only looks at chunks that already exist: it never generates new terrain and never leaves chunks force-loaded. The countdown and the current boss's location survive /ub reload and restarts.
Water and caves. On open water (ocean, river) the spot is in the water, and only swimming bosses fit there (guardians, drowned…): a land boss never ends up at the bottom of the sea. With cave-chance (0.3) the Overworld search sometimes looks for a pocket underground, so cave bosses get their turn too.
How many bosses at once
max-per-world:
overworld: 3
nether: 3
end: 3
max-per-world is the most bosses alive in the same world, 1 to 5 per dimension (one number for all of them works too). It covers event bosses, natural spawns and staff summons, and a boss that splits on death counts as one. Custom worlds use the Overworld value.
Prefer just one at a time? despawn-previous: true retires the previous boss, but only once the new one is alive; if the new one never spawns, the old one stays.
Prefer bosses the old way, replacing random mobs? Turn the event off and set natural-spawns: true. max-per-world and max-alive still cap them.
Combat mechanics
The boss bar shows its health; its name and colour come from its file.
Three states
| State | When | What the boss does |
|---|---|---|
| Resting | No players nearby (sleep-radius, 64) |
Nothing: no attacks, no summons, AI off |
| Alert | Someone is close (wake-radius, 48) but hasn't fought |
Looks around or says a line, but doesn't throw a wave at someone walking past |
| In combat | A real player is fighting (aggro-radius, 16) |
Phases, abilities and summons, inside their limits |
Walking away doesn't reset the fight for free: the boss keeps its health and phase, cancels its pending attacks and, when you come back, waits a moment (resume-delay-ticks) instead of firing everything that "would have happened" at once.
Phases and abilities
Below 66 % health it enters phase 2: chat says so and the abilities with min-phase: 2 wake up.
- Phases:
phases: [0.66, 0.33]are fractions of health. Phase 2 at 66 %, phase 3 at 33 %. Abilities withmin-phaseormax-phaseonly work in those phases, so the fight escalates instead of being one long trade. - Triggers (
trigger):spawn(on appearing),timer(everyperiodticks),phase(on entering a phase),attack(on hitting a player),damaged(on taking damage) anddeath(on dying). - 19 ability types:
potion_aoe,potion_self,damage_aoe,ignite,explosion,web_trap,cage,mud_trap,tnt_trap,knockback,pull,summon,lightning,heal,arrows,evoker_fangs_circle,evoker_fangs_line,messageandsound. The editor has 40+ presets built from them. - They telegraph before they land: heavy hits (area damage, explosions, summons) ring a bell and draw a ring of particles where they're about to land (
telegraph-ticks, 30). The boss holds still during the warning. - On spawning, only ambient abilities (a line or a sound) play right away. Combat ones, like an opening summon, wait until the fight actually starts.
Capped minions
Every boss keeps track of its own live minions:
| Option | Default | What it caps |
|---|---|---|
minion-limit |
8 | Live minions per boss |
wave-limit |
2 | Minions per wave |
summon-interval-ticks |
300 | Time between waves (15 s) |
world-minion-limit |
64 | Live minions in the whole world |
area-minion-limit |
24 | Live minions in the area |
A wave that would go over any cap is trimmed. A minion riding another mob counts double. Minions never drop loot or XP.
The arena leash
Every boss remembers where it was born. Pull it further than leash-radius (96 blocks) or leash-height (48) and it cancels what it was doing, warns, and goes back to its origin, only if that spot is loaded and safe. It doesn't heal on the way.
Tip: every fight value lives in
SpawnMobs/config.yml, underencounter, and each boss can override them in its own file.
Design your own boss
Every boss is a YAML entry in SpawnMobs/mobs/. The example, ejemplo.yml, has every option commented:
ejemplo:
type: ZOMBIE
display: '&6&lEjemplo'
health: 800
damage: 12
armor: 6
equipment: { HAND: EjemploEspada, OFF_HAND: SHIELD, HEAD: GOLDEN_HELMET }
bossbar: { enabled: true, color: YELLOW, style: SEGMENTED_12, range: 40 }
dialog: ejemplo
phases: [0.66, 0.33] # phase 2 at 66 % health, phase 3 at 33 %
skills:
lentitud: { type: potion_aoe, trigger: timer, period: 160, radius: 8, effect: SLOWNESS }
rayos: { type: lightning, trigger: timer, period: 140, min-phase: 3, range: 24 }
drops:
- { item: EjemploTrofeo, chance: 1.0 }
- { vanilla: DIAMOND, chance: 0.2 }
- { xp: 150 }
spawn:
natural: true
biomes: [PLAINS, FOREST, MEADOW]
| Block | What it sets |
|---|---|
| Identity | type (base mob), display (name with & colours or MiniMessage), name-color, skin, baby, mount |
| Stats | health, damage, armor (0–30), speed, knockback-resistance, fire-immune, prevent-sunburn |
| Gear | equipment with materials or boss items; or from the menu, with items from any plugin |
| Boss bar | bossbar: colour, style and range |
| Dialogue | dialog: lines on spawning, on changing phase and on dying |
| Phases and abilities | phases and skills |
| Loot | drops: boss items, vanilla items, XP, EcoItems or complete items from any plugin |
| Spawning | spawn: biomes, natural spawning, trial spawners, monster spawners, sculk shriekers or raids |
Times are in ticks: 20 ticks = 1 second.
Note: the cap is 32 bosses (minions don't count). Extra bosses in the files aren't loaded and show up in
/ub validate;/ub createrefuses a 33rd.
In-game visual editor (/ub)
/ub lists your bosses with their health, damage, armour, phases, abilities and spawn chance.
You never have to open a file: /ub is a full editor. The main screen shows how many of your 32 bosses you use and how many are alive in each world. Clicking a boss opens its menu:
A boss's menu: each row is one part of its file.
- Armour and weapons: pick up an item from your inventory and click a slot, or shift-click the item. Right click clears the slot. Works on zombies, skeletons, piglins, pillagers, vindicators, evokers and vexes.
- Loot: shift-click any inventory item and it becomes a drop exactly as it is. The amount is your stack size and the chance starts at 100 %; left click to adjust it, right click to remove it.
- Abilities, phases, look, dialogue and spawning, each with its own menu.
Your item is never used up: it's copied. Items from other plugins are stored complete (name, model, enchantments and hidden data), so they work with no integration. The boss never drops its gear.
/ub create <id> makes a new boss and /ub delete <id> deletes its definition.
Weapons, trophies and appearance
Weapons with abilities
A boss item can carry one ability on sneak + right click (ability:) and another on sneak + left click (ability-left:), each on its own cooldown. The example is EjemploEspada, in items/items.yml. Sneaking is required on purpose: the normal use of bows, crossbows, tridents and shields stays the same.
Trophies
With trophy: true an item becomes a collectible: a vanilla material with its own name, lore and glow, stacking to 64. No resource pack needed. A trophy can't be eaten, burned as fuel, smelted, brewed, crafted, traded to a piglin or fed to an animal, and one made from a totem of undying won't save a life. Renaming it on an anvil still works. The example is EjemploTrofeo.
Got an item from another plugin you want to give or drop? Hold it and run /ub item import <id>.
A player's face
/ub skin ejemplo Notch
The skin is fetched from Mojang once and stored in skins.yml; after that the boss doesn't depend on that account. It needs LibsDisguises to show it; without it, the boss keeps its base mob look.
EcoItems
drops:
- { ecoitem: legendary_sword, chance: 0.15 }
UltraBoss runs the same without EcoItems: an unknown id just skips that one drop.
Command reference
| Command | What it does |
|---|---|
/ub |
Opens the boss menu |
/ub reload |
Reloads config, language, bosses, items and dialogue |
/ub validate |
Lists warnings found loading bosses, items and dialogue |
/ub encounters |
Loaded fights and the ones registered in unloaded chunks |
/ub info <uuid\|id> · /ub locate <uuid\|id> |
One-line status of a fight |
/ub remove <uuid\|id\|near\|all> |
Retires live bosses, with no loot or XP |
/ub freeze <uuid\|id> · /ub unfreeze <uuid\|id> |
Pauses or resumes a fight in place |
/ub event [now\|skip] |
Time to the next boss · search now · skip the wait |
/ub skin <boss> <player> |
Gives it a player's face |
/ub create <id> · /ub delete <id> |
Makes or deletes a boss |
/ub m spawn <id> [x y z] |
Summons a boss (aliases mob, mobs) |
/ub m list · /ub m kill <id> · /ub m killall |
Lists or retires bosses |
/ub i give <id> <player> [n] |
Hands out a boss item (aliases item, items) |
/ub i get <id> [n] · /ub i import <id> · /ub i list |
Take, import or list items |
/ub remove <id>retires every fight of that boss; a UUID picks just one.nearpicks the nearest loaded boss (32 blocks) andallretires them all, including those in unloaded chunks. The Spanish aliaseseliminar,cercaandtodoswork too.- Retiring gives no loot, XP or death abilities, and cleans up its minions. Vanilla
/killalso retires a boss, even while it's paused. /ub m spawnwon't summon a boss if its world is already atmax-per-world(minions are always allowed).
Permissions
| Permission | Default | What it allows |
|---|---|---|
ultraboss.admin |
op | Every command and the editor |
Players need no permission to fight bosses.
Advanced configuration
SpawnMobs/config.yml holds the engine settings:
enabled: true
event:
enabled: true
interval-minutes: 45 # how often a boss appears
warn-minutes: [15, 5, 1] # warnings before it does
radius-min: 1000 # distance to the chosen player
radius-max: 1100
min-player-distance: 1000 # no other player closer than this
max-attempts: 20
despawn-previous: false # true = only one event boss at a time
announce-coords: true
fallback-any-biome: true
cave-chance: 0.3 # sometimes looks for the spot underground
retry-seconds: 60
natural-spawns: false # bosses replacing random mobs
max-per-world: { overworld: 3, nether: 3, end: 3 }
max-alive: 0 # server-wide cap for natural spawns (0 = none)
ignore-unnatural: true # natural bosses don't come from spawners or eggs
idle-despawn-minutes: 30 # a boss nobody fights leaves on its own
tick-period: 10 # how often the engine runs, in ticks
on-kill-commands: [] # commands on killing a boss: %player% %boss% %boss_snake%
The encounter section holds the fight values listed in The fight. The root config.yml only has language:.
Languages and translations
English (default) and Spanish. language: switches everything: messages, menus, boss names, weapon names and lore, and every line of dialogue. Bosses you create in game keep the name you typed.
Frequently asked questions
Does the boss spawn right on top of players?
No. It spawns 1000–1100 blocks from a random player and more than 1000 from anyone else. For testing you can lower radius-min, radius-max and min-player-distance.
Does it generate new terrain to find a spot? No. It only looks at chunks that already exist and never leaves chunks force-loaded.
Can I have more than 32 bosses? No: the cap is fixed so the plugin stays light. Minions don't count and items have no limit.
My boss has 1024 health even though I gave it more?
That's Paper's cap. Raise settings.attribute.maxHealth.max in spigot.yml and restart.
Can I use items from ItemsAdder, Oraxen, Nexo or EcoItems?
Yes. From the menu, gear and loot store the complete item, with no integration. For EcoItems there's also ecoitem: in the file.
Do minions drop loot? Never, neither items nor XP.
What happens if nobody fights the boss?
After idle-despawn-minutes (30) without taking damage, it leaves with no loot.
Does it work on Spigot? No. It uses the Paper API. It works on Paper, Purpur and Folia.
Does it go online?
Only when staff runs /ub skin: it asks Mojang for that skin once. No resource pack, no open ports, no usage stats.
Downloads and support
- GitHub (open source, MIT license): github.com/GupeLegend/UltraBoss
- Modrinth: modrinth.com/plugin/ultra-boss — coming very soon.
- Social Studio: gupe.dev