Skip to main content

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

KeyTypeDefaultDescription
deleteItemsOnFailToExtractBooleantrueWhether 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.

KeyDefaultDescription
failedToJoinOngoingMatchAsPlayerMessageCan't join this match - it has already started!Shown when a player tries to join an in-progress match
failedToJoinOngoingMatchAsPlayerInstanceIsFullCan't join this match - the instance is already full!Shown when the match has reached its max player count
failedToJoinOngoingMatchAsPlayerNoPermissionCan't join this match - you don't have the permission!Shown when a player lacks join permission
failedToJoinMatchAsSpectatorNoSpectatorsAllowedMessageCan'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.
failedToJoinMatchAsSpectatorNoPermissionCan'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.
matchJoinAsPlayerTitleExtract!Title shown when joining a match
matchJoinAsPlayerSubtitleGrab 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.
matchJoinAsSpectatorSubtitleNow 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.
matchFailedToStartNotEnoughPlayersMessageThis 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).
matchStartingTitleMatch starting!Title shown during the 3-second countdown. $count is replaced with the remaining seconds.
matchStartingSubtitlein $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.

KeyTypeDefaultDescription
isEnabledBooleantrueWhether this content package is active
nameString(required)Display name of the package (supports & color codes)
descriptionString list(required)Description lines shown in the setup menu
downloadLinkString(optional)URL where the content can be downloaded
versionInteger0Content version number, used for update checks
folderNameString(required)Name of the schematics subfolder for this package
usesEliteMobsBooleanfalseDeclarative flag indicating the package uses EliteMobs content. Not enforced at runtime.
usesBetterStructuresBooleanfalseDeclarative flag indicating the package uses BetterStructures content. Not enforced at runtime.
usesFreeMinecraftModulesBooleanfalseDeclarative flag indicating the package uses FreeMinecraftModels content. Not enforced at runtime. Note the YAML key is spelt usesFreeMinecraftModules (with "Modules") in source.
betterStructuresModulesContainerNameString(optional)The BetterStructures module generator config filename
spectatableBooleanfalseWhether spectators can join matches using this package
pvpEnabledBooleantrueWhether PvP is enabled during matches
minPlayersInteger1Minimum players required to start a match
maxPlayersInteger100Maximum players allowed in a match
chestLootTablesString list[]Loot tables used for chests, formatted as filename.yml:weight
barrelLootTablesString 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