Duel-Regen logoDuel-Regen

Integrations

WorldEdit and FAWE for faster restores, world managers, the Party Extension, and an API for other match plugins.

Duel-Regen works on its own. These integrations are optional and picked up automatically when present.

WorldEdit / FastAsyncWorldEdit

With WorldEdit or FAWE installed and this key on, arenas are captured to a clipboard and pasted back in one operation instead of block-by-block:

use-fawe: true
Bukkit restore (default)WorldEdit / FAWE restore
Speedblocks-per-tick blocks per tick, spread over timeWhole arena at once
NeedsNothing extraWorldEdit or FastAsyncWorldEdit installed
Disk snapshot format.snap (plugin's own format).schem (standard Sponge schematic)

If use-fawe is on but neither plugin is installed, Duel-Regen says so in the console and falls back to the Bukkit path. Nothing breaks.

For big arenas, or blocks-per-tick values you would otherwise have to crank very high, the WorldEdit path is worth the install.

World managers (Multiverse and friends)

Arena worlds owned by Multiverse-Core, My Worlds or MultiWorld often load after Duel-Regen does. That is fine: worlds are looked up at the moment they are needed, not once at startup. If a region points at a world that never loads, the plugin warns you in the console after startup instead of silently dropping the arena.

Duels

Not an integration so much as the point of the plugin: Duel-Regen listens to match start and match end events from Duels (Optimised) and does everything else on its own. If Duels is missing or fails to enable, Duel-Regen tells you loudly at startup and arenas will not regenerate until it is fixed.

Party Extension for Duels Optimized

The Party Extension runs party matches (FFA and teams, any player count) on your Duels arenas, but with its own match system instead of Duels matches. Duels never announces those games, so Duel-Regen needs the extension to tell it directly.

Duel-RegenParty ExtensionParty arenas regenerate?
1.4.0+1.17.0+Yes, automatically
1.3.0 or olderanyNo
any1.16.x or olderNo

With both updated there is nothing to set up. Party matches use the same Duels arenas, so the regions you already configured apply, and all regen settings (snapshot-each-match, use-fawe, persist-snapshots, crash recovery) behave exactly like they do for normal duels. The snapshot is taken as soon as a party match is assigned an arena, before the countdown, and the restore starts once every player has been teleported out.

If party arenas are not regenerating, check the console at startup: the Party Extension warns once if Duel-Regen is too old. Then check the arena has a region, like any other arena (/duelregen info <arena>).

For developers: external match API

Plugins or Duels extensions that play matches in Duels arenas without going through Duels matches can drive Duel-Regen themselves. The methods live on the main plugin class and only use Java types, so call them by reflection with no compile-time dependency:

Plugin regen = Bukkit.getPluginManager().getPlugin("Duel-Regen");
if (regen != null && regen.isEnabled()) {
    Method capture = regen.getClass().getMethod("captureArena", String.class);
    Method restore = regen.getClass().getMethod("regenArena", String.class);

    capture.invoke(regen, "Arena1"); // before players can touch the arena
    // ... match plays ...
    restore.invoke(regen, "Arena1"); // after players have left
}
MethodReturns
int getExternalApiVersion()API version, currently 1. Missing method means Duel-Regen is older than 1.4.0
boolean captureArena(String arenaName)true if the arena now holds a snapshot; false if it has no region, its world is not loaded, or capture failed
boolean regenArena(String arenaName)true if a restore was scheduled; false if no snapshot is held

Both must be called on the main thread. Arena names are Duels arena names and go through the same name matching as config keys. regen-delay-ticks still applies to the restore, and calling captureArena while that arena is still regenerating finishes the restore first, so an arena can be reused right away.

On this page