Configuration
Configuration
Section titled “Configuration”Outbreaks uses HOCON configuration files located in config/matchaoutbreaks/.
Main Configuration
Section titled “Main Configuration”Location: config/matchaoutbreaks/config.conf
{ # Enable debug logging debug = false
# Spawn bucket weights for outbreak spawns # Format: "bucket_name: weight, ..." spawnBuckets = "common: 0.5, uncommon: 0.3, rare: 0.15, ultra-rare: 0.05"
# Minimum distance between concurrent outbreaks (blocks) minimumDistance = 75
# Chance for an outbreak to spawn naturally (0.0-1.0) outbreakChance = 0.05}Configuration Options
Section titled “Configuration Options”- debug: Enable detailed logging for troubleshooting
- spawnBuckets: Rarity weights for outbreak spawns
- minimumDistance: Prevents outbreaks from spawning too close together
- outbreakChance: Probability of natural outbreak spawns (5% default)
Outbreak Type Definitions
Section titled “Outbreak Type Definitions”Outbreak types are defined in separate .conf files in config/matchaoutbreaks/outbreak_types/.
Biome Pool Outbreak
Section titled “Biome Pool Outbreak”Uses natural biome spawns with configurable rates.
Example: config/matchaoutbreaks/outbreak_types/plains_outbreak.conf
{ type = "biome"
# Spawn conditions spawnConditions { biomes = [ "#minecraft:is_plains" ] }
# Outbreak duration in seconds duration = 3600
# Ticks between spawn attempts spawnRate = 100
# Maximum total Pokemon that can spawn maxSpawns = 50
# Maximum concurrent Pokemon from this outbreak concurrentSpawnCap = 10
# Outbreak radius in blocks radius = 150
# Shiny rates by Pokemon count # Format: "min-max: rate, ..." shinyRates = "0-10: 4096, 11-20: 1024, 21-30: 512, 31-999: 341.3"
# Guaranteed perfect IVs by Pokemon count ivRangeValues = "0-5: 0, 6-10: 1, 11-20: 2, 21-30: 3, 31-999: 4"
# Hidden ability chance by Pokemon count hiddenAbilityRangeValues = "0-5: 0, 6-10: 0.1, 11-20: 0.2, 21-30: 0.3, 31-999: 0.4"
# Particle effect particleEffect { type = "vanilla" particle = "minecraft:electric_spark" }
# Rewards for catching outbreak Pokemon rewards = []}Distortion Outbreak
Section titled “Distortion Outbreak”Custom species list with special visuals.
Example: config/matchaoutbreaks/outbreak_types/space_time_distortion.conf
{ type = "distortion"
# Spawn conditions spawnConditions { biomes = [ "#minecraft:is_overworld" ] }
# Species that can spawn in this distortion species = [ { species = "porygon" aspects = [] level_range = "30..40" weight = 3.0 }, { species = "porygon2" aspects = [] level_range = "40..50" weight = 2.0 }, { species = "porygonz" aspects = ["shiny=yes"] level_range = "50..60" weight = 0.1 } ]
# Outbreak duration in seconds duration = 1800
# Ticks between spawn attempts spawnRate = 100
# Maximum total Pokemon that can spawn maxSpawns = 30
# Maximum concurrent Pokemon from this outbreak concurrentSpawnCap = 8
# Particle effect (can reference particle options) particleEffect { type = "vanilla" particle = "minecraft:portal" }
# Outbreak radius in blocks radius = 100
# Rewards for catching outbreak Pokemon rewards = [ { type = "command" command = "give {player} minecraft:diamond 3" } ]}Particle Effects
Section titled “Particle Effects”Vanilla Particles
Section titled “Vanilla Particles”Use Minecraft’s built-in particles:
particleEffect { type = "vanilla" particle = "minecraft:electric_spark"}Available vanilla particles include:
minecraft:electric_sparkminecraft:portalminecraft:end_rodminecraft:flameminecraft:soul_fire_flameminecraft:cherry_leaves
Snowstorm Particles
Section titled “Snowstorm Particles”Use Bedrock-style particle effects:
particleEffect { type = "snowstorm" particleId = "matchaoutbreaks:custom_effect"}Rewards
Section titled “Rewards”Rewards are given to players for each Pokemon they catch or defeat during the outbreak. If an outbreak spawns 30 Pokemon and a player defeats all of them, they receive the reward 30 times.
Command Rewards
Section titled “Command Rewards”Execute a server command for each Pokemon defeated:
rewards = [ { type = "command" command = "give {player} cobblemon:rare_candy 1" }]Important Notes:
- Use
{player}as a placeholder for the player’s username - The command executes once per Pokemon defeated
- Commands run with server permissions (operator level)
- Multiple commands can be added to the rewards array
Example with multiple rewards:
rewards = [ { type = "command" command = "give {player} cobblemon:rare_candy 1" }, { type = "command" command = "xp add {player} 50 points" }]Script Rewards
Section titled “Script Rewards”Execute MoLang scripts for complex reward logic:
rewards = [ { type = "script" script = "q.give_item('minecraft:diamond', 5)" }]Spawn Buckets
Section titled “Spawn Buckets”The spawnBuckets configuration controls the rarity distribution of outbreak spawns:
spawnBuckets = "common: 0.5, uncommon: 0.3, rare: 0.15, ultra-rare: 0.05"- common: 50% of outbreak spawns
- uncommon: 30% of outbreak spawns
- rare: 15% of outbreak spawns
- ultra-rare: 5% of outbreak spawns
Biome Tags
Section titled “Biome Tags”Use biome tags to target groups of biomes:
spawnConditions { biomes = [ "#minecraft:is_plains", "#minecraft:is_forest", "#c:desert" ]}Common biome tags:
#minecraft:is_plains#minecraft:is_forest#minecraft:is_mountain#minecraft:is_ocean#minecraft:is_nether#minecraft:is_end
Level Ranges
Section titled “Level Ranges”Specify level ranges for distortion outbreak species:
level_range = "30..40" # Level 30 to 40level_range = "50..50" # Exactly level 50Creating New Outbreak Types
Section titled “Creating New Outbreak Types”- Create a new
.conffile inconfig/matchaoutbreaks/outbreak_types/ - Choose either
type = "biome"ortype = "distortion" - Configure spawn conditions, duration, and rates
- Set particle effects and rewards
- Run
/outbreak reloadto load your new type - Use
/outbreak spawn <type>to test it