LR's Dynamic Dungeon logo

LR's Dynamic Dungeon

Mod

by LinkedR

Explore randomized dungeons in this rogue-like dimension, featuring various biomes, difficulty configuration, and rewards!

Downloads

322,938

Type

Mod

CurseForge ID

1325383

Last Updated

Apr 9, 2026

Description

This mod is inspired by other dungeon mods and various roguelike games.

 

Short description.

Craft yourself a dungeon pass, build a platform, activate the portal, and enter the dungeon! In there you will encounter various threats, test your strength, and be rewarded for your efforts!

description_d49ac5b3-c137-40e4-ba6a-e94411c683e8.gif

(The showcase above includes attack animations from Better-Combat. All third-party content remains the property of its original creators)

I suggest pairing this with LR's Blockollection to have more biomes!

Not-so-short description.

-Explored all nearby structures and now tired of searching for hours just for a bit of action?
-Want to test your equipment in a location where threats are guaranteed to be there?
-Trying out your luck to see if you can get that sweet loot?
-Want to be lost in randomly-generated dungeons?

I cannot guarantee this will be the fix to all of that but might be worth a try!

This mod introduces a new dungeon dimension which focuses on repeated dungeon runs, with features such as;
-Hand-crafted structures.
-Random enemy selection.
-Random biome selection.
-Treasure rooms.

You can also use Challenger Pass tickets to increase the difficulty of a dungeon run, which raises enemy stats in exchange of more loot!
These tickets also stack, if you want to fight a zombie with 1000 HP and 100 hearts of damage per hit, then there isn't anything stopping you!

 

Items and mechanics.

-The Dungeon Pass.

(Crafted with 3 paper and any vanilla monster part)
description_57bd0c23-4c5c-401a-b6b2-b87ae3072fa7.png
Build a flat platform out of Chiseled Stone Bricks and a ceiling out of any block of your choice, then use the Dungeon Pass on the platform to activate the dungeon portal!

Use the Dungeon Pass on an active portal to reset the dungeon, reverting back to stage 1 and the dungeon difficulty back to level 1!

-The Challenger Pass.

(Crafted with 3 paper and 4 vanilla monster parts)
description_2398b12c-ca35-48b6-ac63-872149b93853.png
Use on an active portal to increase the difficulty of the current dungeon run, by increasing enemy HP and enemy damage in exchange of more loot! This resets together with the dungeon run.

-The Stage Refill.

(Crafted with a Dungeon Pass and 4 cobblestone)
description_a1733696-0291-4db3-9d31-0001b8990db8.png
Use on an active portal to remake the current stage, this is to be used in scenarios such as incomplete dungeon generation, such as encountering only dead-ends.

-The Dungeon Refill.

(Crafted with a Dungeon Pass and 8 cobblestone)
description_ea2c4e0a-6e26-46db-a26b-b9d4e71158d5.png
Similar to the Stage Refill, use on an active portal, but this will refill all stages.
(In comparison to the Stage Refill, which only refills the current stage)

 

Content addition.

The following is for mod makers or anyone that really knows what they're doing, as modifying things incorrectly can cause unexpected results, including possible game crashing.
More biomes, mobs, and loot can be added into the dungeon through datapacks or mods by following the correct structure!

To add mobs:

To add mobs you can create a directory at data/lrdynamicdungeon/enemy_pool/compatibility/ (for example data/lrdynamicdungeon/enemy_pool/compatibility/my_mod_id/) and include a json file per stage (stage_1.json, stage_3.json, etc, it is not mandatory to have one for every stage), in there you can add mobs (or mob groups) into any of those files for the stage you want it to show up at, following the formula of:

{
  >enemy type<: [
    [
      [>enemy id<, >x offset<, >y offset<, >z offset<, >optional NBT data<]
    ]
  ]
}


For example, to add a big slime into the "ground" pool:

{
  "ground": [
    [
      ["minecraft:slime", 0, 0, 0, { "Size": 2 } ]
    ],
    >other groups<
  ],
  >other types<
}

Or a group of enemies, such as 3 x spiders AND 1 x zombie:

