This page explains all configuration options available in Matchbox.
Location: plugins/Matchbox/config.yml
The configuration file is automatically created on first run with sensible defaults for the M4tchb0x map.
Default spawn points for players when a game starts.
session:
spawn-locations:
- world: m4tchb0x
x: 100.5
y: 64.0
z: 200.5
yaw: 0.0
pitch: 0.0Format: List of locations with world name and coordinates
Required: At least as many spawns as max player count
Note: Set using /matchbox setspawn command
player:
min: 2 # Minimum players to start (2-7)
max: 7 # Maximum players per session (2-20)min: Minimum players required to begin a game (2-7)
max: Maximum players allowed in a session (2-20)
Note: Game is best with 5-9 players
Control how long each game phase lasts.
swipe:
duration: 180 # seconds (30-600)Default: 180 seconds (3 minutes)
Range: 30-600 seconds
Description: Time for exploration, abilities, and Spark infections
discussion:
duration: 180 # seconds (5-300)
seat-locations:
1:
world: m4tchb0x
x: 110.5
y: 64.0
z: 210.5Default: 60 seconds (1 minute)
Range: 5-300 seconds
Description: Time for players to discuss and share observations
Note: Seat locations set using /matchbox setseat <number> command
voting:
duration: 30 # seconds (5-120)Default: 60 seconds
Range: 5-120 seconds
Description: Time for players to vote on who to eliminate
Configure how many votes are needed to eliminate a player based on alive player count.
voting:
threshold:
at-20-players: 0.20 # 20% of votes at 20 players
at-7-players: 0.30 # 30% of votes at 7 players
at-3-players: 0.50 # 50% of votes at 3 or fewer playersDescription: Threshold scales logarithmically between these points
Example: With 10 alive players, threshold is ~25-28%
Voting penalty when no elimination occurs.
voting:
penalty:
per-phase: 0.0333 # ~3.33% reduction per phase
max-phases: 3 # Maximum phases to accumulate
max-reduction: 0.10 # Maximum 10% total reductionper-phase: Threshold reduction per failed voting phase (default: 0.0333 = 3.33%)
max-phases: Maximum consecutive phases that accumulate penalty (default: 3)
max-reduction: Maximum total threshold reduction (default: 0.10 = 10%)
Reset: Penalty resets when a successful elimination occurs
Configure which secondary ability the Spark receives.
spark:
secondary-ability: random # Options: random, hunter_vision, spark_swap, delusionOptions:
random— Randomly select ability each round (default)hunter_vision— Always use Hunter Vision abilityspark_swap— Always use Spark Swap abilitydelusion— Always use Delusion ability
Ability Descriptions:
- Hunter Vision: See all players with particles for 15 seconds
- Spark Swap: Invisible position swap with random player
- Delusion: Apply fake infection that medic can see but doesn't eliminate
Configure medic secondary abilities.
medic:
secondary-ability: random # Options: random, healing_sightOptions:
random— Random selection (currently only Healing Sight available)healing_sight— Healing Sight ability
Note: Currently only Healing Sight is implemented. More abilities planned for future releases.
Player appearance settings during games.
cosmetics:
use-steve-skins: true # Force Steve skins for all players
random-skins-enabled: false # Enable random skin assignmentuse-steve-skins:
true— All players get Steve skin (recommended for consistency)false— Use random-skins-enabled setting
random-skins-enabled:
true— Assign random skins from a preset poolfalse— Use Steve skins (or default skins if use-steve-skins is false)
Recommendation: Use use-steve-skins: true and random-skins-enabled: false for the most consistent experience.
Here's a complete example configuration:
# Matchbox Configuration
session:
spawn-locations:
- world: m4tchb0x
x: 100.5
y: 64.0
z: 200.5
yaw: 0.0
pitch: 0.0
# Add more spawns...
player:
min: 2
max: 7
swipe:
duration: 180
discussion:
duration: 60
seat-locations:
1:
world: m4tchb0x
x: 110.5
y: 64.0
z: 210.5
# Add seats 2-8...
voting:
duration: 30
threshold:
at-20-players: 0.20
at-7-players: 0.30
at-3-players: 0.50
penalty:
per-phase: 0.0333
max-phases: 3
max-reduction: 0.10
spark:
secondary-ability: random
medic:
secondary-ability: random
cosmetics:
use-steve-skins: true
random-skins-enabled: falseThe easiest way to configure spawn and seat locations is using in-game commands:
-
For Spawns:
- Stand at the desired spawn point
- Run
/matchbox setspawn - Location is automatically saved to config.yml
-
For Seats:
- Stand at the desired seat location
- Run
/matchbox setseat <number>(1-8) - Location is automatically saved to config.yml
- Use
/matchbox listspawnsto view all spawn points - Use
/matchbox listseatspawnsto view all seat locations - Both commands flag any missing or unloaded worlds
Most configuration changes require a server restart to take effect. Location changes made via commands are applied immediately.
Important: Make sure world names in your config match your actual world folder names. The default configuration uses m4tchb0x as the world name.
If your world has a different name, you'll need to either:
- Reconfigure all locations using the
/matchbox setspawnand/matchbox setseatcommands, or - Manually edit
config.ymlto update the world names
For quick testing or casual play:
swipe:
duration: 120 # 2 minutes
discussion:
duration: 45 # 45 seconds
voting:
duration: 20 # 20 secondsFor 10+ players:
player:
min: 5
max: 15
swipe:
duration: 240 # 4 minutes (more time needed)
discussion:
duration: 90 # 90 seconds (more discussion needed)
voting:
duration: 45 # 45 seconds (more time to vote)To make eliminations more likely:
voting:
threshold:
at-20-players: 0.15 # Lower threshold (15% instead of 20%)
at-7-players: 0.25
at-3-players: 0.40
penalty:
per-phase: 0.05 # Faster penalty accumulationTo always give Spark the Hunter Vision ability:
spark:
secondary-ability: hunter_visionProblem: "Not enough spawn locations" or "Not enough seat locations"
Solution:
- Check world names with
/matchbox listspawnsor/matchbox listseatspawns - Ensure world folder exists and is loaded
- Reconfigure locations if world names don't match
Problem: Server logs show configuration validation errors
Solution:
- Check that values are within valid ranges
- Ensure proper YAML syntax (indentation matters!)
- Delete
config.ymland restart to regenerate defaults
Problem: Configuration changes don't seem to work
Solution:
- Restart the server (most config changes need restart)
- Check server logs for errors
- Verify YAML syntax is correct