Skip to main content

Extractioncraft Match Flow

This page documents what actually happens from the moment a match is created to the moment the instanced world is deleted, including the timers, the extraction rules, and the way players lose their gear.

Creating the Match​

/exc createMatch <contentPackage.yml> hands the package's betterStructuresModulesContainerName to BetterStructures, which generates a brand new instanced world. The command first checks that BetterStructures, EliteMobs and FreeMinecraftModels are loaded, that the player is not already in a match or waiting for one, and that the package and its module generator are enabled.

While the world generates, the player is held for this match and cannot join or create another. Generation is cancelled, and the half-built world deleted, if it takes longer than 15 minutes, if the player disconnects or runs /exc leave, or if one of the companion plugins stops being available. When generation finishes:

  • An ExtractionMatch is created for that world and starts in the waiting state.
  • The player who ran the command is added to the match and, on the next tick, teleported to a randomly chosen spawn point in the new world. A map with no spawn point cancels the match instead.

Anyone entering the match is put into Adventure mode. Their previous location and gamemode are saved before the switch and restored when they leave. Players keep their own inventory in the match; nothing is stored aside.

There is no queue and no matchmaking. A match exists because somebody created it.

Waiting for Players​

No join command

/exc createMatch is the only built-in way into a match. Extractioncraft registers no join or spectate subcommand, so a match normally holds exactly one player: the person who created it. Other plugins can admit players or spectators through the developer API; the rules below apply to them.

While the match is waiting:

  • Admission allows players up to the package's maxPlayers (8 for all premade Kobold Mines packages), rejecting a full instance with failedToJoinOngoingMatchAsPlayerInstanceIsFull.
  • Once the match is counting down or live, nobody else can join as a player. Late joiners get failedToJoinOngoingMatchAsPlayerMessage.
  • Spectators are only accepted when the content package sets spectatable: true. All premade packages leave it false.
  • Leaving now is free: the item wipe rule only applies once the match is live.

Starting​

Any player inside the match can run /exc start.

  • If fewer than minPlayers are present, the match refuses to start and everyone is told so via matchFailedToStartNotEnoughPlayersMessage ($amount is replaced with the required count).
  • Otherwise the countdown displays 2, 1, then 0 at one-second intervals. It finishes on the third update, about two seconds after the first.
  • If the player count drops below minPlayers during the countdown, the match is aborted and ends outright.
  • Running /exc start again after the countdown has begun does nothing.

When the countdown finishes, the match goes live. Physical redstone interaction is unlocked, the map's instanced bosses spawn, chests and barrels are placed, and the 15-minute timer, shrinking world border and compass boss bar start. The decorative (unusable) extraction points are pasted at the same time.

Timers​

TimerLengthEffect
Match timer15 minutesShown as Timer MM:SS on the Extractioncraft sidebar scoreboard, refreshed once per second. At 00:00 the match ends.
Extraction points unlock1 minute after startThe usable version of each extraction point is pasted in, complete with its lever.
Extraction window20 secondsStarted by pulling an extraction point's lever.
Container opening3 secondsTime you must stand still to loot a chest or barrel.

When the match timer reaches 00:00, the match ends and every player still inside is removed as a failed extraction. See death and item loss.

The World Border​

The border is centered on the middle of the generated map and starts as wide as the map. BetterStructures reports that width as (2 × radius − 1) × moduleSizeXZ from the module generator, which is 384 blocks for the premade Kobold Mines maps. Once per second the border is set to the starting width scaled by the time left, so it shrinks steadily and reaches 1 block when the 15-minute timer runs out.

The border's warning distance is set to the current border width minus 50, never below 0. Because Minecraft measures warning distance as "how many blocks from the border the screen starts tinting", the red warning overlay covers the whole map until the border is under 100 blocks wide; after that it only shows near the edge.

Because the hardest zones sit in the middle of the map (see mob kill loot), the shrinking border steadily pushes players into the harder and more rewarding part of the map. Border damage still applies, and lethal border damage removes a player through the normal match-death path.

