Dungeon Files
Dungeon Files
Each dungeon is a YAML file:
plugins/SinceDungeon/dungeons/<dungeon_id>.yml
The filename without .yml is the dungeon ID used by commands, leaderboards, API calls, and Premium affix configuration.
Top-Level Structure
template-world: "ForgottenCrypt_Template"
public: true
settings: {}
conditions: {}
rewards: {}
stages: {}
Template World
template-world: "ForgottenCrypt_Template"
The value must match the source world folder name. SinceDungeon creates temporary instance worlds from this template.
Public Visibility
public: true
Public dungeons appear in tab completion for player-facing commands such as /dungeon join and /dungeon top.
When public: false, normal members cannot join the dungeon, even if they manually type the dungeon ID. Admins with SinceDungeon.admin can still see private dungeons in tab completion and can join them for testing.
Settings
settings:
max-players: 6
required-lives-to-join: 1
lives-deducted-per-death: 1
keep-inventory-on-death: true
prevent-item-dropping: true
block-ender-pearls: true
kick-delay-after-finish: 15
force-daylight-and-clear-weather: true
save-and-restore-stats: true
death-action: "RESPAWN"
clear-mob-drops: true
randomize-stages: false
cooldown-seconds: 1800
cooldown-on-leave: true
required-item: "NONE"
consume-required-item: true
Death actions:
RESPAWN: respawn at the dungeon start or checkpoint.FAIL: fail the entire run.SPECTATE: let the player watch remaining teammates.
Command hooks:
settings:
commands:
on-start:
- "lp user %player% permission set dungeon.in_game true"
on-finish:
- "lp user %player% permission unset dungeon.in_game"
on-first-finish:
- "eco give %player% 5000"
Conditions
Conditions are checked before the player enters.
conditions:
level_check:
name: "Level Requirement"
check: "%player_level%;>=;10"
msg: "<red>You must be at least Level 10 to enter this raid!"
Default condition processor:
PAPI: PlaceholderAPI expression checks.
Condition format:
<left>;<operator>;<right>
Supported numeric operators:
>=<=><==!=
Supported string operators:
==!=equalsIgnoreCase
Stages
Stages are numeric and run in order unless randomize-stages or Premium branching/jump actions alter flow.
stages:
1:
chance: 100.0
commands:
- "say Stage 1 completed by %player%"
actions:
arrival:
type: "REACH_LOCATION"
target: "10,64,10"
radius: 3.0
| Key | Meaning |
|---|---|
chance |
Chance for the stage to appear. |
commands |
Console commands after stage completion. |
actions |
Named action blocks. |
Coordinates
Most locations use:
x,y,z
Example:
target: "10,64,-5"
Lists of locations:
locations:
- "15,64,20"
- "5,64,20"
Stage Insertion
Admins can insert a stage into an existing dungeon file and shift later stage numbers:
/sincedungeonpremium stage insert <map_id> <position>
/sdp stage insert <map_id> <position>