Modifying existing minidungeons
Based on popular request, this page goes over the basics of modifying existing Minidungeons. This is not a step-by-step guide, but a wider look at how the systems need to be modified. You will have to read the wiki pages on Custom Bosses and Custom Items in order to modify those values.
Prerequisites
Before modifying minidungeons, you should:
- Have a basic understanding of YAML syntax and file formatting
- Always back up your dungeon files before making modifications
- Know that you need to restart your server or use
/em reloadafter making changes
Dungeon File Structure
Minidungeons are composed of multiple file types across different folders:
content_packages/[package_file].yml- Main dungeon package configuration (the package file lives directly incontent_packages, optionally inside a subfolder for organization)custombosses/[dungeon_name]/- Boss configuration filescustomitems/[dungeon_name]/- Custom item definitionscustomtreasurechests/[dungeon_name]/- Treasure chest configurationsnpcs/[dungeon_name]/- NPC definitions- The Minecraft world itself - the live world folder for open/world dungeons, or a copy placed in
world_blueprints/[dungeonConfigFolderName]/for instanced dungeons
When modifying a dungeon, you may need to edit files across multiple folders depending on what you want to change.
Understanding Minidungeon Components
Minidungeons consist of multiple interconnected components:
- Dungeon package configuration - The main configuration file that controls dungeon-level settings like difficulty, party size, teleportation, and protection
- Custom bosses - Individual boss configurations stored in the
custombosses/folder - Custom items - Loot and equipment definitions in the
customitems/folder - Treasure chests - Additional loot sources configured in
customtreasurechests/folder - NPCs - Non-player characters for quests or flavor
- World files - The actual dungeon terrain and structures. Schematic dungeons were removed in EliteMobs 9.0; every dungeon is world-based
Modifying Dungeon Package Settings
Locating Dungeon Configuration Files
Minidungeons are configured through package files located in the content_packages/ folder. Each dungeon has a main configuration file (usually named after the dungeon) that controls dungeon-level settings.
Modifying Basic Dungeon Settings
Example dungeon package values you may want to modify:
contentLevel: 20
dungeonSizeCategory: DUNGEON
minPlayerCount: 1
maxPlayerCount: 5
dungeonLockoutMinutes: 60
protect: true
contentLevel: Overall dungeon difficulty tier (set to-1for dynamic dungeons)dungeonSizeCategory: Size classification (LAIR, SANCTUM, MINIDUNGEON, DUNGEON, RAID, ADVENTURE, ARENA, REALM, OTHER)minPlayerCount/maxPlayerCount: Party size restrictions (defaults1and5)dungeonLockoutMinutes: Loot lockout in minutes, applied to the players who damaged an instanced-dungeon boss when it dies. While a player is locked out for that boss they get no loot and no skill XP from it. Defaults to4320(72 hours); set to0to disable. It does not block re-entry into the dungeon.protect: Enable EliteMobs' world protection for the dungeon world (no region plugin required)
Modifying Dungeon Difficulty Settings
For instanced dungeons, you can configure multiple difficulty levels:
difficulties:
- name: normal
levelSync: 60
- name: hard
levelSync: 50
- name: mythic
levelSync: 40
This allows players to choose their challenge level when entering. Remember that levelSync caps the effective level of player gear, so a lower levelSync makes a difficulty harder (it strips more power from over-leveled gear). For a deeper explanation see Instanced Dungeon Difficulty.
Modifying Dungeon Protection and Mechanics
Protection Settings
Control how the dungeon environment behaves:
protect: true
allowExplosionBlockDamage: false
allowLiquidFlow: true
protect: Enable EliteMobs' world protection suite for the dungeon worldallowExplosionBlockDamage: Allow elite explosions to damage blocks (blocks regenerate within 2 minutes). Defaults tofalseallowLiquidFlow: Allow water and lava to flow. Defaults totrueallowElytra: Allow players to glide with an elytra inside the dungeon world. Defaults tofalse
Modifying Dungeon Entry and Teleportation
Teleport Configuration
Control where players spawn:
teleportLocation: world_name,100,64,100,0,0
The format is: world,x,y,z,yaw,pitch
Permission Requirements
Restrict access to the dungeon:
permission: elitemobs.dungeon.mydungeon
Players will need this permission node to enter the dungeon.
Modifying Boss Difficulty
There are several ways to modify the difficulty of dungeon bosses:
Modifying the damage/health multipliers of the bosses
This is the easiest modification to do. If you think that the bosses deal too little or too much damage, or that they have too little or too much health, you can modify the values associated to these modifiers in the boss files contained in the custombosses folder.
Example of values you would want to modify:
healthMultiplier: 0.5
damageMultiplier: 0.5
More about boss stats here.
Please keep in mind that many powers have fixed damage values or percentage-based damage that ignores the damageMultiplier setting. To modify power damage, you may need to edit the power configuration files themselves or choose different powers.
Modifying the powers of bosses
The main difficulty of EliteMobs is dealing with the various powers that bosses may have. Higher level bosses tend to have more and harder powers, and lower level bosses tend to have fewer and easier powers. Certain powers used together on the same boss make fights easier, and other powers put together can make the fight significantly harder.
Example of values you would want to modify:
powers:
- invulnerability_fire.lua
- invulnerability_arrow.lua
More about boss powers here.
Premade powers now ship as Lua files. Older dungeons still reference them with a .yml extension, and that keeps working: a .yml power reference is automatically resolved to the .lua power of the same name before falling back to a literal match. You do not have to rewrite existing boss files, but new content should use .lua.
EliteMobs ships 71 powers across multiple categories (68 Lua, 3 still YAML) — the full list is on Content Creation Guide. A sample:
Defensive Powers:
- invulnerability_arrow.lua
- invulnerability_fall_damage.lua
- invulnerability_fire.lua
- invulnerability_fireworks.lua
- invulnerability_knockback.lua
- channel_healing.lua
- shield_wall.lua
Offensive Powers:
- arrow_fireworks.lua
- arrow_rain.lua
- attack_fireball.lua
- attack_lightning.lua
- bullet_hell.lua
- meteor_shower.lua
- firestorm.lua
- flamethrower.lua
Summoning Powers:
- zombie_friends.lua
- zombie_parents.lua
- summon_embers.lua
Since there are too many power combinations to list here, you will have to learn how the powers work and playtest your encounters in order to find the sweet spot for what you think is an encounter that is neither too hard nor too easy.
Modifying the level of the bosses
This is the most frequently asked question, and while it is possible to do it, it takes a few steps in order to make sure that you are adequately scaling your bosses up or down.
Example of values you would want to modify:
level: 21
More about boss levels here.
This takes a combination of both what is said about the damage / health multipliers, as bosses at lower / higher levels might need slightly different health and damage multipliers to make the fight feel right.
However, the most important aspect to consider here is the powers on the boss. Lower level and higher level bosses tend to have fairly different power sets depending on how hard the fight is meant to be. Having the same set of powers for a level 10 boss and a level 200 boss usually results in fights whose difficulty feels drastically different. Again, the only way to really find the sweet spot is to learn how the powers of the plugin work and playtesting them.
Modifying Boss Behavior
Beyond powers, bosses have behavioral flags that affect how they act:
frozen: false
neutral: false
frozen: If true, prevents boss movement (boss becomes stationary)neutral: If true, boss won't attack unless provoked
Modifying Boss Equipment
Change what armor and weapons bosses wear:
helmet: DIAMOND_HELMET
chestplate: IRON_CHESTPLATE
leggings: LEATHER_LEGGINGS:1A8F3C
boots: CHAINMAIL_BOOTS
mainHand: GOLDEN_AXE:1001
offHand: SHIELD
These fields take a Minecraft material name, not a custom item filename. Three extra forms are accepted:
MATERIAL:numbersets the item's custom model data (used with a resource pack), as inGOLDEN_AXE:1001LEATHER_*:RRGGBBdyes leather armour with a hex colour, as inLEATHER_LEGGINGS:1A8F3C- A bare player UUID produces a
PLAYER_HEADwearing that player's skin
The legacy GOLD_ and CHAIN_ material prefixes are mapped to GOLDEN_ and CHAINMAIL_ automatically. Worn equipment is cosmetic and is applied straight to the mob - it does not pull stats from customitems/.
Modifying Boss Loot
And last, but not least! You will probably want to tweak the custom loot. Most bosses in EliteMobs have custom loot, and if you are switching the level of the boss around, odds are that you will want to change the nature of the loot it drops.
Example of loot configuration options:
uniqueLootList:
- filename: mob_drop_boots.yml
chance: 0.05
amount: 1
filename: The item configuration filechance: Drop probability (0.0 to 1.0, where 1.0 = 100%)amount: Quantity to drop (optional, defaults to 1)
More about loot drops here.
Treasure Chest Modifications
Minidungeons can include treasure chests with custom loot tables. Chest configurations are stored in the customtreasurechests/ folder, one file per chest, and each chest file carries its own position in the location key (or locations for a chest that appears in several places). Edit those files to move a chest or change its lootList - the dungeon package file does not hold chest positions.
Crediting / publishing modified content
Under EliteMobs you are free to post the dungeons you create on the appropriate channels to do so (Discord). However, if your creation is just a modification of an existing dungeon, your submission may be removed, especially if it's only a small tweak or if it contains or is derived from premium content (for obvious reasons).
You are free and welcome to modify any content that you have purchased or otherwise downloaded to adjust it to your server's needs for use within your own network, however for obvious reasons this does not provide you with redistribution rights.
We reserve the right to take down community submissions for any reason and at any time, though we would hate to actually have to do that.
Further info
If you believe that this page should be further expanded upon, leave a suggestion on Discord saying what should be added to it. More info about the various systems mentioned here are present in the other wiki pages.