Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Creators
Details
Licensed GPL-3.0-only
Published 6 months ago
Updated 6 days ago
Changelog
EliteMobs 10.0.0-SNAPSHOT-10 (Release Candidate 1)
- [New] Download All button in /em setup! A new dynamic button appears at the end of the content list that automatically detects your content state — shows a red cross if no Nightbreak token is linked, a yellow crown if content is available to download or has pending updates, and a green checkmark when everything is installed and up to date. One click downloads or updates all your content at once.
- [New] /em downloadall command — bulk-downloads all available content packages you have access to via your Nightbreak account. Downloads sequentially with live progress messages, deduplicates by Nightbreak slug, auto-reloads the plugin when finished, and gracefully continues downloads even if the player disconnects mid-process.
- [New] /em updatecontent command — same as downloadall but only targets outdated packages, making it easy to keep all your content current with one command.
- [New] It is now possible to install & update content from in-game using your Nightbreak account!
- [New] Complete combat formula redesign! Damage is now calculated using pure formula-based architecture instead of the old hybrid vanilla+exponential system. Both offensive (player→elite) and defensive (elite→player) formulas are now symmetric, level-consistent, and fully documented.
- [New] ArmorDefenseCalculator - centralized defense calculation that unifies both elite and vanilla armor into a single gear score. Vanilla armor now actually matters for damage reduction! Damage-type-aware enchantments now work properly (Projectile Protection reduces arrow damage, Blast Protection reduces explosion damage, etc.).
- [New] WeaponOffenseCalculator - centralized offense calculation that normalizes DPS across all weapon types. Swords, axes, hoes, bows, crossbows, tridents, maces, and spears now all have identical time-to-kill when matched, regardless of attack speed differences.
- [New] Arrow combat data is now stored in projectile persistent data at launch time (weapon level, skill type, skill level, damage multiplier), preventing weapon-switch exploits where players could fire an arrow with a strong bow then swap to a different weapon before impact.
- [New] Thorns damage is now formula-based (baseDamage x thornsLevel x 2%), scaling properly with mob level instead of being flat.
- [New] Three-phase async-safe plugin initialization! Config file I/O now happens off the main thread, with entity spawning and Bukkit API calls happening on the sync thread. This significantly reduces server startup blocking.
- [New] PluginState enum (UNINITIALIZED, INITIALIZING, INITIALIZED) allows external plugins to check EliteMobs readiness status via MetadataHandler.pluginState.
- [New] EliteMobsInitializedEvent - custom Bukkit event fired when EliteMobs fully initializes, allowing other plugins to hook into the initialization lifecycle.
- [New] Quest Lockout system! Quests can now have a configurable lockout period (in minutes) after completion, preventing players from immediately re-accepting the same quest. Lockout time is displayed via subtitle and chat message. Configure per-quest via questLockoutMinutes in quest config files. Lockout data is persisted in the player database and expired lockouts are automatically cleaned up on load/save.
- [New] Skills page in the Player Status Screen! The /em status book and Bedrock dialog now include a dedicated Skills page showing all skill types with levels, XP progress bars, and formatted XP counts. Accessible from the cover page index.
- [New] CommandMessagesConfig - all command output messages (100+ strings across 25+ categories) are now centralized in command_messages.yml instead of being hardcoded throughout the codebase, enabling full localization of command messages.
- [New] StaticItemNamesConfig - all procedurally-generated item display names (~400 unique names across all weapon and armor types) are now configurable in ItemNames.yml, including new name lists for maces and spears.
- [New] LootMenuConfig for configurable loot voting/need-greed menu display text.
- [New] VortexThrustSkill for Spears (Tier 2) - replaces Skewer. Pulls nearby enemies toward your target location, applies Slowness II, with visual effects (Evoker sound + portal particles).
- [New] Weapon-switch passive skill effects! Skills like Swift Strikes (speed), Poise (knockback resist), Flurry (attack speed), Grim Reach (interaction range), Long Reach, and Polearm Mastery now automatically apply/remove their attribute modifiers when switching weapons.
- [New] Skill action bar notifications with configurable format for skill activations and stack counts.
- [New] Template-driven skill lore system - skill descriptions now use config-driven loreTemplates and formattedBonusTemplate with placeholder support, enabling translation of all skill descriptions.
- [New] TestStrategy enum for skills (PROC_COUNT, ATTRIBUTE_CHECK, CONDITION_SETUP) enabling more accurate automated skill testing.
- [New] GamblingDisplay utility class consolidating shared sound, message, and validation logic across all gambling games.
- [New] GamblingSession base class for gambling game state tracking.
- [New] Added maces & spears to EliteMobs, as well as leveling those up as skills, adding drops for them & more!
- [New] WormholePlayerListener - clears wormhole wireframe BlockDisplay entities when players change worlds or disconnect, preventing visual ghosting/stacking.
- [New] Added custom model data entries and icons for setup menu content states (checkmark, red cross, yellow crown).
- [Tweak] Item name generation completely redesigned - the old procedural system (noun+adjective+verb templates) has been replaced by curated static name lists per weapon/armor type, producing more thematic and higher-quality item names.
- [Tweak] Combat formula: players now survive ~5 hits from same-level content and ~3 sword hits to kill a standard elite at ALL levels (level-consistent). This is true whether you're level 5 or level 100.
- [Tweak] Equal DPS across all weapon types - sword, axe, hoe, bow, etc. all have identical time-to-kill (~1.875 sec) at matched combat, achieved via attack speed normalization.
- [Tweak] Gear reduction curve: 0-50% below matching gear, 50-75% above matching (capped at +10 levels above mob). Naked players take 2x damage, peak gear players take 0.5x damage.
- [Tweak] Weapon adjustment curve: 50% damage with no weapon, 100% at matching level, up to 125% at +10 levels above mob (capped).
- [Tweak] Skill bonus stacking changed from multiplicative to additive, preventing exponential stacking abuse with multiple damage skills.
- [Tweak] Enchantment damage bonus changed from flat value to multiplicative percentage (2.5% per elite enchant level above vanilla max).
- [Tweak] Sweep attacks now deal 25% of primary target damage to nearby enemies.
- [Tweak] Exponential skill scaling: every 7.5 skill level difference = 2x damage multiplier in both offensive and defensive formulas.
- [Tweak] All static skill system collections (cooldowns, stacks, registry, selections) migrated to ConcurrentHashMap for thread safety during concurrent event processing and plugin reloads.
- [Tweak] Skill config values now capped at 10.0 maximum to prevent unbounded scaling overflow.
- [Tweak] SkillBonusConfigFields now has a fallback constructor for orphaned/user-created config files.
- [Tweak] Resource pack asset paths reorganized: items/equipment/ renamed to items/gear/, models/equipment/ renamed to models/gear/.
- [Tweak] UI icon grayX.json renamed to gray_x.json for naming consistency.
- [Tweak] Removed embedded pack.mcmeta and pack.png from em_rsp_defaults — resource pack metadata is now managed externally.
- [Tweak] All command messages across the entire plugin now use configurable strings from CommandMessagesConfig with placeholder support ($player, $amount, $questName, $time, etc.).
- [Tweak] All gambling messages (debt collector dialogue, blackjack labels, game results, house earnings display) externalized to GamblingConfig for full localization.
- [Tweak] All enchantment challenge messages (no challenge installed, success, failure, critical failure) externalized to DungeonsConfig.
- [Tweak] All loot preview labels (command, currency, chance, amount) externalized to StaticItemNamesConfig.
- [Tweak] All status screen text (dialog titles, skills page, quests page, back button, skill item display) externalized to PlayerStatusMenuConfig for localization.
- [Tweak] Farming protection warning and reset messages externalized to CommandMessagesConfig.
- [Tweak] All dungeon/content package status messages (installed, not installed, download prompts, access info, lockout notifications) externalized to DungeonsConfig.
- [Tweak] Version notification messages (outdated content, connection warnings, auto-update prompts) externalized to CommandMessagesConfig.
- [Tweak] Plugin initialization now gracefully handles server shutdown during async loading phase via shutdownRequested flag.
- [Tweak] Plugin initialization failures now properly set state to UNINITIALIZED with error logging instead of leaving the plugin in a broken state.
- [Tweak] API error messages now include the URL that caused the error, making it much easier to identify which content is failing.
- [Tweak] Failed access prefetches now log a single summary line listing all failed slugs instead of spamming individual errors.
- [Tweak] Updated MagmaCore with API error logging improvements and spear material compatibility.
- [Tweak] Updated Nightbreak account service to cache user access summaries for 5 minutes, preventing concurrent requests from hammering the Patreon API.
- [Tweak] Removed redundant ChatColorConverter.convert() calls throughout item lore, loot shower, teleports page, and status screen — config values are now pre-converted at load time.
- [Fix] Fixed vanilla armor being completely ignored in elite damage calculations - it now properly contributes to the gear score and damage reduction.
- [Fix] Fixed inconsistent vanilla damage contribution across levels (was 88% at Lv5, 32% at Lv25 - now 0%, fully replaced by formula).
- [Fix] Fixed damage inconsistency where hit counts to kill varied across different levels despite being at matched combat.
- [Fix] Fixed weapon-switch exploit for ranged attacks where players could swap weapons between firing and impact to manipulate damage calculations.
- [Fix] Fixed potential gambling double-payout exploit - game outcomes are now resolved idempotently via a central resolveOutcome() method with unresolved-game tracking.
- [Fix] Fixed potential race conditions in skill bonus event handler, registry, and player skill selection during concurrent access.
- [Fix] Fixed wormhole wireframe BlockDisplay entities accumulating when players change worlds or reconnect.
- [Fix] Fixed ConcurrentModificationException crash during content version checking caused by async threads iterating the packages HashMap during plugin reload.
- [Fix] Fixed setup menu spamming the Nightbreak API on every open - content and access checks are now throttled to once per 5 minutes.
- [Fix] Fixed duplicate API calls during access prefetch - packages sharing the same Nightbreak slug (e.g. Story Mode Dungeons) are now only checked once and the result is shared.
- [Fix] Fixed spear material warnings spamming the console on Minecraft versions that don't have spears yet.
- [Fix] Several fixes for dungeons.
- [Fix] Fixed bug that would cause music to sometimes not play for instanced content.
- [Removal] Removed TOGGLE skill type entirely - all toggle-based skills have been redesigned or removed.
- [Removal] Removed ToggleSkill interface.
- [Removal] Removed Blade Dance skill (Swords Tier 4) - toggle dodge/damage tradeoff.
- [Removal] Removed Reckless Fury skill (Axes Tier 3) - toggle damage/defense tradeoff.
- [Removal] Removed Dread Aura skill (Hoes Tier 3) - toggle aura that weakened enemies.
- [Removal] Removed Skewer skill (Spears Tier 2) - replaced by Vortex Thrust.
- [Removal] Removed CombatSystem 50/50 skill/item contribution ratio system (replaced by separate multiplicative formula layers).
- [Removal] Removed pre-compensation damage logic (BASE_PLAYER_DPS, EXPECTED_GEAR_DAMAGE_MULTIPLIER, etc.).
- [Removal] Removed old procedural name generation system (noun/adjective/verb/verber templates and nameFormat from ProceduralItemGenerationSettingsConfig) - replaced by static curated name lists.
- [Removal] Removed several unused sound files (dark cathedral ambient/fight, nether bell soundtrack, void bell sounds).
Files
Metadata
Release channel
BetaVersion number
10.0.0-SNAPSHOT-10Loaders
Game versions
1.21.4–1.21.11Downloads
398Publication date
February 14, 2026 at 4:26 PMPublisher

MagmaGuy
Member





