“Because the game shouldn’t get easier just because you got better.”
DifficultyEx is a Fabric 1.20.1 dynamic difficulty system built around PlayerEx: Director’s Cut and Data Attributes: Director’s Cut.
Instead of every zombie, skeleton, or custom boss feeling identical in every world, DifficultyEx assigns each mob its own level, then scales its health, damage, armor, and XP rewards based on:
On top of that, it adds configurable RPG-style mob nameplates that show level and health above mobs’ heads, with support for both vanilla and Geckolib-rendered entities and optional integration with Traveler’s Titles.
DifficultyEx adds configurable, level-based mob scaling tied to PlayerEx, with biome/dimension/structure rules, XP/damage/armor/health scaling, and RPG-style mob nameplates.
Every time a mob is loaded into the world, DifficultyEx:
x by default, via Crunch/exp4j).Using mixins on vanilla logic, DifficultyEx scales several stats per mob level using configurable percentages:
All of these are controlled under scalingLevelSettings in the config:
entityBaseHealthPercentageentityBaseDamagePercentageentityBaseArmorPercentageentityExperiencePercentageThere’s also:
entityStartingLevels – per-entity starting level (by ID/regex)entityMaximumLevels – per-entity max level (by ID/regex)mobBlacklist – entities that should never be scaledDifficultyEx lets you shape where things are dangerous:
dimensionSettings:
startingLevels["minecraft:overworld"]maximumLevels["minecraft:the_nether"], etc.biomeScalingSettings:
startingLevels["minecraft:soul_sand_valley"]maximumLevels["minecraft:deep_dark"]structureScalingSettings:
radius – how far a structure affects mobs around itstartingLevels["minecraft:ancient_city"]maximumLevels["minecraft:ancient_city"]The mod uses the nearest configured structure within the configured radius to clamp mob level, so you can make, for example:
DifficultyEx includes a full nameplate system rendered through mixins into:
MobRendererGeoEntityRenderer / GeoReplacedEntityRendererFeatures (all configurable):
text.nameplate.level (e.g. Lv. 24)These options live under client_settings.visualSettings in the config.
If Traveler’s Titles is installed, DifficultyEx adds a small compatibility layer:
This is fully optional; if Traveler’s Titles is absent, the compat mixins simply never apply.
DifficultyEx uses owo-config with a generated config class:
config/difficultyex-config.json5@Modmenu) gives you a UI if Mod Menu is installed.global_settings.dimensionSettingsMap from dimension ID to:
startingLevelsmaximumLevelsExample:
"dimensionSettings": {
"minecraft:overworld": {
"startingLevels": 1,
"maximumLevels": 50
},
"minecraft:the_nether": {
"startingLevels": 10,
"maximumLevels": 80
}
}

DifficultyEX is a dynamic MMORPG-Styled levelling mod made to pair with PlayerEX.