{
  "ground": [
    [
      ["minecraft:spider", 0, 0, 0],
      ["minecraft:spider", 0, 0, 0],
      ["minecraft:spider", 0, 0, 0],
      ["minecraft:zombie", 0, 0, 0]
    ],
    >other groups<
  ],
  >other types<
}

Look at the stage files at data/lrdynamicdungeon/enemy_pool/stage/ for reference.

All enemies added will go through a filter to ensure they exist in the modpack, skipping any group that contains invalid entries, while accepting the rest!

 

To add treasure loot:

To add loot you can create a directory at data/lrdynamicdungeon/dungeon_loot/compatibility/ (for example data/lrdynamicdungeon/dungeon_loot/compatibility/my_mod_id/) and include a json file per stage (stage_1.json, stage_3.json, etc, it is not mandatory to have one for every stage), in there you can add loot (or loot groups) into any of those files for the stage you want it to show up at, following the formula of:
{
  >category, can make a new one too<: {
    "weight": >OPTIONAL, overwrites the weight for the category<,
    "weightAdd": >OPTIONAL, adds to the weight for the category<,
    "loot": [
      [
        [ >item id<, >quantity< ]
      ],
      >loot group 2<,
      >loot group 3<,
      >etc...<
    ]
  }
}

For example, to either find 2 x stacks of potatoes, OR half a stack of bread:
{
  "consumable": {
    "weightAdd": 1,
    "loot": [
      [
        [ "minecraft:potato", 64 ],
        [ "minecraft:potato", 64 ]
      ],
      [
        [ "minecraft:bread", 32 ]
      ]
    ]
  },
  >other categories<
}

Keeping in mind that if the category exists, it will merge with it (in this example, it will merge with "consumable")
If the category doesn't exist: it will simply create a new category, if "weight" is not set, then it will default it to 3.

The higher the category's "weight", the bigger the chances the loot will roll into it, most categories are at around the weight of 3.

Look at the stage files at data/lrdynamicdungeon/dungeon_loot/ for reference.

All loot added will go through a filter to ensure they exist in the modpack (this includes enchantments), skipping any group that contains invalid entries, while accepting the rest!


To add dungeon biomes and rooms:

Dungeon Biomes rely on two parts: structure files for the rooms to spawn, and a json file to indicate where these rooms should spawn.

Structures and their location.

Structures are to be placed at data/lrdynamicdungeon/structures/, you can then make a directory with a biome name of your choice, for example data/lrdynamicdungeon/structures/swamp/

Each biome requires a start room, at least one boss room, and at least one standard room, structured as:
data/lrdynamicdungeon/structures/your_biome/
├-start.nbt
├-start.meta
├-boss/
| ->your boss room nbt + meta files<
┕-standard/
  ->your standard room nbt + meta files<

Keep in mind that the start room has to be named "start" otherwise it will not be recognised!
You can add as many boss rooms and standard rooms as you want, these will get picked at random when in the biome, and you can give the rooms any names of your choice!

 

Room making.

 Every room is made of one structural .NBT file and a .META file, both with matching names, for example crossing.nbt and crossing.meta, where the nbt holds the structural information (blocks, blockstates, etc), and the meta file holds positioning information for when the room is to be placed.

You can make the structure nbt file in any preferred method! (The in-game structure blocks, or a software, or coding it yourself, etc), the general rules are:

-Do not build the rooms inside the dungeon dimension, as it will cause logic blocks to activate.


Doors
(Room Connection Block):
description_92aac493-d541-4773-999a-a5391bfb8957.png
-Made in a 3x3 vertical wall, these have to be placed at the edge of a room for it to work.
-You can change the chance for a treasure room by right-clicking the central block (Changing the chance on surrounding blocks will be do nothing).
-I suggest making all doors face different edges of the room, if you place doors too close to each other, chances are one door will fail to generate a room.

Enemy Spawn Blocks:
description_3d7c96fe-25c4-44bd-b546-53539f5ea779.png

-These will deal with picking a random enemy from the corresponding group (ground, flying, boss, etc).
-You can cycle through the types by right-clicking the block.

Lock Blocks:
description_4ffa0655-0376-480a-9c67-0e81ac3c370e.png
-Make a regular 3x3 door (out of Room Connection Blocks), and replace the centre with a lock block, this will add the logic of needing to clear the enemies in the room before proceeding.
-You can also right-click these locks to change the treasure chance when it becomes unlocked.

Start rooms:
description_faa354e9-f24c-439b-866e-6e58580bedaf.png
-Include a dungeon portal, this lets players traverse back.
-Include at least one door.

Standard rooms:
description_f4399b8c-fae5-4b2b-a2ef-beb4693b1719.png
-Include an open 3x3 entrance that faces South (So when you enter the room, you are facing North).
-Recommended to include at least one enemy spawn block.
-Include at least one door.

Boss rooms:
description_98d6a695-e5b0-4d4b-9752-ced7fefb3713.png
-Include an open entrance that faces South (So when you enter the room, you are facing North).
-Include an Enemy Spawn Boss Block.
-Include a Next Stage Portal Block somewhere in the floor, only need one block, this will transform the blocks around it once the boss is defeated.

The meta file for each room:
-These files are structured like this:
{
  "doors": [
    {
      "facing": "south",
      "leftshift": >value<,
      "verticalshift": >value<,
      "backshift": >value<

    }
  ]

}

these values are used as an anchor to shift the room during placement, easiest way to calculate this is to face North and measure;
-leftshift: from the centre of the entrance to the left wall, and remove 1.
-verticalshift: from the centre of the entrance to the lowest block, and remove 1.
-backshift: the length of the room from north to south (including walls).

description_b95058d7-395d-4abd-8401-cc9e4da60410.png

 


The compatibility json file.

Once you have your base structure files (nbt and meta for the start room, at least one standard room, and at least one boss room) and placed them at the correct path (inside data/lrdynamicdungeon/structures/your_biome/), you can now make the compatibility json file that will be located at data/lrdynamicdungeon/dungeon/compatibility/, for example data/lrdynamicdungeon/dungeon/compatibility/your_mod_id.json, in that file you want to add the following content:

{
  "requires": [ >array of required mods< ],
  "stages": {
    >stage number<: [ >array of biomes to add< ],
    >repeat for other stages<
  }

}

For example;
If you made 3 biomes, and you want to add one to stage 3, and the other two to stage 5, while ensuring "mod_1" and "mod_2" are present, the content will look like this:

{
  "requires": ["mod_1", "mod_2"],
  "stages": {
    "3": ["biome_1"],
    "5": ["biome_2", "biome_3"]
  }
}

Look at the files at data/lrdynamicdungeon/dungeon/ for reference.

 

If followed these steps correctly, your biomes and custom rooms will show up in the dungeon! You can confirm if your biome has been registered when launching a world and looking into the logs for "[Dungeon Compat] Compatibility attempted, current stages:" which will display the currently loaded biomes, if successful, your biome will be in the list!

 

Compatibility.

This mod includes built-in compatibility with my other mod: LR's Blockollection, which adds additional biomes into the dungeon.

I encourage mod-makers to add compatibility with this mod! You can add your content into the dungeon by following the documents above, should hopefully be simple to follow! (Mobs and Items are pretty straight forward, making a biome requires the making of structures)

In addition, this mod also includes some in-built compatibility with the following mods:
Mobs that are automatically added to the dungeon generation:
-Aether
-Ancient Legends by TDO
-Ars Nouveau
-Box of Horrors
-Deeper and Darker
-L_Ender's Cataclysm
-Legendary Armory
-Legendary Monsters
-Mowzie's Mobs
-Strongy
-Thermal
-Twilight Forest

Items/enchantments that are automatically added to the treasure rooms:
-Apotheosis
-Apotheotic Additions
-Applied Energistics 2
-Better Weaponry
-Cobblemon
-Create
-Cyclic
-Draconic Evolution
-Homebound
-L2 Complements
-Legendary Armory
-Mekanism
-Powah
-Primal Magick
-Solar Craft
-Strongy
-Thermal
-Twilight Forest

Screenshots

Similar Mods

Included in Modpacks

External Resources