Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
CobbleBoss Boss User Guide
1. Data Pack Structure
CobbleBoss data packs use the cobbleboss namespace.
Normal Boss files are placed in:
data/cobbleboss/bosses/
Paid multiplayer Boss team files are placed in:
data/cobbleboss/boss_teams/
Main structure:
pack.mcmeta
data/cobbleboss/bosses/
data/cobbleboss/boss_teams/
Recommended file naming:
- Use lowercase English letters.
- Use underscores instead of spaces.
- Use clear names related to the Boss.
- Keep each Boss file independent.
2. What A Boss JSON Controls
A Boss JSON controls:
- Which Pokemon the Boss is
- Boss display name
- Boss glow color
- Natural spawn rules
- Rewards after victory
- Punishments after defeat
- Moves
- EVs
- Custom battle stats
- Nature
- Ability
- Form
- Held items
- Battle mode
- Actions per turn
- Shield settings
- Phase skills
- Boss size
3. Recommended Reading Order
For beginners, understand these parts first:
- Boss identity
- Spawn rules
- Rewards and punishments
- Battle configuration
- Visual settings
- Advanced raid mechanics
Most important fields:
unique_idspecies_idrandom_configs
Recommended fields:
display_nameglowmovesbattle_modeactions_per_turnscale
Optional fields:
spawn_rulereward_rulepunish_ruleeffort_valuescustom_battle_statsphase_skillsheld_itemsnatureabilityformshield_layersshield_recover_per_turnshield_weaken_turns
4. Top-Level Boss Fields
unique_id
Purpose:
The unique internal ID of the Boss.
Recommendation:
Required.
Notes:
- Must be unique.
- Commands use this ID.
- Do not reuse the same ID in multiple Boss files.
- Recommended format is lowercase English letters with underscores.
display_name
Purpose:
The name shown to players in game.
Recommendation:
Recommended.
Notes:
- Supports Minecraft color codes.
- Useful for making Boss names more obvious.
- If omitted, the species name may be used instead.
species_id
Purpose:
Defines which Pokemon species the Boss is.
Recommendation:
Required.
Notes:
- Usually uses the
cobblemonnamespace. - This determines the actual Pokemon created by the Boss system.
glow
Purpose:
Controls the Boss glowing outline color after it spawns.
Position:
Top-level field.
Recommendation:
Optional.
How it works:
- If set, the Boss receives a glowing outline.
- If missing or empty, the Boss does not glow.
- Uses Minecraft color names.
Available colors:
blackdark_bluedark_greendark_aquadark_reddark_purplegoldgraydark_graybluegreenaquaredlight_purpleyellowwhite
Notes:
- Invalid colors can cause the Boss file to fail loading.
- This only controls entity glow, not announcement color.
spawn_rule
Purpose:
Controls natural spawning rules.
Recommendation:
Optional.
Important:
For natural spawning, a Boss usually needs:
spawn_locationsspawn_timesspawn_biomesorspawn_structuresspawn_weight
Notes:
- A Boss without usable spawn rules may not participate in natural spawning.
spawn_biomesandspawn_structuresare checked as biome-or-structure matching.
reward_rule
Purpose:
Controls rewards after players defeat the Boss.
Recommendation:
Optional.
Can contain:
- Direct item rewards
- Direct command rewards
- Reward pools that roll once and randomly choose one entry
- Count
- Chance
- Weight
- Rolls
punish_rule
Purpose:
Controls punishments after players lose to the Boss.
Recommendation:
Optional.
Can contain:
- Level reduction
- EV reduction
- IV reduction
- Command punishment
- Chance
random_configs
Purpose:
Defines one or more possible battle configurations for this Boss.
Recommendation:
Required.
How it works:
- A Boss can have multiple random configurations.
- One configuration is selected when the Boss is created.
- Different configurations can have different moves, stats, held items, battle modes, shield settings, and size.
5. Spawn Rule Fields
spawn_locations
Purpose:
Restricts where the Boss can spawn.
Available values:
landwater_surfaceunderwatercaveskylava
Notes:
- Natural spawning needs a valid spawn location type.
- Use values that match the Boss theme.
spawn_times
Purpose:
Restricts the time period when the Boss can spawn.
Available values:
all_dayearly_morningmorningnoonafternoondusknightmidnight
Time mapping:
early_morning: 0 - 2999 ticksmorning: 3000 - 5999 ticksnoon: 6000 - 11999 ticksafternoon: 12000 - 14999 ticksdusk: 15000 - 17999 ticksnight: 18000 - 20999 ticksmidnight: 21000 - 23999 ticksall_day: no time restriction
Notes:
- Minecraft has 24000 ticks per day.
- Multiple time values can be used.
all_daymeans the Boss can spawn at any time.
spawn_biomes
Purpose:
Restricts which biomes the Boss can spawn in.
How it works:
- A normal biome ID limits spawning to that biome.
- A biome tag starting with
#allows all biomes in that tag.
Notes:
- Use biome IDs for precise control.
- Use biome tags for broader biome groups.
- This can be combined with
spawn_structures.
spawn_structures
Purpose:
Allows Boss spawning when the player is inside specific structures.
How it works:
- Uses structure IDs.
- If the player is inside a matching structure, the Boss can match this rule.
- This is checked together with biome rules as biome-or-structure matching.
Notes:
- This is for structure IDs, not structure tags.
- Useful for dungeon, temple, ruin, stronghold, or custom structure Bosses.
spawn_weight
Purpose:
Controls natural spawn selection weight.
How it works:
- When multiple Bosses are valid, higher weight means higher selection chance.
- It is not a direct percentage.
Notes:
- Use positive values.
- If all valid weights are 0, selection may fall back to random valid Boss selection.
6. Reward Rule Fields
reward_items
Purpose:
List of direct reward entries.
How it works:
- Each entry rolls independently.
- If three entries each have
chance: 0.1, each one has its own 10% chance. - The player can receive multiple entries from the same
reward_itemslist.
Each reward entry can contain:
item_idcountcommandchanceweight
weight is only used when the same reward entry is placed inside reward_pools.entries. It is harmless but unnecessary in direct reward_items.
reward_pools
Purpose:
List of reward pools.
How it works:
- Each pool rolls once using its
chance. - If the pool succeeds, the mod randomly chooses one entry from
entries. - If
rollsis greater than 1, the pool chooses that many entries. - Selection is weighted by each entry's
weight. - Selection is with replacement, so the same entry can be selected more than once when
rollsis greater than 1.
Each reward pool can contain:
chancerollsentries
Each pool entry can contain:
item_idcountcommandchanceweight
Important:
- Pool-level
chancecontrols whether the pool gives anything. - Entry-level
chanceis parsed for compatibility, but pool entries are selected by random weight after the pool succeeds. - If you want separate independent chances, use
reward_items. - If you want "10% chance for one item from this list", use
reward_pools.
item_id
Purpose:
The item given to the player.
Notes:
- Use a valid item ID.
- Can be Minecraft, Cobblemon, or another mod item.
count
Purpose:
The number of items given.
Notes:
- If omitted, it usually acts as 1.
- Count is only used for item rewards.
- Must be greater than 0.
command
Purpose:
Executes a command as a reward.
Notes:
- Useful for giving Pokemon, money, points, titles, permissions, or other server rewards.
- Supports the
{player}placeholder. - Write the command without a leading slash.
chance
Purpose:
Controls probability.
For direct reward_items:
- If
chanceis greater than 0, that custom chance is used. - If
chanceis missing or 0, the reward uses the default drop rate fromboss-reward.toml.
For reward_pools:
- If pool
chanceis greater than 0, that custom chance is used. - If pool
chanceis missing or 0, the pool uses the default drop rate fromboss-reward.toml.
Meaning:
1means 100%.0.5means 50%.0.1means 10%.
rolls
Purpose:
Controls how many entries are selected from a successful reward pool.
Notes:
- If omitted, it defaults to 1.
- Must be greater than 0.
- The same entry can be selected more than once.
weight
Purpose:
Controls selection chance inside a reward pool.
How it works:
- Higher weight means higher chance inside that pool.
- Default weight is 1.
- Weight is not a direct percentage.
Example:
- Entry A weight 1
- Entry B weight 3
- Entry B is three times as likely as Entry A inside that pool.
Reward Examples
Independent rewards:
"reward_rule": {
"reward_items": [
{
"item_id": "cobblemon:poke_ball",
"count": 3,
"chance": 0.1
},
{
"item_id": "cobblemon:great_ball",
"count": 2,
"chance": 0.1
},
{
"item_id": "cobblemon:ultra_ball",
"count": 1,
"chance": 0.1
}
]
}
One reward from a pool:
"reward_rule": {
"reward_pools": [
{
"chance": 0.1,
"rolls": 1,
"entries": [
{
"item_id": "cobblemon:poke_ball",
"count": 3
},
{
"item_id": "cobblemon:great_ball",
"count": 2
},
{
"item_id": "cobblemon:ultra_ball",
"count": 1
}
]
}
]
}
Weighted pool:
"reward_rule": {
"reward_pools": [
{
"chance": 0.25,
"rolls": 1,
"entries": [
{
"item_id": "minecraft:diamond",
"count": 1,
"weight": 1
},
{
"item_id": "minecraft:emerald",
"count": 3,
"weight": 3
},
{
"command": "give {player} minecraft:gold_ingot 8",
"weight": 5
}
]
}
]
}
Direct rewards and pools can be used together:
"reward_rule": {
"reward_items": [
{
"item_id": "minecraft:gold_ingot",
"count": 2,
"chance": 1.0
}
],
"reward_pools": [
{
"chance": 0.1,
"entries": [
{
"item_id": "cobblemon:poke_ball",
"count": 3
},
{
"item_id": "cobblemon:great_ball",
"count": 2
},
{
"item_id": "cobblemon:ultra_ball",
"count": 1
}
]
}
]
}
7. Punish Rule Fields
punish_items
Purpose:
List of punishment entries.
Each punishment entry can contain:
levelevsivscommandchance
level
Purpose:
Reduces Pokemon level after losing.
Notes:
- Level will not be reduced below 1.
- Use carefully because level loss can feel severe.
evs
Purpose:
Reduces effort values.
Available stats:
hpattackdefensespecial_attackspecial_defensespeed
Notes:
- Only fill stats you want to reduce.
- Missing stats are ignored.
ivs
Purpose:
Reduces individual values.
Available stats:
hpattackdefensespecial_attackspecial_defensespeed
Notes:
- IV punishment is very severe.
- Recommended only for high-risk Boss designs.
command
Purpose:
Executes a command as punishment.
Notes:
- Useful for applying effects, taking currency, teleporting, broadcasting, or triggering server systems.
- Supports the
{player}placeholder. - Write the command without a leading slash.
chance
Purpose:
Controls the probability of this punishment.
Important:
- If
chanceis greater than 0, that custom chance is used. - If
chanceis missing or 0, the punishment uses the default penalty chance fromboss-penalty.toml.
8. Random Config Fields
shiny
Purpose:
Controls whether the Boss is shiny.
Notes:
truemakes the Boss shiny.falsemakes it normal.- If omitted, it usually defaults to false.
effort_values
Purpose:
Sets the Boss EV spread.
Available stats:
hpattackdefensespecial_attackspecial_defensespeed
Rules:
- Each stat should be between 0 and 252.
- Total EVs should not exceed 510.
custom_battle_stats
Purpose:
Overrides or limits Boss battle stats.
Available stats:
hpattackdefensespecial_attackspecial_defensespeed
Each stat rule uses:
valuemode
value
Purpose:
The target stat value.
Notes:
- Usually a positive number.
- Useful for raid-style Bosses.
mode
Purpose:
Controls how the stat value is applied.
Available values:
exactminimummaximum
Meanings:
exact: use this value directly.minimum: stat will be at least this value.maximum: stat will be at most this value.
moves
Purpose:
Sets the Boss moves.
Notes:
- Usually use up to 4 moves.
- Move names should match Cobblemon move IDs.
- Invalid move names can cause Boss creation failure.
nature
Purpose:
Sets the Boss nature.
Notes:
- If omitted, the Boss uses a default nature.
- Use Cobblemon nature names.
ability
Purpose:
Sets the Boss ability.
Notes:
- If omitted, default ability behavior is used.
- Invalid ability names can cause Boss creation failure.
form
Purpose:
Sets the Boss form.
Notes:
- Use this for special forms.
- Leave empty if not needed.
- The value should match Cobblemon form or aspect behavior.
held_items
Purpose:
Sets possible held items for the Boss.
Notes:
- Can contain one or more item IDs.
- If multiple items are configured, the Boss may randomly use one.
- Invalid item IDs can cause Boss creation failure.
battle_mode
Purpose:
Sets the Boss battle mode and battle layout.
Available values:
1v1/one_vs_one2v1/two_vs_one3v1/three_vs_one4v1/four_vs_one5v1/five_vs_one6v1/six_vs_one
Important:
battle_mode does not limit actions_per_turn.
Notes:
- This field controls the battle mode and layout.
- Boss action count is controlled separately by
actions_per_turn.
actions_per_turn
Purpose:
Sets how many actions the Boss can take each turn.
Rules:
- Must be at least 1.
- Not limited by
battle_mode.
Notes:
- Higher values make the Boss much harder.
- This is one of the main difficulty controls.
scale
Purpose:
Sets the Boss size.
Position:
Inside random_configs.
How it works:
- If set, the Boss uses this custom size.
- If omitted, the Boss size is calculated automatically from its level.
Rules:
- Must be greater than 0.
- The final value is clamped by the mod's allowed size range.
Notes:
- Use this to create giant Bosses.
- Leave it empty for automatic level-based size.
9. Boss Shield System
Purpose:
The Boss shield system gives a Boss extra protection during battle.
How it works:
- A Boss can start battle with shield layers.
- Certain attacks can consume shield layers.
- Super-effective damaging moves can consume shield layers.
- Special moves can consume configured shield layers.
- While shield still exists, some shield interactions can reduce or block damage.
- When shield reaches 0, the shield breaks.
- After shield breaks, the Boss can enter a weakened state.
- After weakened turns end, shield can recover each turn if recovery is configured.
Important:
The global shield switch in boss-shield.toml must be enabled.
The Boss also needs shield fields inside random_configs.
shield_layers
Purpose:
Sets the Boss initial shield layers.
Position:
Inside random_configs.
How it works:
0means this Boss has no shield.- A value greater than 0 enables shield behavior for this Boss.
- This value is also used as the maximum shield layer count.
Rules:
- Must be 0 or higher.
Notes:
- This is the main field that enables shield for a specific Boss.
- If this value is 0, the other shield fields usually have no effect.
shield_recover_per_turn
Purpose:
Controls how many shield layers the Boss recovers each turn after shield break and weakened state.
Position:
Inside random_configs.
How it works:
0means shield does not recover.- A value greater than 0 allows shield recovery.
- Shield recovery cannot exceed maximum shield layers.
Rules:
- Must be 0 or higher.
Notes:
- Use 0 for one-time shield break behavior.
- Use higher values for raid-style repeated shield breaking.
shield_weaken_turns
Purpose:
Controls how many turns the Boss stays weakened after shield breaks.
Position:
Inside random_configs.
How it works:
- When shield reaches 0, the shield breaks.
- The Boss enters weakened state for this many turns.
- During weakened turns, shield recovery waits.
- After weakened turns end, shield recovery can begin if configured.
Rules:
- Must be 0 or higher.
Notes:
- Use this to create a damage window after shield break.
- Larger values give players more time to attack.
0means no weakened delay.
10. Phase Skill System
phase_skills
Purpose:
Changes Boss moves based on HP percentage.
How it works:
- Each phase has an HP percentage.
- When Boss HP reaches that percentage, the Boss can switch to another moveset.
Notes:
- Useful for multi-phase Boss fights.
- Avoid duplicate HP thresholds.
- Moves should be valid Cobblemon move names.
hp_percent
Purpose:
The HP percentage that triggers the phase.
Rules:
- Usually 1 to 100.
- Lower or equal HP enters that phase.
Notes:
- Higher values trigger earlier.
- Lower values trigger later.
moves
Purpose:
The moves used in this phase.
Notes:
- Usually 1 to 4 moves.
- Use this to make the Boss change strategy during battle.
11. Stat Key Reference
The following stat keys are used in effort_values, evs, ivs, and custom_battle_stats:
hpattackdefensespecial_attackspecial_defensespeed
12. Configuration Files
All configuration files are placed under:
config/cobbleboss/
Unified config files:
level-mapping.jsonpokemon-max-level.jsonboss-spawn.tomlboss-level.tomlboss-reward.tomlboss-penalty.tomlboss-battle-check.tomlboss-capture.tomlboss-immune.tomlboss-music.tomlboss-shield.tomlplayer-level-limit.toml
Important:
Fabric and NeoForge use the same field names and top-level TOML structure.
If an old NeoForge config was generated before this unified version, delete the old config file or manually move values to the top level.
level-mapping.json
Purpose:
Maps player Pokemon level to Boss level.
Notes:
- Used only when custom level mapping is enabled.
- The left side is player level.
- The right side is Boss level.
- If no mapping is found, normal level calculation can be used.
pokemon-max-level.json
Purpose:
Controls Cobblemon's global maximum Pokemon level.
Fields:
configNamemaxPokemonLeveldescription
Notes:
- Default max level is usually 900.
- This affects the global Pokemon level limit used by Cobblemon.
boss-spawn.toml
Purpose:
Controls natural Boss spawning.
Fields:
enableBossSpawncheckIntervalTicksspawnChanceenableSpawnTimeRandomrandomValueMinrandomValueMaxspawnFrequency
Notes:
checkIntervalTicksrange is 100 to 72000.spawnChancerange is 0 to 1.randomValueMinandrandomValueMaxrange is 1 to 10000.spawnFrequencyrange is 0 to 100.
boss-level.toml
Purpose:
Controls Boss level calculation.
Fields:
bossLevelMultiplierminBossLevelmaxBossLevelincludePCPokemonscaleByMaxLevelenableCustomLevelMappingenableLevelRandomrandomMinrandomMax
Notes:
bossLevelMultiplierrange is 1.0 to 10.0.minBossLevelrange is 1 to 100.maxBossLevelrange is 50 to 200.enableCustomLevelMappingcontrols whetherlevel-mapping.jsonis used.
boss-reward.toml
Purpose:
Controls default Boss reward chance.
Fields:
minDropRatemaxDropRatelevelScale
Important:
Direct reward entries and reward pools with chance greater than 0 use their own chance.
Direct reward entries and reward pools without chance, or with chance 0, use the default drop rate from this config.
Notes:
minDropRateandmaxDropRaterange is 0 to 1.levelScalerange is 1 to 1000.
boss-penalty.toml
Purpose:
Controls default punishment chance.
Fields:
enablePenaltyminPenaltyChancemaxPenaltyChancepenaltyLevelScale
Important:
Punish entries with chance greater than 0 use their own chance.
Punish entries without chance, or with chance 0, use the default penalty chance from this config.
Notes:
minPenaltyChanceandmaxPenaltyChancerange is 0 to 1.penaltyLevelScalerange is 1 to 1000.
boss-battle-check.toml
Purpose:
Controls Boss battle restriction checks.
Fields:
enableBattleCheckcancelBattleenablePokemonCheckbannedPokemonListenableItemCheckbannedItemsListenableMoveCheckbannedMovesList
Notes:
enableBattleCheckis the main switch.cancelBattlecontrols whether battle is cancelled when banned content is detected.bannedPokemonListuses Pokemon species IDs.bannedItemsListuses item IDs.bannedMovesListuses move IDs.
boss-capture.toml
Purpose:
Controls whether Boss Pokemon can be captured.
Fields:
preventBossCaptureshowCaptureMessage
Notes:
preventBossCaptureshould usually stay enabled.showCaptureMessagecontrols whether players see a message when capture is blocked.
boss-immune.toml
Purpose:
Controls whether Boss entities are invulnerable in the world.
Fields:
enableBossImmune
Important:
This mainly protects Boss entities outside normal battle damage.
It does not mean the Boss is immune to every move inside battle.
Notes:
- Recommended to keep enabled.
- Helps prevent players from killing Bosses with non-battle methods.
boss-music.toml
Purpose:
Controls Boss battle music.
Fields:
enableBossBattleMusicstopOnBattleEnd
Important:
The music system no longer uses bossBattleMusicSoundId.
When a Boss battle starts, the mod randomly selects a music sound event from:
- The mod's built-in
assets/cobbleboss/sounds.json. - Enabled resource packs that define music in
sounds.json.
Resource packs that are only placed in the resourcepacks folder but not enabled in the client resource pack menu are ignored.
Notes:
- Default built-in sound event is
cobbleboss:boss_battle_theme. - Custom music must be provided by a resource pack.
- The sound file should be OGG format.
- Players need the resource pack enabled to hear resource-pack music.
- Old configs containing
bossBattleMusicSoundIdshould be regenerated or cleaned up.
boss-shield.toml
Purpose:
Controls the global Boss shield system.
Fields:
enableBossShieldsuperEffectiveLayersmoveLayerOverrides
Meaning:
enableBossShield: enables or disables Boss shield behavior.superEffectiveLayers: shield layers consumed by super-effective damaging moves.moveLayerOverrides: special move-to-shield-layer rules.
Notes:
- If
enableBossShieldis false, Boss JSON shield fields will not work. moveLayerOverridesuses move IDs and shield layer values.
player-level-limit.toml
Purpose:
Controls player Pokemon level limit.
Fields:
enableLevelLimitmaxPlayerPokemonLevel
Notes:
enableLevelLimitenables the player Pokemon level cap.maxPlayerPokemonLevelsets the maximum allowed player Pokemon level.
13. Resource Pack Music
Boss battle music can be customized through resource packs.
How it works:
- The mod has built-in music in
assets/cobbleboss/sounds.json. - Enabled resource packs can add more music events.
- When a Boss battle starts, the mod randomly chooses one available music event.
- There is no need to specify one sound ID in config.
Resource pack paths:
pack.mcmeta
assets/cobbleboss/sounds.json
assets/cobbleboss/sounds/music/
Example structure:
my_boss_music_pack.zip
pack.mcmeta
assets/cobbleboss/sounds.json
assets/cobbleboss/sounds/music/boss_1.ogg
assets/cobbleboss/sounds/music/boss_2.ogg
assets/cobbleboss/sounds/music/boss_3.ogg
Example sounds.json:
{
"music.boss_1": {
"category": "music",
"sounds": [
{
"name": "cobbleboss:music/boss_1",
"stream": true
}
]
},
"music.boss_2": {
"category": "music",
"sounds": [
{
"name": "cobbleboss:music/boss_2",
"stream": true
}
]
}
}
Matching files:
assets/cobbleboss/sounds/music/boss_1.ogg
assets/cobbleboss/sounds/music/boss_2.ogg
Sound ID examples:
music.boss_1inassets/cobbleboss/sounds.jsonbecomescobbleboss:music.boss_1.music.boss_2inassets/cobbleboss/sounds.jsonbecomescobbleboss:music.boss_2.
Music detection:
The mod treats a sound event as Boss music if one of these is true:
- The event key starts with
music. - The event key contains
.music. - The event has
"category": "music". - One of its sound file paths is inside a
music/folder.
Notes:
- Use OGG format.
- Use
stream: truefor music. - Players need the resource pack enabled to hear custom music.
- Use original or licensed music only.
- If the resource pack is not enabled, the client will not register its sound events.
14. Fixed Spawn Point Commands
Main command:
/spawnpokemonbossat
Permission:
Requires administrator permission.
Functions:
createaddbossremovebosssetweightremovelistinfotriggersettextcleartextannouncement enableannouncement textannouncement colorannouncement clear
create
Purpose:
Creates a fixed Boss spawn point.
Parameters:
- Spawn point ID
- Dimension
- X coordinate
- Y coordinate
- Z coordinate
- Boss level
- Respawn seconds
- Optional hologram text
Notes:
- Spawn point ID must be unique.
- Respawn time is in seconds.
- Boss level range is 1 to 900.
addboss
Purpose:
Adds a Boss to a fixed spawn point pool.
Parameters:
- Spawn point ID
- Boss unique ID
- Weight
Notes:
- Boss unique ID must exist in loaded Boss data.
- Higher weight means higher chance inside that fixed spawn point.
removeboss
Purpose:
Removes a Boss from a fixed spawn point pool.
setweight
Purpose:
Changes the weight of a Boss in a fixed spawn point pool.
remove
Purpose:
Deletes a fixed spawn point.
Notes:
- Removes spawn point data.
- Removes related hologram display.
- Handles the currently active fixed Boss.
list
Purpose:
Lists all fixed spawn points.
Shows:
- Spawn point ID
- Dimension
- Coordinates
- Boss level
- Respawn time
- Boss pool
- Current active Boss
info
Purpose:
Shows detailed information for one spawn point.
Shows:
- Dimension
- Coordinates
- Boss level
- Respawn time
- Next respawn tick
- Current active Boss
- Hologram text
- Boss pool
- Announcement status
- Announcement text
- Announcement color
trigger
Purpose:
Manually makes a spawn point ready to spawn again.
Notes:
- Useful for testing.
- Does not delete the spawn point.
settext
Purpose:
Sets fixed spawn point hologram text.
Supported placeholders:
{id}{level}{time}{x}{y}{z}{dimension}{boss_count}{boss_pool}{active_boss_id}{active_boss}{active_weight}
Notes:
- Use
|to separate multiple hologram lines. - Hologram placeholders are different from announcement placeholders.
cleartext
Purpose:
Clears custom hologram text and restores default hologram behavior.
announcement enable
Purpose:
Enables or disables fixed spawn point announcement.
How it works:
trueenables announcement.falsedisables announcement.
Notes:
- There is no separate announcement disable command.
- Use
announcement enablewith true or false.
announcement text
Purpose:
Sets custom announcement text.
Supported placeholders:
{boss}{boss_id}{species}{point}{dimension}{x}{y}{z}{position}
announcement color
Purpose:
Sets announcement message color.
Available colors:
blackdark_bluedark_greendark_aquadark_reddark_purplegoldgraydark_graybluegreenaquaredlight_purpleyellowwhite
Notes:
- Default color is
gold. - This changes announcement color, not Boss glow color.
announcement clear
Purpose:
Restores the default announcement text.
Notes:
- Does not remove the spawn point.
- Does not clear hologram text.
- Only resets the fixed spawn announcement template.
Fixed Spawn Boss Pool Weight
Purpose:
Controls selection chance inside one fixed spawn point.
Rules:
- Minimum weight: 1
- Maximum weight: 1000000
Notes:
- This is separate from natural
spawn_rule.spawn_weight. - Higher weight means higher chance inside that fixed spawn point pool.
15. Basic Boss Commands
checkpokemonboss
Purpose:
Checks which Bosses can spawn at the player's current location.
Shows:
- Time until next Boss refresh
- Matching Bosses
- Boss display names
- Spawn weights
Permission:
Usually available to normal players.
spawnpokemonboss
Purpose:
Directly spawns a Boss near the player.
Parameters:
- Boss unique ID
- Optional level
Permission:
Requires administrator permission.
Notes:
- Uses Boss unique ID, not species ID.
- Level range is 1 to 900.
- Useful for testing Boss configuration.
spawnpokemonbossat
Purpose:
Manages fixed Boss spawn points.
Permission:
Requires administrator permission.
16. Beginner Setup Suggestions
For the simplest setup:
- Enable natural Boss spawning.
- Use a reasonable spawn interval.
- Use a low spawn chance at first.
- Enable Boss capture prevention.
- Enable Boss immunity.
- Use level mapping or level multiplier.
- Add rewards with reasonable chance values.
- Add glow to make Bosses easier to find.
- Leave scale empty unless you want giant Bosses.
For stricter Boss servers:
- Enable battle checks.
- Ban specific Pokemon if needed.
- Ban specific items if needed.
- Ban specific moves if needed.
- Increase Boss stats through
custom_battle_stats. - Use
actions_per_turncarefully. - Add shield settings for raid-style fights.
For casual servers:
- Keep punishments low or disabled.
- Use visible Boss glow.
- Use moderate Boss size.
- Give guaranteed small rewards and rare special rewards.
- Use reward pools for "one item from this group" rewards.
- Avoid extremely high
actions_per_turn.
17. Common Problems
Boss does not load
Possible reasons:
- Duplicate
unique_id. - Invalid
species_id. - Invalid move name.
- Invalid ability name.
- Invalid item ID.
- Invalid glow color.
- Invalid scale value.
- Broken JSON format.
- Empty
reward_pools.entries. - Invalid reward pool
rolls. - Invalid reward pool entry
weight.
Boss does not spawn naturally
Possible reasons:
- Natural spawning is disabled.
- Spawn chance is too low.
- Spawn interval has not passed.
- Current biome does not match.
- Current structure does not match.
- Current time does not match.
- Current location type does not match.
spawn_weightis missing or too low.- Boss file is not loaded.
Boss music does not play
Possible reasons:
- Boss music config is disabled.
- The selected sound event is not registered on the client.
- Resource pack is not enabled.
- Sound file path is wrong.
- Sound file is not OGG format.
- Client does not have the resource pack.
- The resource pack was placed in the folder but not moved to the enabled list.
- Music volume is muted.
Important:
The mod randomly chooses from built-in music and enabled resource packs.
It does not use bossBattleMusicSoundId.
Boss shield does not work
Possible reasons:
- Global Boss shield config is disabled.
shield_layersis 0 or missing.- The move used does not consume shield layers.
superEffectiveLayersis set to 0.- The move is not super-effective.
- The move is not listed in
moveLayerOverrides. - Boss was spawned from old or outdated data.
Boss is too small or too large
Possible reasons:
scaleis set too low or too high.- Boss level causes automatic scale calculation.
- Scale is clamped by the mod's allowed range.
Boss does not glow
Possible reasons:
glowis not set.- Glow color is invalid.
- Boss was spawned from old data.
- Another system removed the glow effect.
Announcement color does not change
Possible reasons:
- The color name is invalid.
- The wrong spawn point ID was used.
- Announcement is disabled.
- The message being checked is not the fixed spawn announcement.
Old NeoForge config does not work
Possible reasons:
- The config was generated before unified config fields.
- Old grouped TOML sections are still present.
- Old shield snake_case fields are still present.
- Old
bossBattleMusicSoundIdis still present.
Fix:
- Delete the old config file and let the mod regenerate it.
- Or move the old values to the new top-level fields.
- Remove old music sound ID configuration.
18. Summary
CobbleBoss configuration can be understood like this:
- Use
unique_id,species_id,display_name, andglowto define Boss identity and appearance. - Use
spawn_ruleto define where and when it appears. - Use
reward_ruleandpunish_ruleto define win and loss results. - Use
reward_itemsfor independent reward rolls. - Use
reward_poolsfor "roll once, then choose one reward from this list". - Use
random_configsto define stats, moves, battle mode, action count, shield, phase skills, held items, form, ability, shiny state, and size. - Use config files to control global Boss behavior.
- Use resource packs to add random Boss battle music.
- Use fixed spawn point commands to create controlled Boss spawn locations.
19. Paid Feature: Multiplayer Team Boss Battles
This is an advanced paid feature.
Data pack path:
data/cobbleboss/boss_teams/
A Boss team file defines a group Boss battle.
Fields:
team_idpokemon_unique_idsspawn_structuresdefeat_rewardspunish_rule
team_id
Purpose:
The unique ID of the Boss team.
Notes:
- If no namespace is written,
cobblebossis used. - Commands can use this ID.
pokemon_unique_ids
Purpose:
The Boss Pokemon unique IDs used by this team.
Notes:
- These IDs must match normal Boss JSON
unique_idvalues. - The team system creates Boss Pokemon from existing Boss definitions.
spawn_structures
Purpose:
Controls which structures can trigger this Boss team.
Notes:
- Uses structure IDs.
- When a player is inside a matching structure and sends out a Pokemon, the team battle can be triggered.
- Structure instances are recorded so the same structure is not repeatedly triggered.
defeat_rewards
Purpose:
Rewards after defeating the Boss team.
Fields:
reward_itemsreward_poolsitem_idcountcommandchancerollsweight
How it works:
reward_itemsbehave as independent reward rolls.reward_poolsroll once, then randomly choose entries from the pool.- Team reward pools use the same format as normal Boss reward pools.
Chance note:
If chance is greater than 0, that custom chance is used.
If chance is missing or 0, the default reward chance can be used.
Example:
"defeat_rewards": {
"reward_items": [
{
"item_id": "minecraft:gold_ingot",
"count": 4,
"chance": 1.0
}
],
"reward_pools": [
{
"chance": 0.1,
"rolls": 1,
"entries": [
{
"item_id": "cobblemon:poke_ball",
"count": 3
},
{
"item_id": "cobblemon:great_ball",
"count": 2
},
{
"item_id": "cobblemon:ultra_ball",
"count": 1
}
]
}
]
}
punish_rule
Purpose:
Punishments after losing to the Boss team.
Fields:
punish_itemslevelevsivscommandchance
Chance note:
If chance is greater than 0, that custom chance is used.
If chance is missing or 0, the default penalty chance can be used.
spawnpokemonbossteam
Purpose:
Manually starts a Boss team battle for a player.
Command meaning:
/spawnpokemonbossteam <player> <bossTeamId>
Permission:
Requires administrator permission.
Notes:
bossTeamIdcan be written with or without namespace.- If no namespace is written,
cobblebossis used. - This command is mainly for testing and admin-controlled events.
Multiplayer Team Battle Behavior
How it works:
- The system scans nearby valid players.
- Nearby players must not already be in battle.
- Spectators and removed players are ignored.
- The current team battle system is designed around up to 2 players.
- The current Boss team battle system uses up to 2 Boss Pokemon.
- This creates a 2v2 raid-style battle when enough players and Bosses are available.
- If multiplayer conditions are not met, it can fall back to a single-player team Boss battle.
Notes:
- This feature is best explained after normal Boss configuration.
- It is intended for servers that want raid-style gameplay.
- Boss stats, rewards, shield, and
actions_per_turnshould be balanced carefully for team battles.


