CobbleBattleRewards
CobbleBattleRewards is a configurable Fabric mod for rewarding players during Cobblemon battles and captures. Rewards can be edited in-game with a GUI reward editor or configured manually through the config file.
Create rewards for battle wins, losses, forfeits, captures, out-of-battle catches, and wild Pokémon kills. Rewards can give items, run commands, use economy plugins, target specific Pokémon, and apply filters for species, forms, aspects, types, labels, levels, dimensions, and more.
Dependencies
Features
- In-Game Reward Editor: Create, edit, move, and delete rewards through
/cbr gui. - Multiple Reward Triggers: Reward battle wins, losses, forfeits, captures, out-of-battle captures, and wild Pokémon kills.
- Item and Command Rewards: Give item stacks or run server commands, including economy commands.
- Pokemon Targeting: Select Pokémon, forms, aspects, shiny variants, labels, and scanned conditions through the GUI.
- Allow/Block Filter Modes: Use filters as requirements or exclusions for Pokémon, labels, and scanned conditions.
- Battle Type Support: Configure rewards for wild, NPC, and PvP battles.
- Priority System: Higher priority rewards run first, and rewards can block lower-priority rewards with
excludedRewards. - Cooldowns and Chance: Add per-reward cooldowns and chance rolls.
- Dimension and Level Filters: Limit rewards to specific dimensions or Pokémon level ranges.
- Safe Config Migration: Older configs are migrated forward automatically.
Commands
| Command | Permission | Description |
|---|---|---|
/cbr gui |
cobblebattlerewards.gui |
Opens the in-game reward editor GUI. |
/cbr editgui |
cobblebattlerewards.gui |
Also opens the reward editor GUI. |
/cbr reload |
cobblebattlerewards.reload |
Reloads the config from disk without a server restart. |
/cbr listrewards |
cobblebattlerewards.list |
Lists configured rewards in chat. |
/cbr listconditions |
cobblebattlerewards.list_conditions |
Lists available Pokémon condition data for advanced filtering. |
GUI Reward Editor
The GUI editor is the recommended way to manage rewards.
With /cbr gui, you can:
- Add command rewards.
- Add item rewards by placing an item into the GUI.
- Change reward category.
- Edit reward chance, priority, message, command, and item payload.
- Select Pokémon, forms, aspects, and shiny variants.
- Select Cobblemon form labels.
- Scan Pokémon data for advanced condition filters.
- Toggle allow/block modes for each filter group.
- Enable out-of-battle capture or wild kill rewards.
- Delete rewards safely from the GUI.
Configuration
CobbleBattleRewards stores its config at:
config/cobblebattlerewards/config.jsonc
Most users should use the GUI editor, but manual config editing is still supported.
The config has four main reward categories:
battleWonRewardsbattleLostRewardsbattleForfeitRewardscaptureRewards
Common reward settings:
| Setting | Description |
|---|---|
type |
"item" gives an item. "command" runs a server command. |
chance |
Percentage chance from 0.0 to 100.0. |
message |
Message sent to the player when the reward is given. |
command |
Command to run for command rewards. Do not include /. |
itemStack |
JSON item stack data for item rewards. |
battleTypes |
Supported battle types: "wild", "npc", "pvp". |
conditions |
Pokémon/species/form/aspect filters, usually managed by the GUI. |
disallowedLabels |
Label filters selected through the GUI. |
exclusionConditions |
Advanced scanned condition filters selected through the GUI. |
pokemonConditionsBlacklist |
Makes Pokémon filters act as block filters. |
labelConditionsBlacklist |
Makes label filters act as block filters. |
scannedConditionsBlacklist |
Makes scanned condition filters act as block filters. |
rewardOutOfBattleCapture |
Allows capture rewards from normal out-of-battle catches. |
rewardOutOfBattleKill |
Allows battle-won rewards from wild Pokémon kills outside battle. |
minLevel / maxLevel |
Level range required for the reward. |
order |
Reward priority. Higher numbers run first. |
excludedRewards |
Reward IDs blocked if this reward is given. |
cooldown |
Seconds before the player can receive this reward again. |
allowedDimensions |
Dimension IDs where the reward can trigger. Empty means all dimensions. |
Placeholders
Messages and commands support:
%player%%pokemon%%level%%battleType%%chance%%coords%%trigger%%time%
How to Install CobbleBattleRewards (Mod)
CobbleBattleRewards by Hysocs is verified for Fabric across Minecraft versions 1.21.1 (latest release: 2.0.7.1, file size: 241 KB). Follow the steps below to install it safely from ModCraft.tv:
- Click the Download button above and select your Minecraft version (1.21.1) and platform (Fabric).
- Make sure you have the compatible loader or environment installed for Fabric.
- Move the downloaded CobbleBattleRewards file into your Minecraft
.minecraft/modsfolder and launch the game.
All Versions
+ Add Version- Improved reward check performance
- Reduced unnecessary condition scanning
- Optimized Pokemon, type, form, label, and conditions.
Previous Update logs
> - Added an in-game reward editor GUI with /cobblebattlerewards gui.
> - Added Pokemon, form, aspect, shiny, label, and condition selectors.
> - Added allow/block filter modes for Pokemon, labels, and scanned conditions.
> - Added optional rewards for normal captures outside battle.
> - Added optional rewards for defeating wild Pokemon outside battle.
> - Reworked reward priority so higher priority rewards run first.
> - Improved reward filtering for Pokemon species, forms, aspects, types, labels, and scanned conditions.
> - Added safe config migration for older configs.
> - Simplified the config file comments now that most editing can be done in-game.
> - Improved debug logging for testing reward eligibility and setup issues.
- Added an in-game reward editor GUI with
/cobblebattlerewards gui. - Added Pokemon, form, aspect, shiny, label, and condition selectors.
- Added allow/block filter modes for Pokemon, labels, and scanned conditions.
- Added optional rewards for normal captures outside battle.
- Added optional rewards for defeating wild Pokemon outside battle.
- Reworked reward priority so higher priority rewards run first.
- Improved reward filtering for Pokemon species, forms, aspects, types, labels, and scanned conditions.
- Config migration so old configs update safely.
- Simplified the config file comments now that most editing can be done in-game.
- Improved debug logging for testing reward eligibility and setup issues.
- Requires 1.1.1+ of e-utils
- Updated to use e-utils 1.1.1
- cobblebattlerewards-2.0.5**
- Fixed issue where order wasnt working properly, not allowing you to do multi layered rewards
- updated for cobblemon 1.7
- CobbleBattleRewards 2.0.3 Update:**
- Fixed a issue where multiple conditions counldnt be set at the same time you can now use:
"conditions": [
["aspects=[male, spring]", "cobblemon:lumineon"],
["aspects=[female, spring]", "cobblemon:lumineon"]
],
``To set for multiple conditions to be met at the same time
- CobbleBattleRewards 2.0.2 Update:**
- Fixed a issue where conditions for aspects wouldnt trigger
- CobbleBattleRewards 2.0.1 Update:**
- Corrected condition issue, renamed
SpeciestoCobblemon. so species conditions now need to be set likecobblemon:pikachu - Fixed an issue where some rewards could trigger unexpectedly
- CobbleBattleRewards Update: 2.0.0**
- Core Recode & Advanced Reward Features*
### *A config reset is required as the structure of the mod has changed*
## CobbleBattleRewards Fixes
- Rewritten Core Engine:** Unified battle and reward processing into a single
BattleStatestructure for cleaner, more maintainable event handling. - Condition-Based Rewards:** Added
conditionsfiltering to trigger rewards based on any Pokémon property (species, type, form, etc.) for highly customizable loot tables. - ExcludedRewards Support:** Introduced
excludedRewardsto prevent unwanted reward stacking and enforce priority rules. - Enhanced Placeholder System:** Expanded placeholder set with
%trigger%, improved interpolation for%coords%,%chance%, and dynamic battle-type tagging. - Cooldown Messaging:** Fixed time‐remaining calculation and messaging template fallbacks to ensure accurate feedback on reward cooldowns.
- Optimized Cleanup Scheduler:** Upgraded battle cleanup logic to reliably purge inactive or resolved battles after 30 minutes using a dedicated scheduled executor.
- Dynamic Property Extraction:** Refactored
createDynamicPropertieswith reflection fallback and extractor functions to handle new Pokémon aspects and preserve full property snapshots. - Expanded Event Coverage:** Subscribed to
POKEMON_SENT_POSTandBATTLE_FAINTEDfor immediate state updates and detailed faint‐event logging. - Performance Improvements:** Migrated state and cooldown maps to
ConcurrentHashMapand offloaded cleanup tasks to avoid main-thread blocking. - Logging & Debugging:** Augmented per-step debug logs (when
debugEnabled) to trace reward determination, property mapping, and decision branches. - Robust ItemStack Parsing:** Switched to CODEC-based deserialization via GSON to support complex JSON item definitions without errors.
- Streamlined Messaging:** Centralized MiniMessage formatting through
sendMinimessage()for consistent in-game output across all reward types. - Refined Victory Logic:** Enhanced
finalizeBattleVictoryto accurately process PVP, wild, NPC, win, loss, and forfeit scenarios without misclassification. - Config Migration Required:** Major overhaul of reward filtering features means you’ll need to redo your config to take full advantage of conditions and exclusion settings.
- Release