HomeJavaModsConfigurable Difficulty
Configurable Difficulty
Configurable Difficulty — screenshot 1Configurable Difficulty — screenshot 2

Configurable Difficulty

A server-side Minecraft mod that adjusts entity attributes based on their biome, dimension, and depth. Supports both NeoForge and Fabric mod loaders.

Features

Configuration

The config file is located at config/configurable-difficulty.json5.

Example Configuration

{
  "enabled": true,
  "playerMode": "dynamic",
  "mobMode": "spawn_only",
  "checkInterval": 20,
  
  // Players: Always affected (luck attribute only)
  // Mobs: Which entity types should be affected (all attributes except luck)
  "applyToHostileMobs": true,
  "applyToPassiveMobs": false,
  "applyToNeutralMobs": false,
  
  "debug": {
    "enabled": false,
    "logBiomeChanges": true,
    "logAttributeChanges": true
  },
  
  "enabledAttributes": {
    // Mob attributes: maxHealth, armor, armorToughness, attackDamage, attackSpeed, attackKnockback, knockbackResistance
    // Player attribute: luck (loot quality)
    "maxHealth": true,
    "armor": true,
    "armorToughness": true,
    "attackDamage": true,
    "attackSpeed": false,
    "attackKnockback": false,
    "knockbackResistance": true,
    "luck": false
  },
  
  "dimensionMultipliers": {
    "minecraft:overworld": {
      "maxHealth": 1.0,
      "armor": 1.0,
      "attackDamage": 1.0,
      "luck": 1.0
    },
    "minecraft:the_nether": {
      "maxHealth": 1.5,
      "armor": 1.3,
      "attackDamage": 1.5,
      "luck": 1.2
    },
    "minecraft:the_end": {
      "maxHealth": 2.0,
      "armor": 1.5,
      "attackDamage": 2.0,
      "luck": 1.5
    }
  },
  
  "biomeMultipliers": {
    "minecraft:desert": {
      "maxHealth": 1.5,
      "armor": 0.8,
      "attackDamage": 1.3,
      "knockbackResistance": 0.1,
      "luck": 1.1
    },
    "minecraft:deep_dark": {
      "maxHealth": 2.5,
      "armor": 2.0,
      "armorToughness": 1.5,
      "attackDamage": 2.0,
      "knockbackResistance": 0.4,
      "luck": 1.5
    }
  },
  
  "depthScaling": {
    "enabled": false,
    "yThreshold": 0,
    "maxDepth": -64,
    "scalingMode": "linear",
    "maxMultipliers": {
      "maxHealth": 2.0,
      "armor": 1.5,
      "attackDamage": 1.5,
      "luck": 1.3
    }
  }
}

Multiplier Calculation

The final multiplier for any attribute is calculated as:

Final Multiplier = Dimension Multiplier × Biome Multiplier × Depth Multiplier

Example 1: Nether Zombie in Crimson Forest

Example 2: Overworld Zombie in Deep Dark at Y=-32

Example 3: Player in The End

Adding Modded Biomes and Dimensions

Adding Modded Biomes

Simply add the biome ID to the biomeMultipliers section:

"biomeMultipliers": {
  "biomesoplenty:ominous_woods": {
    "maxHealth": 2.0,
    "attackDamage": 1.8
  },
  "terralith:volcanic_peaks": {
    "maxHealth": 2.3,
    "armor": 1.8,
    "attackDamage": 1.9
  }
}

Adding Modded Dimensions

Simply add the dimension ID to the dimensionMultipliers section:

"dimensionMultipliers": {
  "minecraft:overworld": {
    "maxHealth": 1.0,
    "attackDamage": 1.0,
    "luck": 1.0
  },
  "twilightforest:twilight_forest": {
    "maxHealth": 1.3,
    "attackDamage": 1.3,
    "luck": 1.1
  },
  "aether:the_aether": {
    "maxHealth": 0.8,
    "attackDamage": 0.8,
    "luck": 1.2
  }
}

Note: Unconfigured dimensions automatically fall back to the Overworld settings as a baseline.

How It Works

Multiplier System

The mod applies attribute modifiers using a three-tier multiplier system:

  1. Dimension Multiplier: Base difficulty for the entire dimension

    • Applied to all entities in that dimension
    • Higher values make the whole dimension harder
  2. Biome Multiplier: Specific difficulty per biome

    • Applied on top of the dimension multiplier
    • More dangerous biomes have higher multipliers
  3. Depth Multiplier: Progressive difficulty based on Y-coordinate

    • Only applies in the Overworld
    • Entities deeper underground face higher multipliers
    • Configurable threshold and max depth

Final Formula: Dimension × Biome × Depth

Player Attribute Split

Players receive different attributes than mobs:

Spawn-Only Mode (Default for Mobs)

When an entity spawns:

  1. Checks the spawn dimension and biome
  2. Calculates combined multiplier (dimension × biome)
  3. Applies attribute multipliers
  4. Entity keeps those stats forever, even if it moves

Dynamic Mode (Default for Players)

Every checkInterval ticks (default 20 = 1 second):

  1. Checks entity's current dimension and biome
  2. If changed from previous, recalculates multiplier
  3. Removes old modifiers and applies new ones
  4. Health percentage is preserved when max health changes

Depth Scaling (Overworld Only)

Example (config: yThreshold=0, maxDepth=-64):

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more