Extracting​

  1. Find an extraction point. The boss bar at the top of the screen is a compass strip: it shows a ⦿ marker for every extraction point within 90° of where you are looking, at about 3° per character. The bar appears as soon as the match starts, but it stays empty for the first minute; markers are only drawn for the usable extraction points, which are not placed until the unlock timer fires.
  2. Right-click the lever on the extraction point. The lever is removed, every player within 10 blocks is told "You have triggered an exit!", and a single 20-second extraction window opens for that point.
  3. Stand inside the extraction zone, the 7 × 7 × 7 block cube centered on the extraction point's block. While you are inside it you see Extracting! in N seconds!.
  4. Stepping out shows Extraction cancelled!, but the window keeps running. Getting back inside before it closes still counts.
  5. When the window closes, everyone standing inside extracts at once: Victory / Extraction successful!. They are removed from the match and keep everything they are carrying.
One window per extraction point

Each extraction point opens one window per match. The handler accepts a lever within 10 blocks of an extraction point that has not been used yet. A lever near a point that was already used does nothing special and toggles like a normal lever.

Death and Item Loss​

Extractioncraft matches give each player a single life and there is no respawn or death chest.

  • Damage that would kill a player is cancelled outright. Instead, the player is removed from the match. During a live match their potion effects, fire, freezing and fall distance are cleared first.
  • On removal they get their saved gamemode back and are teleported to where they were standing before they joined. Health is not restored, except for players who are still inside when the match ends.
  • Falling below the bottom of the world puts a player back on the last block they stood on, up to three times in a row. After that the void can kill them like any other damage.

How a player leaves decides what happens to their items once the match is live:

Way you leftKeeps loot?
Extracted at an extraction pointYes, soulbound
Server shutdown or /exc reloadYes, soulbound
Died, /exc leave, /exc quit or disconnected during a live matchNo, with the default config
Still inside when the 15-minute timer ran outNo, with the default config
Left while the match was still waiting or counting downYes, untouched

"No" clears the whole inventory, the item on the cursor and the crafting grid when deleteItemsOnFailToExtract is true (the default). With it set to false, those exits soulbind the items instead. Soulbinding binds every unbound item to the departing player while the EliteMobs Soulbind enchantment is enabled; items that are already bound keep their owner.

Players still inside when a countdown is aborted for lacking minPlayers are removed as the match ends and keep their items untouched, because the match never went live. Item loss applies only to players who were in the match when it went live.

World Protections​

The instanced match world is protected for its whole lifetime:

  • Players cannot break or place blocks, use bonemeal, empty buckets, edit signs, or damage the terrain. Explosions, fire, liquid flow, leaf decay and vanilla mob spawning are blocked, and elytra gliding is disabled.
  • Chests, barrels and other containers cannot be opened; match containers are looted as described in container loot. Doors, trapdoors and fence gates cannot be used. Item frames, armor stands and flower pots are protected.
  • Physical redstone interactions, such as pressure plates, are blocked until the match goes live. This setting does not block every kind of redstone interaction.
  • PvP is blocked when the content package sets pvpEnabled: false.
  • Players in the match cannot teleport by any means the match did not start itself, including commands, ender pearls and chorus fruit. Other players cannot teleport into the match world unless they hold extractioncraft.match.bypass (default: op).
  • While the match is counting down or live, anyone else found in the match world without extractioncraft.match.bypass is sent to the main world's spawn.

Admins can use /exc protection bypass for the block and interaction checks that consult the player's bypass flag. It does not bypass match teleport restrictions, PvP prevention or every world rule.

Ending the Match​

A match ends when its last active player is removed (whether they extracted, died, left, or disconnected), when the 15-minute timer runs out, or when a countdown loses its minimum player count. Everyone still inside is healed and removed, Extractioncraft stops the match's border, compass, scoreboard and particle tasks, and anyone else left in the world, such as staff with the bypass permission, is sent to the main world's spawn.

Ending the match then requests permanent deletion of its temporary world. Deletion is skipped if the world cannot unload; while the plugin is enabled, folder deletion waits five seconds and also checks that the world has not been loaded again.

Matches are also torn down when the plugin is disabled, which includes /exc reload and server shutdown. Matches still generating are cancelled, and players in live matches keep their items as described above.