Functions Y M L
Mythic Dungeons features an extensive in-game editor to set up all your functions, triggers and conditions. However, there may be some situations where you don't want to - or perhaps, can't - get in-game to edit the dungeon's functions.
Where the file lives
Where a dungeon's functions are stored depends on its type.
- Classic and Continuous dungeons keep every function in a single
functions.ymlin the map folder,plugins/MythicDungeons/maps/<DungeonName>/functions.yml. - Procedural dungeons have no
functions.yml. Each room stores its own functions under aFunctions:key insideplugins/MythicDungeons/maps/<DungeonName>/rooms/<RoomName>.yml, and their locations are relative to the room, not the world. See Procedural Dungeons.
File format
functions.yml has two top-level keys: a Version number, and a Functions list.
Every entry in the list is a Bukkit-serialized object. The == key holds the full class name of the function, and every other key is named exactly after the field it stores. A function's trigger is nested inside it under trigger, and that trigger's conditions are nested inside the trigger under conditions.
Version: 1
Functions:
- ==: net.playavalon.mythicdungeons.dungeons.functions.FunctionSpawnMythicMob
mob: DrunkenRaider
delay: 0
levelString: '0'
interval: 0
targetType: &id001
==: net.playavalon.mythicdungeons.api.parents.FunctionTargetType
value: NONE
location:
==: org.bukkit.Location
x: 188.0
y: -42.0
z: 45.0
pitch: 0.0
yaw: 0.0
trigger:
==: net.playavalon.mythicdungeons.dungeons.triggers.TriggerDistance
delayTicks: 0
forEachPlayer: false
limitToRoom: false
count: 2
allowRetrigger: false
radius: 100.0
conditions: []
maxCount: 1
yaw: -89.0
Notes
locationis always stored without a world; the world is filled in when an instance is created.- Key order inside an entry is not meaningful and will change whenever the dungeon is saved.
- Any key you leave out falls back to the function's built-in default, listed in Function Options.
- YAML anchors (
&id001/*id001) will appear when several functions share an identical value such as a target type. They are written by the serializer and are safe to leave alone. - If a function's class can't be found when the dungeon loads, the whole file fails to load and the dungeon reports an error naming the class. This most often happens after uninstalling a plugin that added a custom function.
- Edit the file only while the server is stopped, or with the dungeon unloaded. Saving a dungeon in-game rewrites the whole file and will discard your changes.