HomeJavaModsFurther Difficulty Config
Further Difficulty Config
ModsJava

Further Difficulty Config

by saltlamp_ · on Modrinth

Progressive difficulty mod with configurable stages. Triggered by events, each stage boosts mob stats (health, armor, etc.), includes blacklist, four…

⬇ Download on Modrinth
Further Difficulty Config — screenshot 1Further Difficulty Config — screenshot 2Further Difficulty Config — screenshot 3Further Difficulty Config — screenshot 4Further Difficulty Config — screenshot 5

Further Difficulty

Further Difficulty is a Minecraft NeoForge mod designed to add progressive difficulty through a configurable world progression system. You can define multiple stages, each with independent triggers, mob blacklists, and attribute modifiers (health, armor, armor toughness, attack damage). All configurations are done via simple JSON files, and the mod supports in-game command reloading and progress management.

✨ Features

📥 Installation

  1. Ensure you have NeoForge 1.21.1 or a compatible version installed.
  2. Put the downloaded further_difficulty-X.X.X.jar into the mods folder.
  3. The default config file further_difficulty.json will be generated in the config directory on first run.

⚙️ Configuration

The configuration file is located at config/further_difficulty.json and uses JSON format. The default content is:

{
  "mode": "strict",
  "stages": [
    {
      "id": "nether_entry",
      "trigger": {
        "type": "dimension",
        "target": "minecraft:the_nether"
      },
      "triggerMessage": "A tremor echoes from the core...",
      "blacklist": [],
      "modifiers": {
        "healthMultiplier": 1.5,
        "healthAddition": 0.0,
        "armorMultiplier": 2.0,
        "armorAddition": 5.0,
        "toughnessMultiplier": 2.0,
        "toughnessAddition": 5.0,
        "attackMultiplier": 2.0,
        "attackAddition": 0.0
      }
    },
    {
      "id": "dragon_kill",
      "trigger": {
        "type": "kill",
        "target": "minecraft:ender_dragon"
      },
      "triggerMessage": "You have broken an ancient taboo...",
      "blacklist": [],
      "modifiers": {
        "healthMultiplier": 2.0,
        "healthAddition": 0.0,
        "armorMultiplier": 2.0,
        "armorAddition": 5.0,
        "toughnessMultiplier": 2.0,
        "toughnessAddition": 5.0,
        "attackMultiplier": 2.0,
        "attackAddition": 0.0
      }
    }
  ]
}

Top-level Fields

Field Type Description
mode string Progression mode (see table below)
stages array List of stages, defined in order (index 0,1,2,...)

Stage Fields

Field Type Description
id string Unique identifier for the stage, used in commands and storage
trigger object Trigger condition, containing type and target
triggerMessage string Global message broadcast when the stage is first triggered
blacklist array List of entity IDs (e.g., "minecraft:skeleton") banned from spawning while this stage is locked
modifiers object Attribute modifier settings (see below)

Modifiers Fields

Field Type Description
healthMultiplier double Health multiplier
healthAddition double Flat health addition
armorMultiplier double Armor multiplier
armorAddition double Flat armor addition
toughnessMultiplier double Armor toughness multiplier
toughnessAddition double Flat armor toughness addition
attackMultiplier double Attack damage multiplier
attackAddition double Flat attack damage addition

Note: Final attribute value = (base value × multiplier) + addition. Modifiers from all unlocked stages are applied cumulatively (multipliers multiply, additions add).

📈 Stage Expansion and Limitations

1. Stage Count Limit

Internally, the mod uses an int bitmask to store completed stage indices, which supports up to 31 stages (bits 0 to 30). This is because Java int is 32-bit signed; the highest bit (bit 31) is the sign bit, leaving 31 usable bits. If you configure more than 31 stages, the extra stages will not be stored or recognized correctly.

If you need more than 31 stages, you can modify the source code:

2. How to Add New Stages

Adding a new stage is simple: just append a new stage object to the stages array in the config file. Keep in mind:

Example: Adding a third stage (killing the Ender Dragon)

