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 asynchronously. 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 teleported to a randomly chosen spawn point in the new world.
  • The instanced bosses defined by the map's spawn pools are spawned.

Anyone entering the match is put into Adventure mode and has their previous gamemode and location remembered so they can be restored on exit.

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

Waiting for Players

No join command in the current build

/exc createMatch is the only code path that puts a player into a match. Extractioncraft registers no join subcommand and nothing else calls the shared runtime's join method, so a match currently holds exactly one player: the person who created it. Everything below about joining describes the shared MagmaCore match runtime that Extractioncraft builds on — it is configured, but nothing reaches it yet.

While the match is waiting:

  • The join path would allow players up to the package's maxPlayers (8 for all premade Kobold Mines packages), rejecting a full instance with failedToJoinOngoingMatchAsPlayerInstanceIsFull.
  • Once the match is live, nobody else can join — late joiners get failedToJoinOngoingMatchAsPlayerMessage.
  • Spectating is not available. Extractioncraft never marks its matches as spectatable, so spectator joins are always rejected, and the spectator messages in messaging.yml are never sent.
  • 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 a 3-second countdown runs, one title update per second.
  • If the player count drops below minPlayers during the countdown, the match is aborted and ends outright.

The moment the countdown finishes:

  • Chests and barrels are placed throughout the map.
  • Redstone interaction, which is blocked while the map is being set up, is unlocked so extraction levers can be used.
  • The 15-minute timer, the shrinking world border, and the compass boss bar all start.
  • The decorative (unusable) version of every extraction point is pasted into the map.

Timers

TimerLengthEffect
Match timer15 minutesShown as Timer MM:SS on the Extractioncraft sidebar scoreboard, refreshed once per second. Floors at 00:00.
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.

The match timer does not itself end the match — the world border does.

The World Border

The border starts at 740 blocks across and shrinks by one block roughly every 24 ticks (about 1.2 seconds), reaching zero shortly before the 15-minute mark (740 shrink steps at 24 ticks each is 14 minutes 48 seconds).

The border's warning distance is set to the current border width minus 50 (690 blocks at the start). Because Minecraft measures warning distance as "how many blocks from the border the screen starts tinting", a value that large covers the entire playable area, so the red warning overlay is on for everyone for the whole match rather than only when you approach the edge.

Because BetterStructures scales boss levels by distance from the centre of the map — the highest levels in the middle, the lowest at the edges — the shrinking border steadily pushes players into the harder and more rewarding part of the map.

Once the border reaches zero, border damage becomes lethal, and lethal damage removes players from the match (see below). When the last player is gone the match ends and its world is deleted.

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 consumed, everybody 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 — a cube reaching 3 blocks out from the extraction point in every direction. 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

Pulling the lever destroys it. If you trigger a point and then miss the 20-second window, that extraction point is spent — find another one.

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.
  • On removal their health is restored to maximum, their previous gamemode is restored, and they are teleported back to where they were standing before they joined.
  • Everything in their inventory is soulbound (EliteMobs soulbind enchantment) — and then, if the removal was not a successful extraction and deleteItemsOnFailToExtract is true (the default), the whole inventory is cleared.

The same removal path is used for /exc leave, /exc quit, and disconnecting, so all three lose your loot in a live match.

Way you leftKeeps loot?
Extracted at an extraction pointYes
Killed by a mob, a player, or the borderNo (with the default config)
/exc leave or /exc quit mid-matchNo (with the default config)
Disconnected mid-matchNo (with the default config)
Left while the match was still waiting or counting downYes

World Protections

The instanced match world is protected for its whole lifetime:

  • Players cannot break or place blocks, use bonemeal, or damage the terrain.
  • Redstone interaction is blocked until the match starts.
  • PvP is blocked when the content package sets pvpEnabled: false.
  • Teleporting into or out of the match world is cancelled. Only the plugin's own teleports go through.
  • While the match is live, the runtime scans for intruders in the match world. Operators are exempt and get an action-bar warning instead of being removed. Note that the removal itself only works on players the server still has a match-player record for (anyone who has been in a match since the last restart); a player who has never been in a match is detected but not actually moved.
  • A watchdog also checks for players who have left the match region, but it tries to put them back at the instance's start location, which Extractioncraft never sets — so that particular safety net does not currently work. In practice teleports out of the match world are already cancelled outright.

Admins can toggle these protections off for themselves with /exc protection bypass.

Ending the Match

A match ends when the last player is removed from it — whether they extracted, died, left, or disconnected. Ending the match permanently deletes the instanced world, so nothing left behind in it survives.

Matches are also torn down when the plugin is disabled, which includes /exc reload and server shutdown.