Kinetic Hosting - quality hosting for low prices, 24/7 support, mod support Looking for a great server host? Get your Kinetic server with our link!
Click the banner to get your server now!

Dungeons, raids and tournaments

Instanced dungeon runs and the floors they are built from, raid bosses and rifts, and the tournament brackets, arenas and prizes.

← All wiki sections

Notes that apply to all three addons:

  • The three trees are merged into the single dmz_ragnarok mod. All items, blocks, entities, permission

    nodes and lang keys use the dmz_ragnarok namespace, even though the source lives in the original addon folders.

  • Every command sits under one shared root, /rg. Legacy roots (/sdd, /srb, /raidboss, /sdt,

    /tournament) still work as hidden redirects.

  • Each addon reads ONE Forge config file (a .toml in the server's config/ folder). The old operator

    switchboard, config/dmz_ragnarok/modules.cfg, is no longer read (the section and switch names below are its old names). A feature runs when its module jar is installed AND, if it is private, the Ragnarok Key (dmz_ragnarok_key) is present.

  • There is one key, the Ragnarok Key, and no tiers. Key gating applies on every server, singleplayer and LAN

    included.

Dungeons

What it does

The whole dungeon addon. It adds a set of procedurally built dungeon floors you travel to in their own dimensions, an "advanced spawner" block that spawns configurable NPC/mob waves with rewards, loot crates that generated floors are filled with, floor-unlock tickets, TP (Training Point) reward gems, and a set of in-run rules (no PvP, no ki block-breaking, a time limit and a re-entry cooldown). Turning the whole module off removes the dungeon dimension, the commands, the items and the spawners.

Commands

All under /rg dungeon (legacy alias /sdd, which redirects onto it). The entire /rg dungeon tree requires op (permission level 2).

Player-facing: none. Every subcommand is admin/op-only.

Admin (op level 2):

  • /rg dungeon tp [pos] : teleport yourself into the legacy flat dungeon dimension (default 0.5, 5, 0.5).
  • /rg dungeon setwarp <name> : save your current position as a named dungeon warp.
  • /rg dungeon warp <name> : teleport to a saved warp.
  • /rg dungeon delwarp <name> : delete a saved warp.
  • /rg dungeon warps : list saved warps.
  • /rg dungeon highlight <radius> : outline nearby disguised advanced spawners for 10 seconds (radius clamped

    to maxHighlightRadius).

  • /rg dungeon paste <schematic> <pos> : paste a WorldEdit schematic at a position. Only registered when the

    Dungeons.WorldEdit module is on; also needs WorldEdit installed.

  • /rg dungeon edit : open the dungeon config GUI (rules always editable; the floor section is hidden when

    the key is absent).

    Procedural-floor subtree, /rg dungeon floor ... : the whole subtree requires the Ragnarok Key. It is hidden entirely on a server without the key.

  • list : list floors and whether procedural floors are enabled.
  • count <n> (0-256) : set how many floors exist.
  • tp <index> : teleport to floor N (builds it on first visit).
  • restorearena <index> : restore a boss floor's arena to generated terrain.
  • theme <index> <theme> : set a floor's theme (a real change relocates the floor).
  • size <index> <size> : set a floor's terrain-disc side length.
  • depth <index> <depth> : set how deep the floor's solid body goes.
  • requireticket <index> <true|false> : require a redeemed Floor-N ticket to enter through an SU portal.
  • regen <index> : roll a NEW layout on fresh ground (discards hand-built detail).
  • reseal <index> : re-run the opening-carve / outward-seal pass.
  • recrate <index> : re-run the crate-conversion pass on the next visit.
  • respawn <index> : re-place the floor's auto-spawners from the current preset list.

    Crate diagnostics, /rg dungeon crate ... : also requires the Ragnarok Key.

  • look : report whether the block you are looking at is a real crate and its tier.
  • info <index> : summarise a floor's crate conversion state and loot settings.

    Ticket subtree, /rg dungeon ticket ... : requires op AND the Ragnarok Key, and only registered when the Dungeons.Tickets module is on.

  • give <floor> [targets] : give a Floor-N ticket item.
  • unlock <floor> [targets] : grant a floor unlock directly.
  • lock <floor> [targets] : revoke a floor unlock.
  • unlocks [targets] : list which floors a player has unlocked.
  • /rg dungeon bossreset <floor> : re-lock a floor boss (op + the Ragnarok Key).

Permission nodes

The dungeon addon does NOT register the LuckPerms-style use/admin nodes the raid/tournament addons do. It gates on vanilla op level and one Forge node:

  • dmz_ragnarok:dungeons.bypass_timelimit (boolean). Default: OP (perm level 2). Holders skip the dungeon

    time limit and re-entry cooldown, and skip the redeemed-ticket entry check.

  • The /rg dungeon command tree itself requires op (perm level 2).
  • Opening the spawner editor and privileged GUI actions require op OR creative mode, unless requireOpToEdit

    is set false (see config).

Config options

File: config/shuruis_dmz_dungeons-common.toml. Keys and defaults:

  • requireOpToEdit = true. Require op (perm 2) or creative to open the spawner GUI and run privileged

    subcommands. False lets anyone edit.

  • maxHighlightRadius = 128 (range 1-512). Cap for /rg dungeon highlight.
  • dungeonPvp = false. Allow players to damage each other inside the dungeon dimension.
  • dungeonKiBlockDestruction = false. Allow DMZ ki attacks to break blocks in the dungeon dimension.
  • dungeonBlockEditing = false. Allow ordinary (survival) players to break/place blocks by hand inside

    dungeon dimensions. Creative players are never restricted.

  • dungeonTimeLimitSeconds = 1800 (range 0-86400, 0 = off). How long a non-bypass player may stay.
  • dungeonCooldownSeconds = 600 (range 0-86400, 0 = off). Re-entry cooldown after a timeout.
  • dungeonFloorCount = 5 (range 0-256). Number of procedural floors seeded into a fresh world.
  • dungeonFloorSize = 250 (range 64-1120). Default floor terrain-disc side length.
  • dungeonFloorDepth = 96 (range 16-124). Default floor solid-body depth.
  • dungeonRoomBlocksPerTick = 40000 (range 1024-500000). Per-tick block-write budget for room placement.
  • dungeonDefaultLayoutStyle = "VARIED". Default room-layout algorithm for floors that set none. One of

    VARIED, SPINE_AND_RIBS, ROADS_AND_BUILDINGS, INSUFFERABLE_CRYPT. VARIED rolls a different archetype per floor.

    The four dungeonPvp / dungeonKiBlockDestruction / dungeonBlockEditing / time and cooldown values are only SEEDS: they are copied into the per-world dungeon-rules save on first world creation, after which the saved (and cross-server-synced) values win. The four floor-shape values likewise seed floors only when new.

    Data an operator edits in-game rather than in a file:

  • Dungeon floors, floor rules, warps, per-floor crate loot tables and per-player ticket unlocks are all stored

    as world SavedData (.dat), edited through the /rg dungeon commands and the config GUI, not hand-edited JSON. A floor carries: theme, size, depth, requireTicket, enemy presets, and a per-tier crate loot table.

  • Per-floor crate loot (DungeonCrateLoot) shape: four tier pools plus metal/colour pools, each with an item

    drop list and a zeni min/max and a weight; plus chestChancePercent (default 100), barrelChancePercent (default 5), and refreshHours (default 0).

  • Advanced spawner config (SpawnerConfig) is per-block NBT edited through the spawner GUI: entity type,

    model, stats, spawn count/conditions, disguise block id, TP/balance/custom-drop rewards, kill commands, and an optional boss (entity, name, chance %, health, damage, ki moves, scale, transform).

Items / blocks / entities

Blocks:

  • Advanced Spawner (advanced_spawner) : invisible configurable spawner block.
  • Crate Chest (crate_chest) and Crate Barrel (crate_barrel) : loot crates in twelve rarity/metal looks

    plus colour "skin" variants. (Crate Barrel is registered but no longer offered in the creative tab because its in-world model draws as nothing; generation promotes barrels to crate chests.)

    Items:

  • Advanced Spawner block item.
  • Crate Chest / Crate Barrel block items.
  • Floor Ticket (floor_ticket, stacks to 16) : right-click warps the holder to its floor / redeems the

    unlock. (When SU is present the suite reuses SU's ss_ticket item instead; see gotchas.)

  • TP Gems (tp_gem_<amount>) : fourteen consumable gems granting Training Points on right-click, from 1,000

    up to 100,000,000. The four largest carry a permanent enchant glint.

    Entities: none of its own. Spawner bosses reuse DMZ / rgnpc entity types.

Key gating

  • Procedural floors (the whole /rg dungeon floor ... and /rg dungeon crate ... subtree, and any teleport

    into a floor) require the Ragnarok Key. Without it the dungeon falls back to legacy behaviour: the flat dungeon dim, warps, /rg dungeon tp, the time limit, cooldown, PvP toggle and ki-grief suppression all still work; procedural floors simply do not exist.

  • TP Gems require the Ragnarok Key. On a server without it the gem does nothing and is not consumed.
  • Ticket and bossreset commands require the Ragnarok Key.
  • The spawner-kill BALANCE (economy) reward needs the Ragnarok Key; the TP reward and custom item drops are

    NOT gated.

  • Advanced-spawner DISGUISES are NOT gated: every server can place and use disguised spawners.
  • Advanced-spawner BOSS spawns: the code gates these behind the public feature allow-list

    (PublicContent.allows(FEATURE_SPAWNER_BOSS)), NOT behind a key. spawner-boss IS in PUBLIC_FEATURES, so a server without the key DOES get boss spawns.

    The old submodule switches (from modules.cfg, no longer read) and what each covered:

  • Dungeons : off unregisters the command tree and all dungeon event handlers.
  • Dungeons.Instanced : off unregisters floor-progression and time-limit events.
  • Dungeons.Rules : off unregisters the in-run rule enforcement (PvP / ki / hand-mining).
  • Dungeons.AdvancedSpawner : off unregisters the spawner kill-reward events.
  • Dungeons.Crates : off skips the crate-conversion pass on generated floors and the crate state sync.
  • Dungeons.Tickets : off means the ticket command does not register.
  • Dungeons.WorldEdit : off hides /rg dungeon paste.

Gotchas

  • Disguised spawners can only be opened in CREATIVE mode. Survival players (ops included) walk through them

    like decoration, so a disguised spawner cannot be opened mid-dungeon.

  • Changing a floor's theme, or running regen, RELOCATES the floor to fresh ground and abandons the old

    build (and regen discards hand-built detail).

  • A floor is only built / crated / spawner-populated on first visit; several commands (recrate, respawn,

    reseal) just re-arm a pass to run on the next visit.

  • The 21 oldest floors predate crate blocks and hold plain vanilla chests until visited or recrated.
  • Kill-command rewards on a spawner run as the server console with %player% substituted.
  • If SU is installed the floor ticket is stamped onto SU's ss_ticket item rather than the addon's own

    floor_ticket.

Dungeons.Instanced

Covered under Dungeons above. In plain terms: the actual instanced floor runs (floors, the per-floor dimension, progression from floor to floor, and the time-limit enforcement). Off means floors do not progress and the time limit does not fire; the rest of the dungeon still loads. No commands, items, blocks or config of its own beyond the floor subtree and the floor-shape config keys listed under Dungeons. Key-gated exactly as the floor subtree is (the Ragnarok Key).

Dungeons.AdvancedSpawner

The advanced spawner block, its disguises and its rewards. See the Advanced Spawner block and the spawner reward config/gating under Dungeons. Off unregisters the kill-reward events. No commands of its own (edited by right-clicking the block in creative). Disguises are not gated; boss spawns are governed by the public feature list (see Dungeons key gating).

Dungeons.Crates

Dungeon crates and the crate-conversion pass over generated floors. Adds the Crate Chest / Crate Barrel blocks and their items (see Dungeons). Loot is defined per-floor in the DungeonCrateLoot table (tier/metal pools, chestChancePercent 100, barrelChancePercent 5, refreshHours 0). Off skips converting a floor's vanilla containers into crates and skips the crate state sync. Crates themselves need no key and give an instant reward. No commands of its own (the crate diagnostics live under the key-gated /rg dungeon crate).

Dungeons.Tickets

Dungeon tickets and the ticket command. Adds the Floor Ticket item. Commands: the /rg dungeon ticket ... subtree and /rg dungeon bossreset (op + the Ragnarok Key). Off means the ticket command is not registered. Ticket redemption is durable and, on a shard network, fans out to the player wherever they are.

Dungeons.Rules

The in-dungeon rules: PvP, ki block destruction and hand-mining (block editing) restrictions inside a run, plus (via the time-events class) the time limit and re-entry cooldown. Config keys dungeonPvp, dungeonKiBlockDestruction, dungeonBlockEditing, dungeonTimeLimitSeconds, dungeonCooldownSeconds seed these (see Dungeons). Permission node dmz_ragnarok:dungeons.bypass_timelimit (default OP) skips the timer and cooldown. Off unregisters the rule-enforcement events. No commands or items of its own.

Dungeons.WorldEdit

Room and arena capture through WorldEdit selections, and the /rg dungeon paste <schematic> <pos> command. Requires WorldEdit installed AND the module on. Off hides the paste node. No config, items or entities.

Raids

What it does

An automated raid-boss manager. An operator defines named raid bosses (a scaled boss, or a Parallel Quest wave, or a Boss Rush chain), sets an arena, and players sign up (through an NPC, a GUI, or commands) to fight it together. The boss scales its health with the number of participants, damage is tracked per player, and rewards are paid out by damage rank at the end. It also adds Z-Souls (Potara charms that let a stat grow past the server cap) and dimensional-tear Rifts (see Raids.Rifts).

Commands

All under /rg raid (legacy aliases /srb, /raidboss). Raids are referenced by display name.

Player-facing (permission dmz_ragnarok.raid.use, default everyone):

  • /rg raid list : list raids and their state.
  • /rg raid join <name> : sign up (teleports you in / routes you to another shard if needed).
  • /rg raid leave <name> : withdraw.
  • /rg raid status <name> : show a raid's status.
  • /rg raid zsoul info : show your Z-Soul stat headroom.

    Admin (permission dmz_ragnarok.raid.admin, default op level 2):

  • /rg raid edit : open the raid editor hub.
  • /rg raid open <name> : open sign-ups.
  • /rg raid start <name> : force-start.
  • /rg raid cancel <name> : cancel.
  • /rg raid npc spawn <name> : spawn a sign-up NPC for a raid.
  • /rg raid npc bind <name> : bind the nearest entity to a raid.
  • /rg raid npc remove [name] : remove raid NPCs (all, or for one raid).
  • /rg raid soul <name> : give yourself that raid's Raid Soul item.
  • /rg raid zsoul reset [player] : clear banked beyond-cap Z-Soul points (self, or another player).

Permission nodes

  • dmz_ragnarok:raid.use (boolean). Default: ALL (everyone). Player commands.
  • dmz_ragnarok:raid.admin (boolean). Default: OP (perm level 2). Management commands. Also governs the

    entire /rg rift tree. Console / command blocks fall back to op level 2 when there is no player.

Config options

File: config/shuruis_raid_bosses-common.toml. These are DEFAULTS seeded into each raid definition at creation; each raid is then edited independently in the editor. Keys and defaults:

  • boss.entityType = "minecraft:warden".
  • boss.name = "Raid Boss".
  • scaling.baseHealth = 500.0 (min 1, no upper cap).
  • scaling.healthPerPlayer = 250.0.
  • scaling.maxHealthCap = 0.0 (0 = no cap).
  • scaling.scaleAttackDamage = false.
  • scaling.attackDamagePerPlayer = 2.0.
  • scaling.maxDamagePercentPerHit = 2.5 (0-100, 0 = no ceiling). Most damage one hit may do, as a % of the

    boss's max health.

  • rules.allowPvpInArena = false.
  • rules.preventReentry = false. Bounce non-participants out of a running raid's arena.
  • rules.healOnStart = true.
  • rules.countdownSeconds = 5 (0-60).
  • rules.fightTimeLimitSeconds = 600 (0-7200, 0 = unlimited).
  • signup.maxParticipants = 10 (0-256, 0 = unlimited).
  • signup.minParticipants = 1 (1-256).
  • signup.durationMinutes = 5 (1-1440).
  • signup.reminderSeconds = 30 (0-3600, 0 = once).
  • signup.requireDmzCharacter = true.
  • npc.name = "Raid Master".
  • npc.lookRadius = 8.0 (0-64, 0 = off).
  • schedule.hour = 20 (0-23).
  • schedule.minute = 0 (0-59).
  • schedule.dayOfWeek = 0 (0-7, 0 = daily).
  • schedule.dayOfMonth = 0 (0-28, 0 = off).
  • announce.useOnScreenTitles = true.
  • announce.sound = "minecraft:ui.toast.challenge_complete".
  • announce.signupOpen / announce.starting / announce.bossSpawn / announce.victory / announce.timeout

    : the five announcement message templates (with & colours and {name} / {npc} / {count} / {boss} / {health} / {top} / {top_percent} placeholders). Defaults are set in the file.

  • rewards.participant = ["command:give %player% minecraft:diamond 2", "message:..."]. Rewards for every

    player who dealt damage.

  • rewards.topDamage = ["command:give %player% minecraft:netherite_ingot 1", "message:..."]. MVP extras.
  • rewards.runnerUp = ["command:give %player% minecraft:gold_ingot 3", "message:..."]. Ranks 2-4 extras.

    Reward token format: command:<cmd>, item:<id>:<count>, skill:<dmzSkillId>:<levels>, tp:<x> <y> <z>, message:<text>. Placeholders: %player% %damage% %damage_percent% %rank% %boss% %total_damage%.

  • zsoul.enable = true. Master switch for the Z-Soul stat-cap system.
  • zsoul.slotCount = 6 (1-6). Curios z_souls slot size.
  • zsoul.bronzePercent = 25.0 / zsoul.silverPercent = 50.0 / zsoul.goldPercent = 76.0 /

    zsoul.prismaticPercent = 100.0. Per-tier headroom past the global cap, as a % of the cap.

  • zsoul.autoConvertTrainingPoints = true. Auto-convert training points into beyond-cap growth while a soul

    is worn and the base stat is capped.

  • zsoul.trainingPointsPerPoint = 1.0 (0.01-100000).
  • zsoul.autoGrowthPerSecond = 25 (1-1,000,000).

    Raid and rift definitions are world SavedData edited in-game, not hand-edited JSON. A raid definition holds: id, display name, raid type, category, arena/player-spawn regions, an optional random-selector pool, boss entity/model/name, the scaling numbers above, phase stages, enemy waves and ally spawns.

Items / blocks / entities

Items:

  • Raid Soul (raid_soul, stacks to 16) : opens/joins a raid.
  • Z-Souls (Potara charms), 21 items: six stats x three tiers plus a rainbow soul x three tiers

    (z_soul_<stat>_<tier>, z_soul_rainbow_<tier>), worn in the z_souls Curios slot.

    Entities:

  • Raid NPC (raid_npc) : the sign-up host.
  • Dimensional Tear (dimensional_tear) : the visible rift portal (see Raids.Rifts). Never spawned by egg or

    command.

    Blocks: none.

Key gating

  • Every raid TYPE (Standard, Parallel Quest, Boss Rush) is PUBLIC and runs on any server, with or without the

    Ragnarok Key. Only rifts need the key.

  • Z-Souls require the Ragnarok Key (and their config switch on).
  • Rifts require the Ragnarok Key (see Raids.Rifts).

Gotchas

  • The per-hit damage cap (maxDamagePercentPerHit) caps the HIT, not the player: a hard hitter still hits

    full damage everywhere else, they just cannot end a raid in one punch.

  • A raid can be a "selector" (a random pool): at start it draws one raid from the pool and runs THAT in this

    raid's arena.

  • Rift encounters copied from a raid are independent snapshots; editing the raid afterwards does not change

    the rift.

Raids.Bosses

The raid boss encounter itself: spawning, phases and the fight. Off (via Raids.Bosses in modules.cfg) blocks the boss/wave spawn (checked inline in the raid instance). No commands, items or config of its own beyond what is listed under Raids. Non-STANDARD types are key-gated as above.

Raids.Rifts

Rift arenas and the dimensional-tear entry points: tears open on a schedule in configured NPC regions, and stepping through one drops you into an instanced arena running the rift's encounter.

Commands, all under /rg rift (requires dmz_ragnarok.raid.admin, default op; admin-only):

  • list, status, info <id>.
  • create <id>, delete <id>.
  • open <id> : force a tear open now.
  • close : close all tears. close runs : close all tears AND active runs.
  • set raid <id> <raid> / set enabled <id> <bool> / set interval <id> <min> <max> /

    set lifetime <id> <seconds> / set theme <id> <theme> / set name <id> <text> / set label <id> <text>.

  • encounter copy <id> <raid> / encounter new <id> / encounter clear <id>.
  • arena reset <id> : give the rift a fresh arena cell.
  • region add|remove|clear <id> [region] : restrict which NPC regions tears open in.

    A rift definition holds: id, display name, tear label, enabled flag, spawn interval (min/max minutes), tear lifetime seconds, arena theme (overworld, namek, kaio, stony, otherworld, nether, end, vegeta, beerus), region list, and either a named raid id or its own copied encounter.

    Config: no dedicated config file keys; rifts are all in-game SavedData. Module switch Raids.Rifts (default ON) gates the /rg rift command registration and the rift state sync.

    Key gating: opening NEW tears and the schedule need the Ragnarok Key. Existing runs and standing tears still tick and close even if the key is removed; only the opening of new ones stops.

    Items/blocks/entities: the Dimensional Tear entity (listed under Raids).

Raids.Rewards

Raid reward payout at the end of a fight. Governed by the rewards.participant / rewards.topDamage / rewards.runnerUp config lists above. Off (via Raids.Rewards) skips the payout pass entirely. No commands or items of its own.

Raids.Regions

Raid arena regions and their bounds (picked with WorldEdit or entered in the editor). Off (via Raids.Regions) refuses to set arena bounds through the editor's bounds packet. No dedicated commands; bounds are set in the raid editor GUI. No config, items or entities of its own.

Tournaments

What it does

An automated single-elimination (and FFA / team) tournament manager for DragonMineZ. An operator defines a tournament with an arena, a fighter waiting area and spectator stands; players sign up through an NPC, a GUI or commands; the bracket runs match by match with combat rules enforced (non-lethal, no items, PvP off outside the arena); and the winner is announced and rewarded, optionally with a transferable title. Contestants can optionally be swapped into a dedicated, frozen "tournament character" so everyone competes on an even build.

Commands

All under /rg tourney (legacy aliases /sdt, /tournament). Tournaments referenced by display name.

Player-facing (permission dmz_ragnarok.tournaments.use, default everyone):

  • /rg tourney list : list tournaments.
  • /rg tourney join <name> : sign up.
  • /rg tourney leave <name> : withdraw.
  • /rg tourney tpwait <name> : teleport to the fighter waiting area (signed-up fighters only).
  • /rg tourney status <name> : show status.
  • /rg tourney loadout : open the attack-loadout / creation picker.
  • /rg tourney team create <team> <name> : create a team (team formats only).
  • /rg tourney team join <teamId> <name> : join a team.
  • /rg tourney team leave <name> : leave your team.

    Admin (permission dmz_ragnarok.tournaments.admin, default op level 2):

  • /rg tourney edit : open the editor hub.
  • /rg tourney open <name> : open sign-ups.
  • /rg tourney start <name> : force-start.
  • /rg tourney cancel <name> : cancel.
  • /rg tourney bounds arena|waiting|stands <c1> <c2> <name> : set a region by coordinates (only registered

    when Tournaments.Regions is on).

  • /rg tourney npc spawn|bind|setgroup|remove|removeall ... : manage sign-up NPCs.
  • /rg tourney title list|set <id> <player>|clear <id> : manage transferable titles.

Permission nodes

  • dmz_ragnarok:tournaments.use (boolean). Default: ALL (everyone). Player commands.
  • dmz_ragnarok:tournaments.admin (boolean). Default: OP (perm level 2). Management commands.

    Console / command blocks fall back to op level 2.

Config options

File: config/shuruis_dmz_tournaments-common.toml. Keys and defaults:

  • rules.itemsAllowedInArena = false.
  • rules.healAfterFight = true.
  • rules.forceFriendlyFist = true. Force DMZ non-lethal fist for contestants in the arena.
  • rules.allowPvpInWaitingArea = false.
  • rules.allowPvpInStands = false.
  • rules.countdownSeconds = 5 (0-60).
  • rules.matchTimeLimitSeconds = 300 (0-3600, 0 = unlimited; on timeout the higher-health fighter wins).
  • characters.enabled = true. Swap contestants into a dedicated tournament character on entry.
  • characters.trainingPointAllowance = 100000 (0 - Integer.MAX). DEAD / UNUSED, kept only so the key is

    not lost; superseded by statAllocations.

  • characters.statAllocations = 2500 (0 - Integer.MAX). Flat DMZ pending attribute points a tournament

    character is granted.

  • characters.forceTransformAtHalfHealth = true.
  • characters.forcedFormStatMultiplier = 1.5 (min 1.0, no upper cap). Flat stat multiplier applied to a

    forced tournament transform.

  • characters.forcedTransformIframeTicks = 40 (0-600).
  • signup.maxParticipants = 16 (0-256, 0 = unlimited).
  • signup.durationMinutes = 10 (1-1440).
  • signup.minParticipants = 2 (2-256).
  • signup.requireDmzCharacter = true.
  • signup.reminderSeconds = 30 (0-3600, 0 = once).
  • npc.name = "Hercule".
  • npc.character = "hercule". Which DMZ tournament-character skin the NPC wears.
  • npc.lookRadius = 8.0 (0-64).
  • schedule.mode = "MANUAL" (MANUAL / DAILY / WEEKLY / MONTHLY).
  • schedule.hour = 18 (0-23).
  • schedule.minute = 0 (0-59).
  • schedule.dayOfWeek = 6 (1-7, WEEKLY mode).
  • schedule.dayOfMonth = 1 (1-28, MONTHLY mode).
  • announce.useOnScreenTitles = true.
  • announce.sound = "minecraft:ui.toast.challenge_complete".
  • announce.signupOpen / announce.starting / announce.match / announce.matchWin / announce.champion

    : announcement templates (with & colours and {npc} / {count} / {p1} / {p2} / {winner} / {loser} / {champion} placeholders).

  • rewards.winner = ["title:champion", "item:minecraft:diamond:10", "message:..."].
  • rewards.runnerUp = ["item:minecraft:diamond:3"].
  • rewards.participation = ["item:minecraft:gold_ingot:1"].

    Reward token format: command:<cmd with {player}>, item:<id>:<count>, tp:<x> <y> <z>, skill:<dmzSkillId>:<levels>, title:<titleId>, message:<text>.

  • titles.definitions = ["champion|&6&lWorld Martial Arts Champion|&6&l [Champion]"]. Format

    id|Display Text|Tag. Only one player holds a given title at a time.

  • titles.chatPrefix = true.
  • titles.nametagPrefix = true.

    Tournament definitions (arena/waiting/stands regions, format, NPC, reward overrides) are world SavedData edited in-game, not a hand-edited JSON file.

Items / blocks / entities

Items:

  • Stat Gems (stat_gem_<amount>), six consumables: 10, 25, 50, 100, 250, 500. Right-click opens a picker to

    add that many points to one of the six DMZ core stats (needs a created character).

    Entities:

  • Tournament NPC (tournament_npc) : the sign-up host / browser NPC.

    Blocks: none.

Key gating

  • Every tournament format (SOLO 1v1, DUOS 2v2, TRIOS 3v3, FFA) is PUBLIC and runs on any server, with or

    without the Ragnarok Key.

  • Stat Gems require the Ragnarok Key (validated server-side when the picker choice arrives; on a server without

    the key the gem is not consumed).

  • Tournament CHARACTERS are NOT key-gated (they are governed only by characters.enabled config and the

    Tournaments.Characters module switch).

Gotchas

  • The class javadoc and Config.EDITABLE_KEYS / Config.setByKey reference an in-game

    /rg tourney config <key> <value> command, but no config subcommand is actually registered in TournamentCommand.register. Edit the .toml (or the editor GUI) instead.

  • Tournament characters are reloaded from a frozen template on every entry and swapped back out on exit /

    logout / server stop, so they can never carry progress out. statAllocations are DMZ pending ATTRIBUTE points (spent before training points, 1 point per stat), not a training-point pool.

  • A title is single-holder and transferable; clearing one records a dated revocation that syncs across shards

    and strips the old holder's title perks without a relog.

  • A StatsData.getFormMultiplier mixin forces the flat forcedFormStatMultiplier for a tournament fighter's

    active form (require = 0, so it degrades to stock if DMZ moves the target).

Tournaments.Signup

Sign-ups, the sign-up NPC and the waiting list. The join / leave / tpwait / team commands and the Tournament NPC belong here. Off (via Tournaments.Signup) makes openSignups refuse, so sign-ups cannot open. No dedicated config or items beyond the signup.* config keys and the Tournament NPC entity.

Tournaments.Characters

Tournament characters: the separate frozen build a fighter competes with. Governed by characters.* config and the Tournaments.Characters module switch (checked when deciding whether to swap a player in). Not key-gated. No commands or items of its own (the /rg tourney loadout picker is player-facing).

Tournaments.Rewards

Prize payout to the winner and placings. Governed by the rewards.winner / rewards.runnerUp / rewards.participation config lists. Off (via Tournaments.Rewards) skips the payout. No commands or items of its own.

Tournaments.Regions

Arena regions, the slots inside them and the fight bounds (arena / waiting / stands), picked with WorldEdit or entered by coordinates. Off (via Tournaments.Regions) hides the /rg tourney bounds command node and refuses region edits through the editor's bounds packet. No config, items or entities of its own.