{
  "mode": "progressive",
  "stages": [
    // ... previous stages ...
    {
      "id": "ender_dragon_kill",
      "trigger": { 
        "type": "kill", 
        "target": "minecraft:ender_dragon" 
      },
      "triggerMessage": "The dragon falls, the world trembles...",
      "blacklist": [],
      "modifiers": {
        "healthMultiplier": 3.0,
        "healthAddition": 10,
        "armorMultiplier": 1.5,
        "armorAddition": 2,
        "toughnessMultiplier": 1.5,
        "toughnessAddition": 2,
        "attackMultiplier": 2.0,
        "attackAddition": 3
      }
    }
  ]
}

🎮 Commands

All commands require permission level 2 (typically operator/admin). The command prefix is /furtherdifficulty.

Command Description
/furtherdifficulty reload Reload the config file config/further_difficulty.json
/furtherdifficulty progress set <stageId> Force-complete the specified stage (if not already completed)
/furtherdifficulty progress reset Reset all progress (clear completed stages)

Examples

/furtherdifficulty reload
/furtherdifficulty progress set nether_entry
/furtherdifficulty progress reset

🧠 Progression Modes

Mode Name Config Value Behavior Description
Strict strict Stages must be completed in order: stage 1 must be completed before stage 2, stage 2 before stage 3, etc.
Progressive progressive Completing stage N automatically activates all effects of stages 0 through N (cumulative). Example: completing stage 2 applies stages 0, 1, and 2.
Unordered unordered Stages can be triggered in any order; each stage's effects are applied independently and cumulatively. Completing stage 0 and stage 2 applies both.
First Only first_only Only the first triggered stage takes effect; subsequent stages are ignored (only broadcast their message).

💾 Data Storage

Progress data is stored in the overworld's level.dat using NeoForge's Attachment system. This means:

Stored data:

🗑️ Uninstallation Notes

📝 Developer Info

You are free to include this mod in your modpack. Attribution is appreciated but not required.

- 中文介绍:

Further Difficulty

Further Difficulty旨在通过可配置的世界进度机制,为游戏增加渐进式难度。

你可以定义多个阶段(Stage),每个阶段可独立配置触发条件、生物黑名单和属性增强(生命值、护甲、护甲韧性、攻击力)。

所有配置通过简单的 JSON 文件完成,并支持游戏内指令热重载和进度管理。

✨ 特性

多阶段进度系统:支持任意数量的阶段,每个阶段有唯一 ID。

四种进度模式:strict、progressive、unordered、first_only,满足不同难度设计需求。

灵活的触发条件:阶段可通过进入特定维度(如 minecraft:the_nether)或击杀特定生物(如 minecraft:ender_dragon)触发。

生物黑名单:每个阶段可独立配置黑名单,未解锁阶段中的生物将无法生成(允许刷怪蛋生成黑名单中的怪物)

属性增强:对生命值、护甲、护甲韧性、攻击力分别设置倍数和固定加值。

热重载指令:/furtherdifficulty reload 在不重启服务器的情况下重新加载 config/further_difficulty.json

进度管理指令

/furtherdifficulty progress set <stageId>
/furtherdifficulty progress reset

方便测试与调试。

完全本地化:指令反馈支持多语言(内置英文和简体中文)。

开源 & MIT 许可证:允许自由使用、修改和整合。

📥 安装

⚙️ 配置文件

{
  "mode": "strict",
  "stages": [
    {
      "id": "nether_entry",
      "trigger": {
        "type": "dimension",
        "target": "minecraft:the_nether"
      },
      "triggerMessage": "地核某处传来一阵悸动...",
      "blacklist": [],
      "modifiers": {
        "healthMultiplier": 1.5,
        "healthAddition": 0.0,
        "armorMultiplier": 2.0,
        "armorAddition": 5.0,
        "toughnessMultiplier": 2.0,
        "toughnessAddition": 5.0,
        "attackMultiplier": 2.0,
        "attackAddition": 0.0
      }
    },
    {
      "id": "dragon_kill",
      "trigger": {
        "type": "kill",
        "target": "minecraft:ender_dragon"
      },
      "triggerMessage": "似乎打破了某种未知的禁忌...",
      "blacklist": [],
      "modifiers": {
        "healthMultiplier": 2.0,
        "healthAddition": 0.0,
        "armorMultiplier": 2.0,
        "armorAddition": 5.0,
        "toughnessMultiplier": 2.0,
        "toughnessAddition": 5.0,
        "attackMultiplier": 2.0,
        "attackAddition": 0.0
      }
    }
  ]
}
字段 类型 描述
mode string 进度模式,可选值见下文
stages array 阶段列表,按顺序定义(索引从0开始)
字段 类型 描述
id string 唯一标识符,用于进度存储和指令操作
trigger object 触发条件,包含 type 和 target
triggerMessage string 阶段首次触发时全局广播的消息
blacklist array 该阶段未解锁时禁止生成的生物 ID 列表(例如 "minecraft:skeleton")
modifiers object 属性增强配置,见下表
字段 类型 描述
healthMultiplier double 最大生命值倍数
healthAddition double 最大生命值固定增加值
armorMultiplier double 护甲值倍数
armorAddition double 护甲值固定增加值
toughnessMultiplier double 护甲韧性倍数
toughnessAddition double 护甲韧性固定增加值
attackMultiplier double 攻击力倍数
attackAddition double 攻击力固定增加值

