HardMob
HardMob makes every mob more dangerous and rewarding as your world ages. Mobs gain a level based on in‑game days, their attributes scale accordingly, and a configurable chance turns them into elite bosses with special loot and visuals.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
HardMob
HardMob
> RPG‑style mob levelling and elite bosses for your Minecraft server.
elite bosses makes every mob more dangerous and rewarding as your world ages. Mobs gain a elite bosses based on in‑game days, their attributes scale accordingly, and a configurable chance turns them into elite bosses with special loot and visuals.

---
✨ Features
- 🧮 Commands – mobs scale from 1 to 99 depending on world age. - 📈 Commands – health, damage, speed, knockback resistance all grow with level. - 👑 Commands – bosses with configurable size, full armour, and custom drops. - 🎲 Commands – uniform, more low levels, or more high levels. - 🧪 Commands – high‑level mobs can receive random buffs. - 🖼 Commands – custom nameplates showing health & level, dynamic mob sizes. - 🌍 Commands and Commands for precise control. - ⚙️ Commands – spawn custom mobs or bosses manually with `/hardmob`.
---
📦 Requirements
- Java: Paper 1.21.* - Java: 17 or newer
---
🚀 Installation
1. Download the latest `HardMob.jar` from the Releases page. 2. Place it into the `plugins/` folder of your server. 3. Restart the server (a full restart is recommended over `/reload`). 4. Edit `plugins/HardMob/config.yml` to your liking. 5. Apply changes with `/hardmob reload` (no restart needed).
---
⚙️ Configuration
All settings live in `plugins/HardMob/config.yml`. Below is the complete reference. You can also read the comments inside the file itself.
General
```yaml general: enabled: true # Master switch for the entire plugin ```
Level System
```yaml level_system: enabled: true formula: A: 99.0 # max level after infinite days B: 98.0 # difference at day 0 C: 40.0 # days until ~63% of max distribution: uniform # uniform | weighted_low | weighted_high scaling: health_percent_per_level: 2.0 damage_percent_per_level: 1.5 speed_percent_per_level: 0.3 knockback_resist_per_level: 0.01 equipment: thresholds: 20: chainmail 40: iron 60: diamond 80: netherite enchant_multiplier: 0.2 potion_effects: chance_per_level: 0.5 duration_multiplier: 1.0 amplifier_base: 0 max_duration_seconds: 600 ```
Elite Mobs
```yaml elite_mobs: enabled: true spawn_chance_percent: 0.5 # 0.5% chance to become elite health_multiplier: 2.0 damage_multiplier: 2.0 speed_multiplier: 0.7 size: 2.0 always_equipped: true drops: diamonds: { min: 0, max: 4 } gold: { min: 0, max: 20 } music_discs: - MUSIC_DISC_13 ... exp_per_level: 10 ```
Visual
```yaml visual: dynamic_size: enabled: true min: 0.8 max: 1.2 custom_name: enabled: true visible: false format: "&8[&c%health%&8/&c%max_health%&8] &f%name% &8[&6%level% lvl&8]" format_boss: "&8[&c%health%&8/&c%max_health%&8] &f%name% &8[&4BOSS&8]" colors: low_level: "GREEN" medium_level: "YELLOW" high_level: "RED" boss: "DARK_RED" ```
Restrictions & Debug
```yaml world_blacklist: - world_the_end # worlds where HardMob won't run mob_whitelist: [] # empty = all mobs allowed debug_mode: false ```
---
🛡 Commands & Permissions
| Command | Permission | Description | |--------------------------------------|----------------------|------------------------------------------------| | `/hardmob reload` | `hardmob.reload` | Reloads the configuration | | `/hardmob spawn <mob> <level> [elite]` | `hardmob.spawn` | Spawns a HardMob mob with specified level | | `/hardmob spawnboss <mob> <level>` | `hardmob.spawnboss` | Spawns an elite boss with specified level |
- `<mob>` – entity type name, e.g. `ZOMBIE`, `SKELETON`, `CREEPER`. - `<level>` – integer between 1 and 99. - `[elite]` – optional flag; if present, the mob is elite (same as `spawnboss`). - All permissions default to op (server operators).
---
❓ FAQ
Q: Mobs aren’t changing at all. What should I check? A: Ensure `general.enabled` is `true`, the world isn’t in `world_blacklist`, and the mob type is either in the whitelist or the whitelist is empty (which allows all non‑player entities).
Q: Can I disable elite drops? A: Yes. Set `elite_mobs.drops.diamonds.max`, `gold.max`, etc., to `0` and clear the `music_discs` list.
Q: Does HardMob work with MythicMobs / other mob plugins? A: Generally yes, as long as the other plugin doesn’t permanently override the entity’s custom name or the `GENERIC_SCALE` attribute. You can use the `mob_whitelist` to restrict HardMob to only certain mobs.
Q: How does the level formula work? A: The maximum possible level grows over time: `maxLevel = A - B * exp(-days / C)` where `days = world.getFullTime() / 24000`. The formula asymptotically approaches `A` (default 99). The actual level of a freshly spawned mob is then rolled randomly within `[1, maxLevel]` according to the configured distribution.