- Per player difficulty
- Dimension and biome specific ruleset
- Each ruleset can adjust entities and looted items
- Entities attributes and spawner settings can be adjusted (for example: more health, armor, etc...)
- Looted item attributes can be adjusted (for example: more damage on weapons)
- Fully data-driven (using the configuration file)
This mod assigns difficulty to a locations, in order to apply attribute modifiers to entities spawned there, and items looted there.
Difficulty consists of:
- type: which attributes get scaled (and by what ratio)
- for example:
Dungeon
- for example:
- level: is the general multiplier used when applying attribute modifiers
- for example:
2
- for example:
Difficulty can be assigned to various zone types, (resolved in the following priority):
- structures - for example:
minecraft:fortress - biomes - for example:
minecraft:desert - dimensions - for example:
minecraft:the_nether
When an entity spawns difficulty is resolved based on its location (checking structures first, than biomes, than dimensions), if difficulty is resolved successfully, a certain set of attribute modifiers (with level multiplied value) get applied onto it, making it stronger. Same logic applies to loot spawned (chest/drop location is checked to apply multipliers).
All of this location-difficulty assignment is specified by one gigantic config file.
The configuration is meant to be used by modpack developers, hence no in-game settings screen is available. Gameplay is configured server-side only, at config/dungeon_difficulty_v2.json. A separate, purely visual client settings file exists as well.
Config file is parsed into Config object. You can find it here. Config file is sanitized upon reloading, meaning every non-parsable data is removed.
Editing the config usually involves the steps below:
- Open the config file
- Define difficulty types (in
difficulty_typesarray), which describe scaling of entities - Define scaling of looted items (in
loot_scalingarray) - Assign difficulty to locations referencing a difficulty type by its name, and an arbitrary level.
- Relaunch the game or use the command
/dungeon_difficulty_config_reloadto apply changes. Warning: upon reloading, config file get sanitized, meaning every non-parsable data is removed.
Fields that reference some kind of in-game ID (like entity_type, biome, dimension, structure etc...) support universal pattern matching:
#prefix matches for tags (for example:#minecraft:undead)~prefix matches for regex (for example:~zombie)- no prefix matches for exact match (for example:
minecraft:skeleton) !prefix negates the match (for example:!minecraft:skeleton,!#minecraft:undead,!~zombie)*matches everything (wildcard)
- Check out the default configuration to see specific examples.
- Regex fields in the configuration are interpreted as fully featured regex. If you are unfamiliar with regex, first make sure to learn about it (start for example here). It is recommended to test out your regex patterns using tool: regex101.com
- Prefer tag matching instead of regex matching, whenever possible. Regex matching in general hurts server performance.
A few purely visual features can be adjusted per installation, at config/dungeon_difficulty/client_settings.json. These are cosmetic only, they never change gameplay.
| Setting | Default | Effect |
|---|---|---|
enable_overriding_enchantment_rarity |
true |
Enchanted items are displayed one rarity step higher |
enable_scaled_items_rarity |
true |
Items scaled by this mod are displayed one rarity step higher |
enable_rarity_color_override |
false |
Turns on the rarity recoloring described below |
rarity_color_overrides |
{"4": "GOLD"} |
Color to use per rarity |
Additionally, scaled items always show their power level in the tooltip.
Other mods often introduce new Rarity cases, whose colors are not always to everyone's taste. rarity_color_overrides maps a rarity ordinal to a Minecraft formatting name (such as GOLD, RED or DARK_AQUA), so any rarity can be recolored, vanilla or modded:
{
"enable_rarity_color_override": true,
"rarity_color_overrides": {
"3": "GOLD"
}
}Ordinals that are not listed keep their original color, and enable_rarity_color_override has to be true for any of them to take effect. Note that ordinals shift as rarity adding mods are installed or removed, so these entries may need revisiting after changing the mod list. Unknown color names and out of range ordinals are ignored, with a warning in the log.