注意:最终属性值 = (基础值 × 倍数) + 固定增加值。所有已解锁阶段的修饰符会按顺序累积(倍数相乘,加值相加)。

📈 阶段扩展与限制

1.阶段数量限制

由于模组内部使用 int 类型的位掩码来存储已完成的阶段索引,理论上最多支持 31 个阶段(位 0 到 30)。

这是因为 int 在 Java 中为 32 位有符号整数,最高位(第 31 位)为符号位,实际可用 31 位。

如果配置的阶段数量超过 31,超出的阶段将无法被正确存储和识别。

将 ModAttachments.java 中 COMPLETED_CONDITIONS 的类型从 Codec.INT 改为 Codec.LONG(支持最多 63 个阶段),并同步修改所有位操作(将 1 << i 改为 1L << i)。

或改用 BitSet 并序列化为字节数组,理论上无上限。

2.如何扩展阶段

扩展阶段非常简单,只需在配置文件 stages 数组的末尾添加新的阶段对象。注意:

每个阶段必须有一个唯一的 id,建议使用语义化的字符串(如 "ender_dragon_kill")。

在 strict 模式下,阶段必须按顺序触发(阶段0 → 阶段1 → 阶段2 → …)。

在 progressive 模式下,完成阶段 N 会自动激活 0 到 N 的所有效果。

在 unordered 和 first_only 模式下,阶段之间无顺序依赖,但已完成列表仍按 ID 记录。

{
  "mode": "progressive",
  "stages": [
    // ... 原有阶段 ...
    {
      "id": "ender_dragon_kill",
      "trigger": { 
        "type": "kill", 
        "target": "minecraft:ender_dragon" 
      },
      "triggerMessage": "巨龙陨落,世界震颤...",
      "blacklist": [],
      "modifiers": {
        "healthMultiplier": 3.0,
        "healthAddition": 10,
        "armorMultiplier": 1.5,
        "armorAddition": 2,
        "toughnessMultiplier": 1.5,
        "toughnessAddition": 2,
        "attackMultiplier": 2.0,
        "attackAddition": 3
      }
    }
  ]
}

🎮 指令系统 所有指令需要 权限等级 2(通常为管理员/OP)。指令前缀为 /furtherdifficulty。

指令 描述
/furtherdifficulty reload 重新加载 config/further_difficulty.json 配置文件
/furtherdifficulty progress set <stageId> 强制完成指定 ID 的阶段(如果尚未完成)
/furtherdifficulty progress reset 重置所有进度记录(清空已完成阶段)
/furtherdifficulty reload
/furtherdifficulty progress set nether_entry
/furtherdifficulty progress reset

🧠 进度模式详解

模式名称 配置值 行为描述
严格前置 strict 阶段必须按顺序完成:完成阶段1后才能触发阶段2,完成阶段2后才能触发阶段3,以此类推。
递进式 progressive 完成阶段 N 时,自动激活阶段 0 到 N 的所有效果(即累积增强)。例如完成阶段2,则阶段0、1、2全部生效。
无序叠加 unordered 阶段可任意顺序触发,每个阶段独立生效,效果累积。完成阶段0和阶段2,则两者效果均生效。
仅首次 first_only 只有第一个触发的阶段生效,后续阶段被忽略(仅广播消息)。

💾 数据存储

completed_conditions:已完成阶段的 ID 列表(List)

first_condition:最先完成的阶段 ID(String,用于 first_only 模式)

🗑️卸载说明

📝 开发者信息

你可以在整合包中使用,请保留原作者署名(非强制,但很感谢)

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