Mod

DifficultyEx

Quick rating

DifficultyEx

No reviews yet

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

Medieval
Fantasy
Magic
Adventure/Exploration
RPG
Survival
Player Leveling
Hostile Mobs
MMO Features
Mod Loaders
Fabric
Quilt
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Dev Environment
Client Required
Server Required

About

Project Details

Type
Mod
License
BML
Latest Version
1.0.1+1.20.1

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID
Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

DifficultyEx

“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:

  • The PlayerEx level of nearby players
  • The dimension it’s in
  • The biome it’s in
  • The structure it’s near
  • Optional per-entity overrides and blacklists

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.


🔹 Short Summary

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.


✨ Core Features

🔧 Level-based mob scaling

Every time a mob is loaded into the world, DifficultyEx:

  1. Looks at all nearby players in a configurable radius.
  2. Reads their PlayerEx level.
  3. Runs those levels through a configurable formula (x by default, via Crunch/exp4j).
  4. Averages the result and applies a small random adjustment.
  5. Clamps the final mob level using:
    • Global max & min
    • Dimension-specific min/max
    • Biome-specific min/max
    • Structure-specific min/max (nearest configured structure)
    • Per-entity min/max rules (by ID or regex)

📈 Scaled stats (health, damage, armor, XP)

Using mixins on vanilla logic, DifficultyEx scales several stats per mob level using configurable percentages:

  • Health – mobs gain more max HP per level
  • Damage – mobs hit harder per level
  • Armor – mobs get tougher to damage per level
  • XP reward – killing higher-level mobs gives more XP

All of these are controlled under scalingLevelSettings in the config:

  • entityBaseHealthPercentage
  • entityBaseDamagePercentage
  • entityBaseArmorPercentage
  • entityExperiencePercentage

There’s also:

  • entityStartingLevels – per-entity starting level (by ID/regex)
  • entityMaximumLevels – per-entity max level (by ID/regex)
  • mobBlacklist – entities that should never be scaled

🌍 Dimension, biome & structure rules

DifficultyEx lets you shape where things are dangerous:

Per-dimension settings

dimensionSettings:

  • startingLevels["minecraft:overworld"]
  • maximumLevels["minecraft:the_nether"], etc.

Per-biome settings

biomeScalingSettings:

  • startingLevels["minecraft:soul_sand_valley"]
  • maximumLevels["minecraft:deep_dark"]

Per-structure settings

