
rStructures
Dungeons from your schematics spawn in the world on their own, with locked containers, keys, loot and a WorldGuard region
Автор: Rulhot1330обновлён 27 окт. 2026 г.
Описание

Dungeons from your own schematics placed right in your world. Players track them with a compass and break into loot vaults with a key, a pickaxe or a timer.
Paper 1.21.4+ Folia Java 21
How it works
- Put a schematic into the
schemfolder and run/rs spawn. - The plugin finds a flat spot in a matching biome, saves the terrain and pastes the dungeon inside a WorldGuard region.
- A player finds the dungeon with the compass and opens the shulker boxes with a key, the breaker pickaxe or a timer.
- Once the dungeon is cleared, it disappears, the terrain comes back and a new dungeon spawns in the world.
Each dungeon type is a separate file in the structures folder, so you set the schematic, biomes, placement and opening method for every type.
Features
- Dungeons on land, on water at least 3 blocks deep and in the air 30 to 60 blocks above the ground.
- Your own
.schemfiles from the WorldEdit and FastAsyncWorldEdit folders. - Biome filter: a single biome, a mask like
"*ocean*"or every biome of a datapack with"terralith:*". - Type weight: a dungeon with weight 10 spawns twice as often as one with weight 5.
- 3 ways to open a vault: a key, 12 hits with the breaker pickaxe or a 60 second countdown.
- Keys drop from 20 vanilla loot sources, from villages to the sniffer. You set the chance for each in the menu.
- The compass shows dungeon coordinates with the last 2 digits hidden. It works once every 8 hours.
- Loot for shulker boxes and barrels is set in the menu: drop an item in and set its chance from 1 to 100%.
- A WorldGuard region around each dungeon: 17 flags, 3 block padding, at least 100 blocks between dungeons.
- The plugin saves the terrain before pasting, and
/rs undorestores it block by block. - Auto removal after clearing, a countdown in the action bar and a new spawn 1 second later.
- Holograms above vaults with FancyHolograms or DecentHolograms: locked, opened, timer.
- Default texts are in Russian. Every text is editable in
messages.ymlanditems.yml. - MiniMessage, SQLite or MySQL, Folia support.
Vaults
Each dungeon type opens its own way. You set it with open-type in the dungeon file.
| Method | What the player does | Default |
|---|---|---|
key | Opens a shulker box with a key from vanilla structure loot | The key survives with a 50% chance |
pickaxe | Hits the shulker box until it opens | 12 hits, pickaxe durability 64 |
timer | Clicks the shulker box and waits for the countdown | 60 seconds |
Requirements
| Server | Java | Required plugins | Optional plugins |
|---|---|---|---|
| Paper 1.21.4+ or Folia | 21 | WorldEdit or FastAsyncWorldEdit, WorldGuard | FancyHolograms or DecentHolograms |
Commands and permissions
| Command | What it does |
|---|---|
/rs help | Shows the command list |
/rs menu | Opens the menu: loot, key chance, dungeons, types |
/rs spawn [amount] [world] | Spawns 1 to 20 dungeons |
/rs spawn cancel | Cancels a running spawn |
/rs undo [id] | Removes a dungeon and restores the terrain |
/rs give <key|compass|pickaxe> [player] [amount] | Gives a key, a compass or a pickaxe |
/rs admin <test|remove|loot> | Adds, removes or fills the shulker box you look at |
/rs reload | Reloads the configs |
Alias: /rstructures. Every command requires rstructures.admin. Players need no permissions: they find dungeons and open vaults without commands.
config.yml
debug: false # detailed console messages for troubleshooting
command:
main: rstructures # main command name
aliases: [ rs ] # extra command names
# Folders where the plugin looks for schematics, besides plugins/rStructures/schem
schematic-folders:
- "WorldEdit/schematics"
- "FastAsyncWorldEdit/schematics"
containers: # default vault blocks for dungeon files
- SHULKER_BOX
# Holograms above vaults. Needs FancyHolograms or DecentHolograms
holograms:
enabled: true
height: 1.6 # height above the block
view-distance: 32 # view distance, in blocks
closed: # vault is locked
- "<red><b>!"
opened: # vault is open
- "<green><b>✔"
timer: # countdown is running. {time}: time left
- "<yellow><b>{time}"
scale: 1.3 # text size
billboard: center # how the text turns to the player
background: none # text background
text-shadow: true # text shadow
see-through: false # visible through blocks
# Sounds. An empty key turns a sound off
sounds:
shulker-open: # vault opened
key: "minecraft:block.iron_door.open" # sound ID
volume: 1.0 # from 0.0 to 1.0
pitch: 1.0 # from 0.5 to 2.0
shulker-closed: # click on a locked vault
key: "minecraft:block.chest.locked"
volume: 1.0
pitch: 1.0
key-saved: # the key did not break
key: "minecraft:entity.experience_orb.pickup"
volume: 1.0
pitch: 1.2
compass: # the compass found a dungeon
key: "minecraft:item.lodestone_compass.lock"
volume: 1.0
pitch: 1.0
menu-click: # click in the menu
key: "minecraft:ui.button.click"
volume: 0.5
pitch: 1.0
# Particles at the vault
particles:
shulker-open:
type: HAPPY_VILLAGER # particle type
count: 30 # amount
spread: 0.5 # spread, in blocks
speed: 0.05 # speed
shulker-closed:
type: SMOKE
count: 15
spread: 0.3
speed: 0.02
config-version: 1 # internal field, leave it as is
structures/<type>.yml
Each file in the structures folder is a separate dungeon type. The file name is the type ID. The plugin ships with ground.yml, water.yml and air.yml.
name: "<white>Наземный данж" # name in the menu and in the spawn message
schematic:
file: ground1.schem # schematic from plugins/rStructures/schem or schematic-folders
ignore-air: true # true: air from the schematic does not replace world blocks
offset: # schematic offset from the found spot, in blocks
x: 0
y: 1
z: 0
# What to clear before pasting. Players, pets and named entities stay untouched
clear:
items: true # dropped items
monsters: true # hostile mobs
animals: true # animals
vehicles: false # boats and minecarts
vegetation: true # grass, flowers, leaves
liquids: false # water and lava
snow: true # snow layers
spawn:
world: world # spawn world
placement: ground # ground: on land, water: on water at least 3 blocks deep, air: in the air
# plains: one biome. "*ocean*": every biome with ocean in its name. "*": every biome
biomes: [plains, sunflower_plains, meadow, snowy_plains]
weight: 10 # weight when picking a type
limit: -1 # dungeons of this type at once, -1 for no limit
flatness: 3 # allowed height difference under the dungeon
height: 0 # height offset from the surface
# Only for placement: air
# air:
# min: 30 # height above the surface, random from min to max
# max: 60
functions:
open-type: key # key, pickaxe or timer
open-time: 60s # countdown length for timer: 30s, 5m, 1h
pickaxe-hits: 12 # pickaxe hits for pickaxe
key-save-chance: 50 # chance from 0 to 100 that the key survives
containers: [SHULKER_BOX] # schematic blocks that become locked vaults
loot-containers: [BARREL] # blocks filled with loot without a lock
auto:
enabled: true # remove the dungeon after clearing
time: 10s # removal delay after clearing
lifetime: 0 # remove this long after spawning in any case, 0 for no limit
require: # what counts as cleared
opened: true # every vault is open
looted: true # every vault is empty
actionbar: true # removal countdown for players inside the dungeon
respawn:
enabled: true # spawn a new dungeon in the same world after removal
time: 1s # delay before the new spawn
need-players: false # true: spawn only if the world has players
world.yml
# Where the plugin looks for a dungeon spot
spawn:
min-x: -5000 # search area borders
max-x: 5000
min-z: -5000
max-z: 5000
flatness: 3 # default height difference for dungeon files
attempts: 36 # random points to check
radius: 32 # search radius around a point
step: 4 # check step, in blocks
chunks-per-tick: 12 # chunks checked per tick
generate-chunks: true # true: generate chunks that do not exist yet
urgent-chunks: false # true: load chunks with high priority
build:
layers-per-tick: 8 # schematic layers pasted per tick
config-version: 1 # internal field, leave it as is
region.yml
region:
padding: 3 # region padding around the schematic, in blocks
name: "struct_{id}" # WorldGuard region name. {id}: dungeon number
flags: # region flags: allow or deny
use: allow
block-break: deny
build: deny
mob-spawning: deny
pvp: allow
tnt: deny
chest-access: allow
creeper-explosion: deny
damage-animals: deny
ghast-fireball: deny
respawn-anchors: deny
destroy-vehicle: deny
enderdragon-block-damage: deny
mob-damage: deny
lava-fire: deny
lightning: deny
lighter: deny
limits:
distance: 100 # minimum blocks between dungeons
max: -1 # dungeons per world at once, -1 for no limit
avoid-regions: true # true: never place a dungeon over other regions
config-version: 1 # internal field, leave it as is
items.yml
# Key for a locked vault.
key:
material: TRIPWIRE_HOOK # item
texture: "" # base64 texture for PLAYER_HEAD
name: "<white>Ключ от данжа" # name, MiniMessage format
lore:
- ""
- " <#FEF06A>Ключ <white>открывает закрытый"
- " <white>шалкер в данже."
- ""
model-data: 0 # CustomModelData for a resource pack
glint: true # enchantment glint
flags: [] # item flags: HIDE_ATTRIBUTES and others
functions:
glow: true # glowing outline when dropped
drop-on-quit: false # true: the item drops when the player leaves the server
deny-craft: true # the item cannot be used in crafting
save-chance: 50 # chance that the key survives
# Compass that points to a dungeon. {cooldown} in lore shows the time left.
compass:
material: COMPASS
texture: ""
name: "<white>Компас данжей"
lore: []
model-data: 0
glint: false
flags: []
functions:
glow: true
drop-on-quit: false
deny-craft: true
encrypt: true # hide the last digits of the coordinates
encrypt-digits: 2 # how many digits to hide
pointer: false # true: the compass needle points to the dungeon
cooldown: 8h # delay between uses
consume: false # true: the compass disappears after use
target: random # random: a random dungeon, nearest: the closest one
# Breaker pickaxe.
pickaxe:
material: NETHERITE_PICKAXE
texture: ""
name: "<white>Кирка взломщика"
lore: []
model-data: 0
glint: false
flags: []
functions:
glow: true
drop-on-quit: false
deny-craft: true
hits: 12 # hits per vault
durability: 64 # pickaxe durability
config-version: 1 # internal field, leave it as is
database.yml
storage: sqlite # where dungeons, loot and saved terrain are stored: sqlite or mysql
# Read only with storage: mysql
mysql:
host: localhost # database server address
port: 3306 # port
database: rstructures # database name
user: "root" # user
password: "" # password
config-version: 1 # internal field, leave it as is
Галерея
Последние версии
Все версии →release
rStructures
2.227 окт. 2026 г.39Minecraft: 1.21.10, 1.21.11, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, folia, paper, purpur, spigot
Что нового
**New**
- /rs spawn [amount] [world] [type]: you can now choose the dungeon type (air, water, ground or your own file from the structures folder). Example: /rs spawn 5 world air
- The breaker pickaxe and the dungeon compass can now drop in vanilla structure loot, just like the key. Set the chances in /rs menu, in the item drop chances section ("Где выпадают предметы"). A button at the bottom of the menu switches which item you are editing.
- Without a hologram plugin, the shulker timer is shown in the action bar to nearby players.
- New mysql.ssl option in database.yml to encrypt the MySQL connection. Turn it on if your database runs on another machine.
**Fixed**
- Menu dupe: shift-clicking an icon and closing the menu at the same moment left the icon in your inventory, and in creative mode it became a real item. In the loot menu this could be used to dupe loot items.
- If the server crashed or shut down while a dungeon was being built, the terrain could stay broken. It is now restored automatically on the next start.
- Two dungeons no longer spawn in the same place when they are created at the same time.
- /rs spawn cancel no longer cancels auto-respawn, and auto-respawn no longer resets your cancel.
- Ground dungeons did not spawn in snowy biomes.
- After a restart, shulkers could lock again and the open timer could reset.
- The “opened by timer” message was sometimes sent twice.
- The breaker pickaxe could be repaired. Now it cannot be repaired in any way: anvil, grindstone, crafting grid, crafter or Mending.
- Items with crafting disabled could still be used in a crafter.
- The key could be lost in trial chamber pots and suspicious sand. The item now drops next to the block.
- Your own lines in messages.yml are no longer removed when the plugin updates.
- The warning about a missing line in messages.yml no longer spams the console.
- Changed
- Clearing the area for a dungeon no longer removes items dropped by players, animals bred by players, or leashed mobs.
- The /rs command only shows up in tab completion for players with the rstructures.admin permission.
- New defaults in world.yml: faster location search, faster building, less lag while searching.
**Removed**
- CakeRegionsPlus support.
release
rStructures
2.122 окт. 2026 г.40Minecraft: 1.21.10, 1.21.11, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, folia, paper, purpur, spigot
Что нового
**Added:**
- GriefPrevention support: dungeons won’t spawn on top of someone else’s claim.
- CakeRegionsPlus support: dungeons won’t spawn inside an active region.
beta
rStructures
2.018 окт. 2026 г.12Minecraft: 1.21.10, 1.21.11, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, folia, paper, purpur, spigot
Что нового
__Added__
- A file for each dungeon in the `structures` folder, file name = type ID. Schematic, spawn, vaults and auto removal in one place.
- Dungeon placement on land, on water or in the air.
- Three ways to open a vault: key, breaker pickaxe, timer.
- New item: breaker pickaxe, `/rs give pickaxe`.
- While breaking in with the pickaxe, the player sees how many hits are left.
- Holograms above vaults: locked, opened, countdown.
- Biome masks: `"*ocean*"`, `"*"` and datapack biomes `"terralith:*"`.
- Dungeon limits: one for the whole server and one per type.
- Dungeon type weight: the higher the weight, the more often the type spawns.
- Dungeon lifetime and auto removal conditions: vaults opened, emptied or both.
- Spot clearing before pasting: items, mobs, plants, liquids, snow.
- Allowed height difference `flatness`, so a dungeon never lands on a slope.
- Plain loot in the schematic: barrels, chests and other blocks from `functions.loot-containers` get loot on spawn, with no lock and no key.
- Two loot lists: for locked vaults and for plain blocks. Both are set in the menu.
- Key chance for each of 20 vanilla structures.
- Keys drop from trial chamber vaults and from the sniffer.
- Explosion protection: TNT, creepers, beds and respawn anchors do not break vaults.
- Hopper protection: hoppers and hopper minecarts do not pull loot out or push items in.
- Fire, mob and piston protection: vaults do not burn, endermen and the wither do not touch them, pistons do not move them.
- Dungeon types menu: type info and spawn on click.
- The dungeon list shows the type, opened vaults and time until removal. Left click teleports, right click fills with loot.
- Compass: hidden coordinates, needle pointing, target choice, used up on use.
- Plugin items are blocked in crafting, anvils and enchanting.
- Cancel a running spawn: `/rs spawn cancel`.
- Time of each spawn stage in the console with `debug: true`.
__Changed__
- The spot search and schematic pasting run in portions instead of one tick.
- The WorldGuard region matches the build size instead of a 24x24 square.
- Messages and items moved to MiniMessage.
- All data lives in one database instead of `shulkers.yml`, `items.yml` and `block.db`.
- Configs update themselves on plugin update, the old file stays as a backup.
- If a config has an error after `/rs reload`, the old one keeps working and the reason goes to the console.
- If a dungeon fails to spawn, the plugin shows the reason.
- The command name and aliases are set in `config.yml`.
- Schematics load from `WorldEdit/schematics` and `FastAsyncWorldEdit/schematics`.
__Support__
- MySQL
- Folia
- FastAsyncWorldEdit
- FancyHolograms and DecentHolograms
__Removed__
- Commands `/rdang schem`, `/rdang update`, `/rdang migrate`.
- Files `schem.yml`, `shulker.yml`, `auto.yml`. Their settings moved to the dungeon file and `config.yml`.
- Per-world height setting `world-heights`.
- Metrics and update check.
Versions: 1.21.4 and above, Java 21 and above.
__Important:__ configs and data from 1.8.5 are not migrated, set the plugin up again.
release
RDang 1.8.5
1.8.55 авг. 2026 г.42Minecraft: 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper
