HomeJavaModsCobbleBoss
CobbleBoss
ModsJava

CobbleBoss

by RainApricot · on CurseForge

A mod that allows you to infinitely add and customize your own exclusive Bosses in the Cobblemon world. Free Minecraft Java mod for 1.21.1.

⬇ Download on CurseForge

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:

2. What A Boss JSON Controls

A Boss JSON controls:

3. Recommended Reading Order

For beginners, understand these parts first:

Most important fields:

Recommended fields:

Optional fields:

4. Top-Level Boss Fields

unique_id

Purpose:

The unique internal ID of the Boss.

Recommendation:

Required.

Notes:

display_name

Purpose:

The name shown to players in game.

Recommendation:

Recommended.

Notes:

species_id

Purpose:

Defines which Pokemon species the Boss is.

Recommendation:

Required.

Notes:

glow

Purpose:

Controls the Boss glowing outline color after it spawns.

Position:

Top-level field.

Recommendation:

Optional.

How it works:

Available colors:

Notes:

spawn_rule

Purpose:

Controls natural spawning rules.

Recommendation:

Optional.

Important:

For natural spawning, a Boss usually needs:

Notes:

reward_rule

Purpose:

Controls rewards after players defeat the Boss.

Recommendation:

Optional.

Can contain:

punish_rule

Purpose:

Controls punishments after players lose to the Boss.

Recommendation:

Optional.

Can contain:

random_configs

Purpose:

Defines one or more possible battle configurations for this Boss.

Recommendation:

Required.

How it works:

5. Spawn Rule Fields

spawn_locations

Purpose:

Restricts where the Boss can spawn.

Available values:

Notes:

spawn_times

Purpose:

Restricts the time period when the Boss can spawn.

Available values:

Time mapping:

Notes:

spawn_biomes

Purpose:

Restricts which biomes the Boss can spawn in.

How it works:

Notes:

spawn_structures

Purpose:

Allows Boss spawning when the player is inside specific structures.

How it works:

Notes:

spawn_weight

Purpose:

Controls natural spawn selection weight.

How it works:

Notes:

6. Reward Rule Fields

reward_items

Purpose:

List of direct reward entries.

How it works:

Each reward entry can contain:

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 reward pool can contain:

Each pool entry can contain:

Important:

item_id

Purpose:

The item given to the player.

Notes:

count

Purpose:

The number of items given.

Notes:

command

Purpose:

Executes a command as a reward.

Notes:

chance

Purpose:

Controls probability.

For direct reward_items:

For reward_pools:

Meaning:

rolls

Purpose:

Controls how many entries are selected from a successful reward pool.

Notes:

weight

Purpose:

Controls selection chance inside a reward pool.

How it works:

Example:

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:

level

Purpose:

Reduces Pokemon level after losing.

Notes:

evs

Purpose:

Reduces effort values.

Available stats:

Notes:

ivs

Purpose:

Reduces individual values.

Available stats:

Notes:

command

Purpose:

Executes a command as punishment.

Notes:

chance

Purpose:

Controls the probability of this punishment.

Important:

8. Random Config Fields

shiny

Purpose:

Controls whether the Boss is shiny.

Notes:

effort_values

Purpose:

Sets the Boss EV spread.

Available stats:

Rules:

custom_battle_stats

Purpose:

Overrides or limits Boss battle stats.

Available stats:

Each stat rule uses:

value

Purpose:

The target stat value.

Notes:

mode

Purpose:

Controls how the stat value is applied.

Available values:

Meanings:

moves

Purpose:

Sets the Boss moves.

Notes:

nature

Purpose:

Sets the Boss nature.

Notes:

ability

Purpose:

Sets the Boss ability.

Notes:

form

Purpose:

Sets the Boss form.

Notes:

held_items

Purpose:

Sets possible held items for the Boss.

Notes:

battle_mode

Purpose:

Sets the Boss battle mode and battle layout.

Available values:

Important:

battle_mode does not limit actions_per_turn.

Notes:

actions_per_turn

Purpose:

Sets how many actions the Boss can take each turn.

Rules:

Notes:

scale

Purpose:

Sets the Boss size.

Position:

Inside random_configs.

How it works:

Rules:

Notes:

9. Boss Shield System

Purpose:

The Boss shield system gives a Boss extra protection during battle.

How it works:

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:

Rules:

Notes:

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:

Rules:

Notes:

shield_weaken_turns

Purpose:

Controls how many turns the Boss stays weakened after shield breaks.

Position:

Inside random_configs.

How it works:

Rules:

Notes:

10. Phase Skill System

phase_skills

Purpose:

Changes Boss moves based on HP percentage.

How it works:

Notes:

hp_percent

Purpose:

The HP percentage that triggers the phase.

Rules:

Notes:

moves

Purpose:

The moves used in this phase.

Notes:

11. Stat Key Reference

The following stat keys are used in effort_values, evs, ivs, and custom_battle_stats:

12. Configuration Files

All configuration files are placed under:

config/cobbleboss/

Unified config files:

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:

pokemon-max-level.json

Purpose:

Controls Cobblemon's global maximum Pokemon level.

Fields:

Notes:

boss-spawn.toml

Purpose:

Controls natural Boss spawning.

Fields:

Notes:

boss-level.toml

Purpose:

Controls Boss level calculation.

Fields:

Notes:

boss-reward.toml

Purpose:

Controls default Boss reward chance.

Fields:

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:

boss-penalty.toml

Purpose:

Controls default punishment chance.

Fields:

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:

boss-battle-check.toml

Purpose:

Controls Boss battle restriction checks.

Fields:

Notes:

boss-capture.toml

Purpose:

Controls whether Boss Pokemon can be captured.

Fields:

Notes:

boss-immune.toml

Purpose:

Controls whether Boss entities are invulnerable in the world.

Fields:

Important:

This mainly protects Boss entities outside normal battle damage.

It does not mean the Boss is immune to every move inside battle.

Notes:

boss-music.toml

Purpose:

Controls Boss battle music.

Fields:

Important:

The music system no longer uses bossBattleMusicSoundId.

When a Boss battle starts, the mod randomly selects a music sound event from:

  1. The mod's built-in assets/cobbleboss/sounds.json.
  2. 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:

boss-shield.toml

Purpose:

Controls the global Boss shield system.

Fields:

Meaning:

Notes:

player-level-limit.toml

Purpose:

Controls player Pokemon level limit.

Fields:

Notes:

13. Resource Pack Music

Boss battle music can be customized through resource packs.

How it works:

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 detection:

The mod treats a sound event as Boss music if one of these is true:

Notes:

14. Fixed Spawn Point Commands

Main command:

/spawnpokemonbossat

Permission:

Requires administrator permission.

Functions:

create

Purpose:

Creates a fixed Boss spawn point.

Parameters:

Notes:

addboss

Purpose:

Adds a Boss to a fixed spawn point pool.

Parameters:

Notes:

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:

list

Purpose:

Lists all fixed spawn points.

Shows:

info

Purpose:

Shows detailed information for one spawn point.

Shows:

trigger

Purpose:

Manually makes a spawn point ready to spawn again.

Notes:

settext

Purpose:

Sets fixed spawn point hologram text.

Supported placeholders:

Notes:

cleartext

Purpose:

Clears custom hologram text and restores default hologram behavior.

announcement enable

Purpose:

Enables or disables fixed spawn point announcement.

How it works:

Notes:

announcement text

Purpose:

Sets custom announcement text.

Supported placeholders:

announcement color

Purpose:

Sets announcement message color.

Available colors:

Notes:

announcement clear

Purpose:

Restores the default announcement text.

Notes:

Fixed Spawn Boss Pool Weight

Purpose:

Controls selection chance inside one fixed spawn point.

Rules:

Notes:

15. Basic Boss Commands

checkpokemonboss

Purpose:

Checks which Bosses can spawn at the player's current location.

Shows:

Permission:

Usually available to normal players.

spawnpokemonboss

Purpose:

Directly spawns a Boss near the player.

Parameters:

Permission:

Requires administrator permission.

Notes:

spawnpokemonbossat

Purpose:

Manages fixed Boss spawn points.

Permission:

Requires administrator permission.

16. Beginner Setup Suggestions

For the simplest setup:

For stricter Boss servers:

For casual servers:

17. Common Problems

Boss does not load

Possible reasons:

Boss does not spawn naturally

Possible reasons:

Boss music does not play

Possible reasons:

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:

Boss is too small or too large

Possible reasons:

Boss does not glow

Possible reasons:

Announcement color does not change

Possible reasons:

Old NeoForge config does not work

Possible reasons:

Fix:

18. Summary

CobbleBoss configuration can be understood like this:

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_id

Purpose:

The unique ID of the Boss team.

Notes:

pokemon_unique_ids

Purpose:

The Boss Pokemon unique IDs used by this team.

Notes:

spawn_structures

Purpose:

Controls which structures can trigger this Boss team.

Notes:

defeat_rewards

Purpose:

Rewards after defeating the Boss team.

Fields:

How it works:

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:

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:

Multiplayer Team Battle Behavior

How it works:

Notes:

CobbleBoss is a free Minecraft Java mod. Compatible with Minecraft 1.21.1. Downloaded 879,852 times (via CurseForge). Download it and open it directly in the game.

Explore more