structureScalingSettings:

  • radius – how far a structure affects mobs around it
  • startingLevels["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:

  • Tiered dungeons with higher minimum levels
  • Specific structures that cap level to avoid absurd values
  • Dimension/biome “bands” (safe overworld, brutal nether, etc.)

👁️ RPG-style mob nameplates

DifficultyEx includes a full nameplate system rendered through mixins into:

  • Vanilla MobRenderer
  • Geckolib’s GeoEntityRenderer / GeoReplacedEntityRenderer

Features (all configurable):

  • Toggleable nameplates
  • Level text, via text.nameplate.level (e.g. Lv. 24)
  • Optional health bar
  • Optional health text (current / max HP)
  • Customizable:
    • Render distance
    • Show hostile mobs only toggle
    • Y-offset above the mob’s head
    • Scale
    • Text color
    • Background color
    • Per-mob nameplate blacklist

These options live under client_settings.visualSettings in the config.


🧭 Traveler’s Titles integration (optional)

If Traveler’s Titles is installed, DifficultyEx adds a small compatibility layer:

  • When the biome title is updated, DifficultyEx sends a packet to the server.
  • The server calculates a level (based on your current environment & config).
  • The client updates the Traveler’s Titles biome title to include a level string (e.g. a “Zone Level” style display).

This is fully optional; if Traveler’s Titles is absent, the compat mixins simply never apply.


⚙️ Configuration

DifficultyEx uses owo-config with a generated config class:

  • File: config/difficultyex-config.json5
  • Mod Menu integration (@Modmenu) gives you a UI if Mod Menu is installed.

global_settings.dimensionSettings

Map from dimension ID to:

  • startingLevels
  • maximumLevels

Example:

"dimensionSettings": {
  "minecraft:overworld": {
    "startingLevels": 1,
    "maximumLevels": 50
  },
  "minecraft:the_nether": {
    "startingLevels": 10,
    "maximumLevels": 80
  }
}

DifficultyEx

“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:

  • The PlayerEx level of nearby players
  • The dimension it’s in
  • The biome it’s in
  • The structure it’s near
  • Optional per-entity overrides and blacklists

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.


🔹 Short Summary

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.


✨ Core Features

🔧 Level-based mob scaling

Every time a mob is loaded into the world, DifficultyEx:

  1. Looks at all nearby players in a configurable radius.
  2. Reads their PlayerEx level.
  3. Runs those levels through a configurable formula (x by default, via Crunch/exp4j).
  4. Averages the result and applies a small random adjustment.
  5. Clamps the final mob level using:
    • Global max & min
    • Dimension-specific min/max
    • Biome-specific min/max
    • Structure-specific min/max (nearest configured structure)
    • Per-entity min/max rules (by ID or regex)

📈 Scaled stats (health, damage, armor, XP)

Using mixins on vanilla logic, DifficultyEx scales several stats per mob level using configurable percentages:

  • Health – mobs gain more max HP per level
  • Damage – mobs hit harder per level
  • Armor – mobs get tougher to damage per level
  • XP reward – killing higher-level mobs gives more XP

All of these are controlled under scalingLevelSettings in the config:

  • entityBaseHealthPercentage
  • entityBaseDamagePercentage
  • entityBaseArmorPercentage
  • entityExperiencePercentage

There’s also:

  • entityStartingLevels – per-entity starting level (by ID/regex)
  • entityMaximumLevels – per-entity max level (by ID/regex)
  • mobBlacklist – entities that should never be scaled

🌍 Dimension, biome & structure rules

DifficultyEx lets you shape where things are dangerous:

Per-dimension settings

dimensionSettings:

  • startingLevels["minecraft:overworld"]
  • maximumLevels["minecraft:the_nether"], etc.

Per-biome settings

biomeScalingSettings:

  • startingLevels["minecraft:soul_sand_valley"]
  • maximumLevels["minecraft:deep_dark"]

Per-structure settings

structureScalingSettings:

  • radius – how far a structure affects mobs around it
  • startingLevels["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:

  • Tiered dungeons with higher minimum levels
  • Specific structures that cap level to avoid absurd values
  • Dimension/biome “bands” (safe overworld, brutal nether, etc.)

👁️ RPG-style mob nameplates

DifficultyEx includes a full nameplate system rendered through mixins into:

  • Vanilla MobRenderer
  • Geckolib’s GeoEntityRenderer / GeoReplacedEntityRenderer

Features (all configurable):

  • Toggleable nameplates
  • Level text, via text.nameplate.level (e.g. Lv. 24)
  • Optional health bar
  • Optional health text (current / max HP)
  • Customizable:
    • Render distance
    • Show hostile mobs only toggle
    • Y-offset above the mob’s head
    • Scale
    • Text color
    • Background color
    • Per-mob nameplate blacklist

These options live under client_settings.visualSettings in the config.


🧭 Traveler’s Titles integration (optional)

If Traveler’s Titles is installed, DifficultyEx adds a small compatibility layer:

  • When the biome title is updated, DifficultyEx sends a packet to the server.
  • The server calculates a level (based on your current environment & config).
  • The client updates the Traveler’s Titles biome title to include a level string (e.g. a “Zone Level” style display).

This is fully optional; if Traveler’s Titles is absent, the compat mixins simply never apply.


⚙️ Configuration

DifficultyEx uses owo-config with a generated config class:

  • File: config/difficultyex-config.json5
  • Mod Menu integration (@Modmenu) gives you a UI if Mod Menu is installed.

global_settings.dimensionSettings

Map from dimension ID to:

  • startingLevels
  • maximumLevels

Example:

"dimensionSettings": {
  "minecraft:overworld": {
    "startingLevels": 1,
    "maximumLevels": 50
  },
  "minecraft:the_nether": {
    "startingLevels": 10,
    "maximumLevels": 80
  }
}

Screenshots

Gallery

  • Various Settings
    Various Settings
  • Mob Healthbars
    Mob Healthbars
  • Various Settings
    Various Settings
  • Mob Healthbars
    Mob Healthbars

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

~2,000
Total Downloads
CurseForge
~1,000
Modrinth
<1,000
Last Updated
CurseForge
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched and imported data for this project from CurseForge or Modrinth. High-traffic and active projects are checked more often.
Next pipeline sync