Skip to main content

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:

SkillWeaponNotes
SwordsAny _SWORD
AxesAny _AXE
BowsBOW
CrossbowsCROSSBOW
TridentsTRIDENT
Hoes (Scythes)Any _HOE
MacesMACERequires Minecraft 1.21+
SpearsAny _SPEARRequires Minecraft 1.21.11+ (with resource pack)
StavesValid FMM authored STAFF weaponRequires compatible FreeMinecraftModels
WandsValid FMM authored WAND weaponRequires compatible FreeMinecraftModels
ArmorHelmets, chestplates, leggings, bootsLevels 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 LevelXP Earned
11
10100
25625
502,500
10010,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.

healthMultiplierdamageMultiplierXP multiplier
1.01.01.00x
3.0 (miniboss)1.21.99x
7.0 (boss)1.43.41x
40.0 (world boss)1.59.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 farmingProtectionLevelDifference levels below that specific skill's level (default 15). 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 (default 15). 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 farmingProtectionMinutes long (default 30). Going past farmingProtectionKills kills (default 20) 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.

PerkMultiplier
10percentboost1.10
25percentboost1.25
50percentboost1.50
double2.00
150percentboost2.50
triple3.00
quadruple4.00
customboostcustomXpPerkMultiplier 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):

LevelXP to Next LevelKills of Same-Level Mobs
108,50085
25132,812213
501,062,500425
753,585,937638
1008,500,000850
Armor Takes Longer

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:

TierUnlocks at
1Level 10
2Level 25
3Level 50
4Level 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.

What the skillbonuses files control

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

CommandPermissionDescription
/em skill check <player>elitemobs.skill.checkView a player's skill levels, XP progress, and percentages
/em skill set <player> <skillType> <level>elitemobs.skill.adminSet a specific skill to a given level
/em skill setAll <player> <level>elitemobs.skill.adminSet all skills to the same level
/em debug combat startelitemobs.adminStart automated combat system testing
/em debug combat test <type>elitemobs.adminTest a specific weapon type (e.g., swords, bows)
/em debug combat resultselitemobs.adminView the results of the last combat test
/em debug combat cancelelitemobs.adminCancel an active combat test
note

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:

SettingDefaultDescription
skillSystemEnabledtrueEnables or disables the entire skill system
armorSkillHealthBonusEnabledtrueWhether Armor skill grants bonus max health (+1 heart per level above 1)
scalePlayerHealthDisplayToVanillafalseKeeps EliteMobs max HP, but visually scales the player HUD back to the vanilla 10 hearts
forceDefaultHealthWhenArmorSkillHealthBonusDisabledfalseWhen 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 SkillsTitle of the skills menu
showCombatLevelDisplaytrueShow combat level number above players
showXPBartrueShow animated XP progress bar during combat
skillBarTitleFormat&6$skillName &7Lv.$level$xpTextXP bar title format
skillLevelUpTitleFormat&e&l✦ $skillName LEVEL UP! &7→ &eLv.$level &e&l✦Level up boss bar title format
combatLevelFormat&6&lCombat Lv. $levelCombat 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.