Social Studio ES|EN
Bosses and events

UltraBoss

Build your own bosses and turn them into an event: the server gets a warning, coordinates and a phased fight.

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: 8192 in spigot.yml and 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

  1. Download the UltraBoss .jar and drop it in your server's plugins/ folder.
  2. Start the server. A new install gets the event turned on and the example boss.
  3. Check the console: you should see UltraBoss v… enabled.
  4. 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

Server chat announcing the boss Ejemplo and its coordinates When it spawns, chat says which boss appeared and where.

The warning comes first: at 15, 5 and 1 minute.
When it spawns, chat gives the boss and its exact coordinates.

Every interval-minutes (45 by default) UltraBoss looks for a spot and spawns a boss:

  1. It warns ahead of time, at the minutes in warn-minutes ([15, 5, 1]).
  2. It picks a random player and looks for a point between radius-min and radius-max blocks from them (1000–1100), with no other player closer than min-player-distance (1000).
  3. It picks the boss by that point's biome. The spot comes first and the boss second, so it always lands somewhere reachable.
  4. 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 after retry-seconds.
  5. 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

Two players fighting the boss Ejemplo, with its boss bar at the top The boss bar shows its health; its name and colour come from its file.

Group fights: everyone who takes part counts.

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.

Resting: with nobody around, it doesn't attack or summon.
Get close and it wakes up, talks and the fight begins.

Phases and abilities

The boss Ejemplo enters phase 2 and announces it in chat, with its minions around Below 66 % health it enters phase 2: chat says so and the abilities with min-phase: 2 wake up.

Phase 2 at 66%: it says so in chat and gets stronger.
Phase 3: lightning with a warning first, and capped minions.
  • Phases: phases: [0.66, 0.33] are fractions of health. Phase 2 at 66 %, phase 3 at 33 %. Abilities with min-phase or max-phase only work in those phases, so the fight escalates instead of being one long trade.
  • Triggers (trigger): spawn (on appearing), timer (every period ticks), phase (on entering a phase), attack (on hitting a player), damaged (on taking damage) and death (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, message and sound. 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, under encounter, and each boss can override them in its own file.

The final blow: a last line and loot for the group.

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 create refuses a 33rd.

In-game visual editor (/ub)

The /ub menu with the boss list and the tooltip of the boss Ejemplo /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 with its sections: look, stats, abilities, loot and gear A boss's menu: each row is one part of its file.

The main screen: how many bosses you use and how many are alive per world.
Name, mob type, health, phases, armour and dialogue.
Armour and weapons: pick up an item and drop it in its slot.
The library: 40+ ready-made abilities to add.
Loot: your item is stored exactly as it is, with its chance.
Spawning: biomes, spawners, raids and more.
  • 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.

Sneak + right click: fire nova.
Sneak + left click: slowness for everyone around.

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.

Every weapon lists its abilities, and the trophy stays as a keepsake.

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. near picks the nearest loaded boss (32 blocks) and all retires them all, including those in unloaded chunks. The Spanish aliases eliminar, cerca and todos work too.
  • Retiring gives no loot, XP or death abilities, and cleans up its minions. Vanilla /kill also retires a boss, even while it's paused.
  • /ub m spawn won't summon a boss if its world is already at max-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