Перейти к основному содержимому

Dungeon Instance

Dungeon Instance

Manifest entry used to persist dungeon instance configuration.

Поля

ПолеТипПо умолчаниюОписание
artifactRef<DungeonArtifactEntry>—Unified artifact storing the statistics: per dungeon (runs started, completions, best time) and per player (runs, completions, best time). A player's personal best time is kept ONCE PER ARTIFACT, over every dungeon instance that shares it, and the best-time placeholders (%dungeon_best%, %dungeon_inst_<instance>_best%) read that single value, formatted mm:ss. Give each dungeon its own artifact when each needs its own personal best. Two artifact entries with the same artifactId share one file: only one of them is used.
runtimeArtifactRef<ActiveDungeonInstanceArtifactEntry>—Where the state of the runs of this dungeon is kept so that a tw reload or a Publish does not lose them: the world, the members, the loot chests and, for each player, the room they are in and the once rooms already used (a once room never fires again after a reload). Reference an 'Active Dungeon Instance Artifact' entry; several dungeons may share one. Without it the runs fall back to the runs.json file of the extension, with a warning at load. A server restart still ends the runs (their worlds are gone).
partyLobbyArtifactRef<DungeonPartyLobbyArtifactEntry>—Unused since 1.0: lobbies are no longer restored after a reload or a restart. Kept so that existing pages still load.
roomConfigurationsList<Ref<DungeonRoomConfigEntry>>emptyAvailable room configurations
templateWorldString—Template world name used to generate instances
questsList<Ref<QuestEntry>>emptyQuests associated with the dungeon
onStartList<Ref<TriggerableEntry>>emptyTriggers executed when the dungeon starts
onEndList<Ref<TriggerableEntry>>emptyTriggers executed when the dungeon ends
entryCostModeEntryCostModeLEADERMode defining who needs to pay the entry costЗначения:LEADERGROUP
entryCostsList<Item>emptyItems required to enter the dungeon
missingItemsMessageVar<String>Missing items: {MissingQuantity}x {ItemName} by {PlayerName}Message shown when items are missing
cooldownSecondsInt?—Maximum duration of a run, in seconds: the run ends and players are sent back when it elapses. 0 or empty = no time limit.
startCooldownSecondsInt0Countdown in the lobby before players are teleported
lobbyIdleKickSecondsInt120Seconds a lobby may keep its players without ever starting its countdown (nobody ready, or too few players) before they are removed from it and told so. 120 = 2 minutes.
minPartySizeInt1Minimum players required to start
maxPartySizeInt4Maximum players per party
maxSimultaneousInstancesInt1Maximum simultaneous instances
enableScoreboardBooleantrueEnable scoreboard display
damageMultiplierDouble1.0Multiplier of the damage the players of a run take from non-players (mobs, arrows shot by mobs, TNT nobody primed) inside the run's world. 1 = unchanged, 2 = double, 0 = no damage. Anything of player origin is never scaled: fights between players, their arrows, the TNT they primed, their tamed pets, their potion clouds.
categoryPriorityInt0Priority order when displayed in a category global menu (lower = appears first)
isolationIsolationSettingAUTOHow runs get their world. AUTO: SLIME_CLONE when AdvancedSlimePaper is installed, otherwise WORLD_PER_RUN. SLIME_CLONE: in-memory clone of a slime world, isolated and cheap (needs AdvancedSlimePaper). WORLD_PER_RUN: copy of the template world folder, deleted at the end of the run; isolated but costly. SHARED_WORLD_SLOTS: one world, one slot of a grid per run; NOT isolated (mobs, items and blocks are shared) and the template must be built identically in every slot. A mode that cannot run on this server refuses the run; there is no fallback.Значения:AUTOSLIME_CLONEWORLD_PER_RUNSHARED_WORLD_SLOTS
sharedSlotsSharedSlotsLayout—Grid of the slots, used by SHARED_WORLD_SLOTS only. One slot per simultaneous instance.
SharedSlotsLayout (5)
ПолеТипПо умолчаниюОписание
spacingXInt512Blocks between two slots along X. Must be at least the footprint when slots share a row.
spacingZInt512Blocks between two rows of slots along Z. Must be at least the footprint when there are several rows.
columnsInt0Slots per row. 0 = all the slots in one row along X.
footprintXInt256Width of the template along X, in blocks.
footprintZInt256Width of the template along Z, in blocks.
generatorOptional<Ref<DungeonGeneratorEntry>>—Procedural generation: the generator that builds each run's dungeon from room templates. Empty = a fixed dungeon (the template world above). The same seed always gives the same dungeon.
maxAliveMobsIntDEFAULT_MAX_ALIVE_MOBSMost 'Dungeon Mob Spawn' mobs alive at once in one run, 500 at most. A placement that would go over it makes only the mobs that fit appear and says so in the server log; the rest stays owed (kept with the run) and appears, as far as the cap then allows, the next time a member enters its room, never more than the entry's count in all. So 0 living mobs does not mean a room is cleared (the cap, or the count after a reload): use the 'When a dungeon mob dies' event (on_dungeon_mob_death). 0 = no mob of the dungeon appears.
restrictionsRef<DungeonRestrictionsEntry>—What the players of a run may not do (elytra, vehicles, ender pearls, chorus fruit, riptide, some commands). Reference a 'Dungeon Restrictions' entry. A 'Dungeon Room' that names its own replaces this one while a player is in it. Empty = no restriction.
statsMobScopeStatsMobScopeMARKED_ONLYWhich mobs count in the players' statistics (mob kills, damage dealt). MARKED_ONLY: only the mobs this run made appear (Dungeon Mob Spawn); the pieces of a split slime and other offspring never count as kills. ANY_MOB_IN_RUN_WORLD: also every other mob in the run's world, such as a boss placed by another plugin's action. Not allowed with SHARED_WORLD_SLOTS, whose world holds other runs and its own mobs: MARKED_ONLY is used there, with a warning at load.
reconnectGraceDuration120000How long a player who disconnects from a running dungeon keeps their place (milliseconds; 2 minutes by default). During that time the run does not close, their statistics are not paid out and, if they come back in time, they reappear in the dungeon where they were. When the delay runs out they leave the run (and the run ends if nobody is left). The time limit of the run keeps counting. A player who is waited for is still a member: if the run ends meanwhile (completed, timed out) they are paid its outcome like the others, a completion and its best time included, while 'On end' triggers only run for the members who are online. 0 = no grace: a disconnection removes the player at once. A tw reload during the delay ends it for the players waited for.
Общие поля TypeWriter (criteria, modifiers)
ПолеТипПо умолчаниюОписание
criteriaList<Criteria>emptyCriteria required to start the dungeon
modifiersList<Modifier>emptyModifiers applied to the dungeon

