Extractioncraft Configuration
Extractioncraft uses several configuration files. The main settings live in config.yml and messaging.yml. Content packages, loot tables, and loot pools each have their own config folders.
config.yml
| Key | Type | Default | Description |
|---|---|---|---|
deleteItemsOnFailToExtract | Boolean | true | Whether players lose all items if they fail to extract from a match using one of the extraction points. When enabled, premade content is balanced around this risk. Disabling it makes content easier to farm with less reason to engage extraction mechanics. |
messaging.yml
All messages support & color codes. Placeholders are noted per row.
| Key | Default | Description |
|---|---|---|
failedToJoinOngoingMatchAsPlayerMessage | Can't join this match - it has already started! | Shown when a player tries to join an in-progress match |
failedToJoinOngoingMatchAsPlayerInstanceIsFull | Can't join this match - the instance is already full! | Shown when the match has reached its max player count |
failedToJoinOngoingMatchAsPlayerNoPermission | Can't join this match - you don't have the permission! | Shown when a player lacks join permission |
failedToJoinMatchAsSpectatorNoSpectatorsAllowedMessage | Can't join this match - spectators are not allowed! | Configurable message for when spectating is disabled for the content package. Not currently emitted by the MagmaCore match runtime: the spectate attempt is silently rejected without sending any message. |
failedToJoinMatchAsSpectatorNoPermission | Can't spectate this match - you don't have the permission! | Configurable message for when a player lacks spectate permission. Not currently emitted by the MagmaCore match runtime: a spectator who lacks permission is shown failedToJoinOngoingMatchAsPlayerNoPermission instead. |
matchJoinAsPlayerMessage | [Extractioncraft] You are now in the match, $player! | Chat message on joining a match as a player. The MagmaCore runtime only substitutes the $count placeholder (with the minimum player count) in this string; $player is not substituted, so the default text shows $player literally. |
matchJoinAsPlayerTitle | Extract! | Title shown when joining a match |
matchJoinAsPlayerSubtitle | Grab the loot and head to an extraction point! | Configurable join subtitle. Not currently used by the MagmaCore match runtime: the subtitle actually shown on join is matchStartingSubtitle. |
matchJoinAsSpectatorTitle | (empty) | Configurable spectator-join title. Not currently emitted by the MagmaCore match runtime. |
matchJoinAsSpectatorSubtitle | Now spectating! | Configurable spectator-join subtitle. Not currently emitted by the MagmaCore match runtime. |
matchJoinAsSpectatorMessage | [Extractioncraft] You are now spectating a match! Do &a/extractioncraft quit &fto stop spectating! | Configurable spectator-join chat message. Not currently emitted by the MagmaCore match runtime. |
matchLeaveAsPlayerMessage | [Extractioncraft] You have left the match, $player! | Configurable leave message. Not currently emitted by the MagmaCore match runtime, and $player is not substituted. |
matchLeaveAsSpectatorMessage | [Extractioncraft] You have left the match, $player! | Configurable spectator leave message. Not currently emitted by the MagmaCore match runtime, and $player is not substituted. |
matchFailedToStartNotEnoughPlayersMessage | This match requires $count players before starting - can't start yet! | Shown when /exc start is used without enough players. The MagmaCore runtime replaces the $amount placeholder with the minimum player count, so customise this message using $amount rather than $count if you want the number to be substituted. |
matchStartingMessage | [Extractioncraft] Match starting! | Configurable match-start chat message. Not currently emitted by the MagmaCore match runtime (the countdown is shown via the title/subtitle instead). |
matchStartingTitle | Match starting! | Title shown during the 3-second countdown. $count is replaced with the remaining seconds. |
matchStartingSubtitle | in $count... | Subtitle during the 3-second countdown. $count is replaced with the remaining seconds. |
preventTeleportInMessage | [Extractioncraft] You have attempted to teleport into an ongoing match - you can't do that! | Configurable message for blocked teleports into a match world. The teleport itself is cancelled by the runtime, but this message is not currently sent to the player. |
preventTeleportOutMessage | [Extractioncraft] You have attempted to teleport from an ongoing match - you can't do that! | Configurable message for blocked teleports out of a match. The teleport itself is cancelled by the runtime, but this message is not currently sent to the player. |
Content Package Configuration
Content packages are YAML files in the content_packages/ folder. Each defines a playable map configuration.
| Key | Type | Default | Description |
|---|---|---|---|
isEnabled | Boolean | true | Whether this content package is active |
name | String | (required) | Display name of the package (supports & color codes) |
description | String list | (required) | Description lines shown in the setup menu |
downloadLink | String | (optional) | URL where the content can be downloaded |
version | Integer | 0 | Content version number, used for update checks |
folderName | String | (required) | Name of the schematics subfolder for this package |
usesEliteMobs | Boolean | false | Declarative flag indicating the package uses EliteMobs content. Not enforced at runtime. |
usesBetterStructures | Boolean | false | Declarative flag indicating the package uses BetterStructures content. Not enforced at runtime. |
usesFreeMinecraftModules | Boolean | false | Declarative flag indicating the package uses FreeMinecraftModels content. Not enforced at runtime. Note the YAML key is spelt usesFreeMinecraftModules (with "Modules") in source. |
betterStructuresModulesContainerName | String | (optional) | The BetterStructures module generator config filename |
spectatable | Boolean | false | Whether spectators can join matches using this package |
pvpEnabled | Boolean | true | Whether PvP is enabled during matches |
minPlayers | Integer | 1 | Minimum players required to start a match |
maxPlayers | Integer | 100 | Maximum players allowed in a match |
chestLootTables | String list | [] | Loot tables used for chests, formatted as filename.yml:weight |
barrelLootTables | String list | [] | Loot tables used for barrels, formatted as filename.yml:weight |
Loot Table Weight Format
Chest and barrel loot table entries use the format <loot_table_filename.yml>:<weight>. When a player opens a container, one loot table is selected based on weighted probability.
Example:
chestLootTables:
- kobold_mines_chest_high_loot_table_10.yml:.2
- kobold_mines_chest_low_loot_table_10.yml:.2
barrelLootTables:
- kobold_mines_barrel_loot_table_10.yml:1