Skill System
EliteMobs uses a skill-based progression system where players level up by fighting elite mobs. Rather than a single global level, players develop individual weapon skills and an armor skill that together determine their overall power.
There are 11 skill types:
| Skill | Weapon | Notes |
|---|---|---|
| Swords | Any _SWORD | |
| Axes | Any _AXE | |
| Bows | BOW | |
| Crossbows | CROSSBOW | |
| Tridents | TRIDENT | |
| Hoes (Scythes) | Any _HOE | |
| Maces | MACE | Requires Minecraft 1.21+ |
| Spears | Any _SPEAR | Requires Minecraft 1.21.11+ (with resource pack) |
| Staves | Valid FMM authored STAFF weapon | Requires compatible FreeMinecraftModels |
| Wands | Valid FMM authored WAND weapon | Requires compatible FreeMinecraftModels |
| Armor | Helmets, chestplates, leggings, boots | Levels passively |
Skills level up by using the associated weapon to kill elite mobs. Your Combat Level -- calculated from your skills -- determines what content you can access, what gear you can equip, and what difficulty mobs spawn around you.
How Skills Level Up
When you kill an elite mob, you earn XP based on the mob's level. The XP is distributed as follows:
- Weapon XP is divided between the skills recorded when your hits land or projectiles launch, in proportion to their damage contributions. Switching weapons at the mob’s death does not redirect XP.
- Armor XP is earned automatically with a 1/3 multiplier on your allocated XP. Armor can exceed an individual weapon skill when you use several weapon types.
- Group fights: When multiple players damage the same elite, XP is split proportionally based on each player's damage contribution. If you dealt 60% of the damage, you earn 60% of the base XP.
Base XP from Mobs
The base XP earned from killing a mob is:
mob_xp = mob_level ^ 2
| Mob Level | XP Earned |
|---|---|
| 1 | 1 |
| 10 | 100 |
| 25 | 625 |
| 50 | 2,500 |
| 100 | 10,000 |
Boss XP Multiplier
Tougher mobs are worth more. The base XP above is multiplied by a factor derived from the mob's healthMultiplier and damageMultiplier:
bossXPMultiplier = healthMultiplier^0.6 * (1 + (damageMultiplier - 1) * 0.15)
The HP component uses a sublinear exponent (0.6) so that longer fights pay more without making high-health bosses disproportionately profitable to farm. The damage component is heavily dampened, because even small increases in damage raise difficulty a lot and a linear reward would push players toward suicidal targets.
| healthMultiplier | damageMultiplier | XP multiplier |
|---|---|---|
| 1.0 | 1.0 | 1.00x |
| 3.0 (miniboss) | 1.2 | 1.99x |
| 7.0 (boss) | 1.4 | 3.41x |
| 40.0 (world boss) | 1.5 | 9.83x |
The full order of operations on a kill is: effective mob level (after the anti-exploit caps below) → base XP → boss multiplier → split by damage contribution → weapon XP and armor XP.
Anti-Exploit Protections
All three are configured in AntiExploit.yml and are skipped entirely when enableFarmingProtection is false. See Farming Protection for the full config table.
- Low-level mobs (per skill): Each weapon/armor skill only gains XP if the mob is at most
farmingProtectionLevelDifferencelevels below that specific skill's level (default15). This check uses the individual skill level, not your combat level, and is skipped entirely under scaled combat, where the mob is normalized to the player and "too low level" is meaningless. - High-level mobs: Skill XP uses an effective reward level capped at
combat_level + farmingProtectionLevelDifference(default15). The same cap applies to natural elite loot; custom-boss loot does not use this farming-protection level cap. Other XP eligibility checks still apply. - Natural elite farming cap: Natural (non-custom-boss) elite kills are counted in a rolling window
farmingProtectionMinuteslong (default30). Going pastfarmingProtectionKillskills (default20) inside that window locks you out of natural-elite rewards for one full window. You are told in chat when the lockout starts and again when it lifts. Custom bosses are exempt.
Skill XP Permission Perks
Combat-earned weapon and armor XP can receive a permission multiplier. These perks do not bypass reward eligibility, and do not multiply unrelated XP awards.
elitemobs.perks.xp.<perk>.<skill>
Use lowercase skill names from the table above (swords, armor, wands, etc.), or all for every skill.
| Perk | Multiplier |
|---|---|
10percentboost | 1.10 |
25percentboost | 1.25 |
50percentboost | 1.50 |
double | 2.00 |
150percentboost | 2.50 |
triple | 3.00 |
quadruple | 4.00 |
customboost | customXpPerkMultiplier in skills.yml, default 1.0 |
Ordinary perks do not stack: the highest applicable multiplier wins. customboost overrides that selection, even when its configured multiplier is 1.0 or lower. Explicit skill denials are respected. The custom multiplier must be finite and nonnegative; invalid values fall back to 1.0.
The result is rounded down to whole XP before the public skill-XP event. For example, elitemobs.perks.xp.double.swords doubles eligible sword XP without doubling armor XP.
XP Progression
The XP required to advance from your current level to the next level follows this formula:
Levels 1-100:
xp_to_next_level = 8.5 * current_level ^ 3
Levels above 100 (soft cap):
xp_to_next_level = 8.5 * current_level ^ 3 * (1 + ((current_level - 100) ^ 2 / 100))
The soft cap multiplier is 1.0 at level 100 (no extra penalty) and grows quadratically. By level 150, the multiplier reaches 26x, making further progress extremely difficult.
XP Per Level Table
The table below shows the XP needed to go from a given level to the next, and approximately how many same-level mob kills that takes (weapon skill, not armor):
| Level | XP to Next Level | Kills of Same-Level Mobs |
|---|---|---|
| 10 | 8,500 | 85 |
| 25 | 132,812 | 213 |
| 50 | 1,062,500 | 425 |
| 75 | 3,585,937 | 638 |
| 100 | 8,500,000 | 850 |
Armor earns XP at 1/3 the weapon rate, so it takes roughly 3x as many kills to level armor compared to the numbers above. At level 50, that means about 1,275 same-level kills for armor alone.
Combat Level
Your Combat Level is the overall measure of your power. It is calculated as:
combat_level = (highest_weapon_skill + second_highest_weapon_skill + armor_skill) / 3
The result is rounded down (integer division).
Combat Level determines:
- The level of elite mobs that spawn around you
- What gear you can equip (gear level must be at or below your matching skill level)
- Which dungeons and instanced content you can access
- XP and loot eligibility (anti-exploit checks use combat level)
Combat Level Display
Your combat level is shown as a floating number above your head, visible to other players. This uses packet-based text displays and updates automatically whenever your skills change. The display format is configurable (default: Combat Lv. X).
XP Bar
When you earn skill XP, an animated boss bar appears showing your progress toward the next level. The bar features:
- Smooth animation that creeps up as XP is gained
- A different color per skill type (e.g., red for Swords, green for Bows, blue for Armor)
- Special particle and sound effects on level up
- Auto-hides after 5 seconds of inactivity
Gear Restrictions
EliteMobs gear has level requirements tied to the skill system. To equip an elite item, your skill level for that weapon or armor type must be equal to or higher than the item's level.
Exception: Items at level 20 or below can be equipped by anyone regardless of skill level. This ensures new players can freely use early-game gear without being locked out.
If you try to equip an item above your skill level, you will receive a warning message and the item will provide no elite bonuses.
Skill Bonuses
As you level up your skills, you unlock special combat abilities in four tiers. Each tier unlocks a set of bonuses for that skill, not a single one:
| Tier | Unlocks at |
|---|---|
| 1 | Level 10 |
| 2 | Level 25 |
| 3 | Level 50 |
| 4 | Level 75 |
Unlocking a tier does not grant a slot. You can have up to 3 active bonuses per weapon or armor type at once, chosen from everything you have unlocked. Skill bonuses are managed through the /em menu or by visiting the Skill Bonus NPC in the Adventurer's Guild.
The skillbonuses/*.yml files control presentation (display name, description, unlock tier, bonus type, menu icon, lore templates) and part of the balance: baseValue, scalingPerLevel, procChance, cooldownSeconds, maxStacks and stackBonus are read back by the plugin wherever a bonus consults its config. Bonuses that do not read those keys use hardcoded constants instead. See Skill Bonuses for exactly which value each bonus takes from config.
See Skill Bonuses for the complete list of all 84 bonuses and what they do.
Notifications & UI
The skill system provides several forms of feedback:
- Level Up: Title message, challenge-complete sound, and totem-of-undying particle burst on every level up.
- Milestones: A server-wide broadcast is sent only when a player reaches a milestone level (every 5th level: 5, 10, 15, ...). Regular level ups are not broadcast. The broadcast can be toggled off in
dungeons.yml. - Combat Level Display: Floating number above your head, visible to other players. Updates automatically on level up.
- XP Bar: Animated boss bar showing skill XP progress during combat.
- XP Gain Messages: Optional per-kill XP messages (disabled by default as they can be spammy).
Most of the above are configured in skills.yml; the milestone level-up broadcast and its message live in dungeons.yml.
Admin Commands
| Command | Permission | Description |
|---|---|---|
/em skill check <player> | elitemobs.skill.check | View a player's skill levels, XP progress, and percentages |
/em skill set <player> <skillType> <level> | elitemobs.skill.admin | Set a specific skill to a given level |
/em skill setAll <player> <level> | elitemobs.skill.admin | Set all skills to the same level |
/em debug combat start | elitemobs.admin | Start automated combat system testing |
/em debug combat test <type> | elitemobs.admin | Test a specific weapon type (e.g., swords, bows) |
/em debug combat results | elitemobs.admin | View the results of the last combat test |
/em debug combat cancel | elitemobs.admin | Cancel an active combat test |
The skillType argument for /em skill set accepts: ARMOR, SWORDS, AXES, BOWS, CROSSBOWS, TRIDENTS, HOES, MACES, SPEARS, STAVES, WANDS.
Server Configuration
The skill system is configured in skills.yml. Key settings:
| Setting | Default | Description |
|---|---|---|
skillSystemEnabled | true | Enables or disables the entire skill system |
armorSkillHealthBonusEnabled | true | Whether Armor skill grants bonus max health (+1 heart per level above 1) |
scalePlayerHealthDisplayToVanilla | false | Keeps EliteMobs max HP, but visually scales the player HUD back to the vanilla 10 hearts |
forceDefaultHealthWhenArmorSkillHealthBonusDisabled | false | When armor health bonus is disabled, forces players to vanilla 20 max health on join |
skillWorldExclusions | (empty) | List of world names where the skill system is inactive. Players in these worlds receive no skill XP, armor health bonus, XP bars, or combat level display. Useful for event worlds where everyone should be equal. Matching is case-insensitive |
skillsMenuTitle | &5&lYour Skills | Title of the skills menu |
showCombatLevelDisplay | true | Show combat level number above players |
showXPBar | true | Show animated XP progress bar during combat |
skillBarTitleFormat | &6$skillName &7Lv.$level$xpText | XP bar title format |
skillLevelUpTitleFormat | &e&l✦ $skillName LEVEL UP! &7→ &eLv.$level &e&l✦ | Level up boss bar title format |
combatLevelFormat | &6&lCombat Lv. $level | Combat level display format |
For the full configuration reference, see the EliteMobs Configuration page.
[Alpha] Advanced Combat System
See the class progression, training, and controls guide for the full workflow, including Adventurer, trainer trials, foundation requirements, and the Java input bindings.
The [Alpha] Advanced Combat System adds classes and abilities to EliteMobs combat. The combat system is still in alpha, but testers have found it extremely enjoyable. Please share your feedback with the developer. In plugins/EliteMobs/AdvancedCombatSystem.yml, enabled defaults to true; set it to false and reload EliteMobs to disable the module. Class balance and definitions remain fixed during alpha. Settings from older builds are not imported automatically; configure this file before starting an upgraded server.
Use /em class for your class profile, /em class info <class> to inspect a form, and /em class select <class> to select an unlocked form. These player commands require elitemobs.command. The root classes are paladin, berserker, ranger, cleric and spellcaster. Spellcaster requires compatible FreeMinecraftModels with its bundled staff and wand; it remains locked while that content is unavailable. Staves and Wands use registered custom item identities, so an ordinary stick, spear or blaze rod is not automatically a magic weapon.
On Java, press F, then 1/2/3 for Mobility, Signature or Utility. A second F selects Mobility; left-click selects Signature and right-click selects Utility while the selection window is open. Class controls are enabled in EliteMobs combat content. allowClassAbilitiesOutsideEliteMobsWorlds defaults to true, allowing players to opt in outside it for the current session by double-tapping F while sneaking.
With the module enabled, the GUILD_GREETER NPC opens Guild Training. With it disabled, that NPC opens the weapon skill bonus selection menu. Class progression is separate from weapon and armor progression; class ability damage without a weapon identity does not earn weapon XP.