How to use it​

One entry per dungeon. Link it from a Dungeon Category to show it in the global menu.

FieldWhat to know
templateWorldName of the world folder of a fixed dungeon (letters, digits, _, -, up to 64 characters). What happens to it depends on isolation: cloned, copied for each run, or used itself with one slot per run. Empty for a generated dungeon.
isolation, sharedSlotsHow runs get their world. See Runs and world isolation.
generatorMakes this a generated dungeon.
maxAliveMobsThe cap of living mobs of one run: 150 by default, 500 at most.
restrictionsA Dungeon Restrictions entry: what the players may not do during the run (elytra, vehicles, ender pearls, chorus fruit, riptide, some commands). A Dungeon Room that names its own replaces it while a player stands in that room. Empty = nothing is restricted.
statsMobScopeWhich mobs count in the player statistics (mob kills, damage dealt). MARKED_ONLY (default): only the mobs made by the run. ANY_MOB_IN_RUN_WORLD: also the other mobs of the world of the run, such as a boss placed by another plugin; refused with SHARED_WORLD_SLOTS (MARKED_ONLY is used, with a warning at load).
reconnectGraceHow long a member who disconnects keeps their place. Default 2 minutes. Back in time, they reappear where they were, with their sidebar, hidden slots and game mode. When it runs out they leave the run and, at their next join, return to where they entered from. 0 = no grace. See Disconnections.
roomConfigurationsOne is picked at random for each run. Its spawnPoint is where players arrive.
cooldownSecondsDespite its name, this is the time limit of a run. When it reaches zero the run is closed. Leave it empty for no limit.
startCooldownSecondsLobby countdown before the teleport, once everyone is ready. 0 starts at once.
lobbyIdleKickSecondsSeconds a lobby may keep its players without ever starting its countdown (nobody ready, or too few players) before they are removed and told so. Default 120 (2 minutes), minimum 1. The message is the snippet content.dungeon_lobby.idle_kick.
minPartySize, maxPartySizePlayers needed to start, and lobby capacity.
maxSimultaneousInstancesHow many runs can be active at once. It is also the number of lobbies shown in the party menu.
entryCosts, entryCostModeItems taken when the run starts. LEADER charges the first player of the lobby, GROUP charges everyone.
missingItemsMessageSent to the whole lobby when a player lacks an item. {PlayerName}, {MissingQuantity} and {ItemName} are replaced.
onStart, onEndFired for each member when the run starts and when it ends. Not replayed at a reload.
modifiersFact modifiers applied to each member when the run starts.
criteriaEvery player of the group must match them to start (an admin force-start skips them).
damageMultiplierScales damage players take from non-players inside the run's world. 1 is unchanged, 0 is none. Damage from players is never scaled.
questsQuest names listed on the run scoreboard, below the time left.
enableScoreboardShow the sidebar scoreboard (dungeon name, time left, quests) during the run.
categoryPriorityOrder in the global menu. Lowest comes first.
artifactThe statistics.
runtimeArtifactThe state of the runs, so that a reload keeps them.
partyLobbyArtifactUnused since 1.0. Leave it empty.

aggroMultiplier no longer exists. See the migration note.