A Pokémon mod for Fabric and NeoForge
Cobblemon is an open-source Pokémon mod for Fabric and NeoForge.
The goal of Cobblemon is to be the Pokémon mod for everyone, and to integrate much better into modpacks and Minecraft itself than other Pokémon mods. Our source code is open to encourage not only community contributions, but also forking.
![]()
![]()
Features (so far!):
![]()
Installation
Fabric:
NeoForge:
That's it, you're ready to go! If you have trouble installing, get help in our Discord at the link below.
Alternatively, you can download the official Cobblemon modpack on Modrinth or CurseForge! We recommend downloading the modpack with the Modrinth App, but Prism Launcher is also a good alternative launcher that can download modpacks from any of these sites.
Notice: Cobblemon does NOT have an official server. You can find a list of public servers on our website, or in the #server-listings channel in our Discord, and add them to the multiplayer menu. Alternatively, you can buy your own server from hosts such as BisectHosting.

![]()
Note: The Cobblemon mod is still in development and is being actively updated. There are many features that are work-in-progress or placeholders until things are finished. There are also some existing features that will be getting more polish as we keep moving. Many more features are planned, including but not limited to things like NPCs, riding Pokémon, breeding, and structures.
Join our Discord to follow development progress, chat with the team, ask questions, and get sneak peeks into upcoming features!
![]()
Capture Pokémon to fill out your Pokédex!

![]()
Use the Pokédex's scanning feature to analyze Pokémon!

![]()
Fight in Pokémon battles powered by Pokémon Showdown!

![]()
Let your Pokémon roam your world by putting them in pastures!

![]()
Find berries, grow a berry farm, and cross-breed berries!

![]()
Dig up fossils and revive them into ancient Pokémon!

![]()
Explore new structures and brave secret trials to find treasure!

![]()
License: The mod's binaries and its source code are licensed under the Mozilla Public License 2.0, allowing public modifications and forks provided that they are also licensed under MPL2.0.
Cobblemon is not affiliated with Pokémon nor Minecraft.
Minecraft is a trademark of Mojang Synergies AB | Pokémon is a trademark of Nintendo, Creatures Inc. and GAME FREAK inc.
Required
Required
Terms for using, modifying and redistributing this product.
31.01.2026 · Modrinth
/pctake not respecting the actual size of the PC.chance requirement type for Pokémon interactions.Screenshots and images from the original Modrinth page.









































































Published versions and original Modrinth files.
31.01.2026 · 8 137 182 downloads
/pctake not respecting the actual size of the PC.chance requirement type for Pokémon interactions.31.01.2026 · 735 406 downloads
/pctake not respecting the actual size of the PC.chance requirement type for Pokémon interactions.25.01.2026 · 48 056 downloads
Distance by Pokémon on Land, Distance by Pokémon in Air and Distance by Pokémon in Liquid.Enable In-Flight Dismounting (default: off), which lets you dismount while riding a Pokémon in the air. This is the textbook definition of caveat emptor.label as an alternate key to the tag property.silent flag on spawn.WinInstruction.biomeCondition crashing the game when used to define Pokémon interactions./calculateseatpositions expecting a locator format that even we don't use. It needs an underscore after "seat".run_script Molang function to not fail if the environment's context is null.date_local_time, date_of, date_is_after to use the correct date format.owner parameter in the OwnerQueryRequirement interface from ServerPlayer to Player. This method is now also called on the client to verify whether a Pokémon interaction succeeded, so make sure to update your implementations to handle both server and client contexts.pnx to the BattleFaintedEvent and FormeChangeEvent.ShowdownInterpreter.BattlePokemon to allow multiple callbacks and be mutable.display_name, description, and max_pp functions to the MoveTemplate struct.AIBattleActor to be open classes to allow extension.run_molang, resolving some crashes caused by malformed MoLang expressions.create_itemstack, has_inventory_space, set_inventory_slot, and give_item MoLang functions for item and inventory utility.get_move_from_id MoLang function for general move info queries without requiring a Moveset object to access.this.add('-activate', pokemon, 'ability: example', '[msg]message1'); will parse to lang key cobblemon.battle.activate.example.message1.25.01.2026 · 299 020 downloads
Distance by Pokémon on Land, Distance by Pokémon in Air and Distance by Pokémon in Liquid.Enable In-Flight Dismounting (default: off), which lets you dismount while riding a Pokémon in the air. This is the textbook definition of caveat emptor.label as an alternate key to the tag property.silent flag on spawn.WinInstruction.biomeCondition crashing the game when used to define Pokémon interactions./calculateseatpositions expecting a locator format that even we don't use. It needs an underscore after "seat".run_script Molang function to not fail if the environment's context is null.date_local_time, date_of, date_is_after to use the correct date format.owner parameter in the OwnerQueryRequirement interface from ServerPlayer to Player. This method is now also called on the client to verify whether a Pokémon interaction succeeded, so make sure to update your implementations to handle both server and client contexts.pnx to the BattleFaintedEvent and FormeChangeEvent.ShowdownInterpreter.BattlePokemon to allow multiple callbacks and be mutable.display_name, description, and max_pp functions to the MoveTemplate struct.AIBattleActor to be open classes to allow extension.run_molang, resolving some crashes caused by malformed MoLang expressions.create_itemstack, has_inventory_space, set_inventory_slot, and give_item MoLang functions for item and inventory utility.get_move_from_id MoLang function for general move info queries without requiring a Moveset object to access.this.add('-activate', pokemon, 'ability: example', '[msg]message1'); will parse to lang key cobblemon.battle.activate.example.message1.29.11.2025 · 5 570 779 downloads
29.11.2025 · 361 335 downloads
21.11.2025 · 590 175 downloads
/behaviouredit for opening the Behaviour Editor on Pokémon and NPCs.PokemonProperties (e.g. shiny=yes shows all shiny Pokémon)./changewallpaper <player> <boxNumber> <wallpaper> command to change a box wallpaper through commands./renamebox <player> <boxNumber> <name> command to rename a PC box through commands./pcsearch <player> <pokemonProperties> command that searches for a specific Pokémon within a player's PC./pctake <player> <box> <slot> command that takes a specific Pokémon from a player's PC. The Pokémon is deleted if the target is self or is run from the server./givemark <player> <slot> <mark> command to give a mark to a party Pokémon./takemark <player> <slot> <mark> command to remove a mark from a party Pokémon./giveallmarks <player> <slot> command to give all available marks to a Pokémon.main.json to be edited directly in-game.poké when input contains poke. It's a small change, but man.healerHealsPC. When set to true, a successful use of a healer will also heal all the Pokémon in that player's PC.min_perfect_ivs property to PokemonProperties to specify the minimum number of perfect IVs of the Pokémon.scale_modifier property to PokemonProperties to modify the scale of the Pokémon.defaultKeyItems config option to specify which key items players always have.blacklisted_items_to_hold and whitelisted_items_to_hold tags to allow for controlling which items players can give to their Pokémon. If the whitelist is empty, it will consider all item as allowed (unless they are in the blacklist)./transformmodelpart (position|rotation|scale) <modelPart> <transform: x y z> that can add transformations to a Pokémon's model part which can be used for good or for comedy./runmolang <molang> [<npc>|<player>|<pokemon>] that executes a Molang expression with the provided options as environment variables, as well as the entity (as q.entity) that executed the command./changejointscale to change the scale of a joint in a model. Unbelievably funny to play around with but exists for testing purposes./calculateseatpositions command for approximating hitbox locations for riding configurations. Good for when you're adding riding to your custom Pokémon!/npcdelete UUID parameter support and made it usable from console./spectatebattle <player> to spectate battles without having to manually walk up to the target./cobblemonconfig reload to reload the main.json configuration. Note: Some settings require a server restart to take effect; use this command cautiously./boxcount to change the number of PC boxes a player has.doPokemonSpawning gamerule to support per-dimension configurations.c namespace tags and the latter have better integrated use of tags within their recipes which removes need for custom tags.#c:seeds, which is now made use of for the Miracle Seed recipe.#cobblemon:berries tag to use subtags located in data/cobblemon/tags/item/berries, such as #cobblemon:berries/hp_recovery, for sorting purposes.#cobblemon:mutated_berries to #cobblemon:berries/mutation_resultgeneric.scale.pokemonId and type to species, and evolved to has_evolved, in relevant Advancement triggers.species argument to the pick_starter, pasture_use and resurrect_pokemon Advancement triggers.#minecraft:flower_pots block tag./pokedex printcalculations {player} {dex} will now print the National Pokédex statistics instead of showing all Pokédex. /pokedex printcalculations {player} all is how to view all dex statistics in one command.hiddenability in pokegive and other spawn commands resulting in a forced hidden ability.LevelUpCriterion logic to correctly check that the Pokémon is a pre-evolution.hide_additional_tooltip vanilla flag not properly hiding tooltips on Poké Rod and bait itemsdimensions spawning condition using the incorrect ResourceLocation, causing it not to function properly./spawnallpokemon command potentially received a raft.ConcurrentModificationException that could occur during world generation./pokedex printcalculations to now show the correct percentage completed of the Pokédex.Raised mod.PokemonBattle instead of them always being empty.EVs#add(Stat, Int) in favour of EVs#add(Stat, Int, EvSource). You most likely want to use SidemodEvSource but please check other implementations or make your own.NbtItemPredicate class, all the mod usages now use the vanilla item predicate solution. This causes breaking changes on Fossil, HeldItemRequirement and ItemInteractionEvolution..Pre and .Post for consistency:PokemonSentEventExperienceGainedEventBattleStartedEventPokemonSentEvent parameters to include the position and world of the Pokémon being sent out.EvolutionCompleteEvent parameters to include the source Pokémon that evolved.HatchEggEvent.Post to include the Pokémon that hatched.Pokemon.kt to cut down on RAM usage and clarify the file.MoveSet, IVs, EVs, or BenchedMoves.Pokemon#onChange() is now the way to mark a Pokémon as needing a save.NPCEntity beam positioning to properly account for the baseScale property.NPCEntity pokeball throw positioning to properly account for the baseScale property.[Pokemon].copyFrom error causing forms, IVs, and EVs to not be applied properly when using [Pokemon].loadFromJSON or [Pokemon].loadFromNBT.WearableItem. Instances of this class should have a corresponding 3D model. These models render when the items display context is HEAD.LearnsetQuery types:LEGAL for moves that are innately compatible and learnable by the Pokémon.LEGACY for moves that were once officially learnable by the Pokémon but aren't due to GameFreak's re-balancing.SPECIAL for moves that are not learnable by the Pokémon but may have appeared in a special event or distribution.Pokemon#hyperTrainIV() and IVs#setHyperTrainedIV(Stat, Int).HyperTrainedIvEvent.Pre and HyperTrainedIvEvent.Post.Pokemon#validateMoveSet() to validate an existing Pokémon's moveset, clearing illegal moves.hoverText option to PartySelectCallback, to display a tooltip on hovering over a Pokémon in the selection screen.PokemonEntity instances spawned into the world now appropriately finalize the spawn for mod compatibility.PokedexManager.obtain as a replacement for .catch which is not a friendly function name in Java.Pokemon#hyperTrainIV() and IVs#setHyperTrainedIV(Stat, Int).ElementalType now implements ShowdownIdentifiable to ensure the communcation with showdown stays consistent (also in regards to TeraTypes).JSON
{
"behaviour": {
"lightningHit": {
"rotateFeatures": [
{
"key": "mooshtank",
"chain": ["red", "brown"]
}
]
}
}
}NPCEntity. The interface is unused and in vanilla is only implemented by VillagerEntity as a means to disable villagers with the spawn-npcs server property.Observable#subscribe methods that take Java Consumers to make usage in Java a little cleaner.Species#create using the species name instead of identifier, which had led to certain mismatches generating random pokémon.EntityCallbacks to NPCEntity and PokemonEntity. You can trigger custom callback types by using [Entity].callbacks.process(...)RenamePCBoxEvent.Pre and RenamePCBoxEvent.Post events to prevent players from renaming a box or changing their input.ChangePCBoxWallpaperEvent.Pre and ChangePCBoxWallpaperEvent.Post to prevent players from changing wallpapers or changing their selection.WallpaperCollectionEvent which gets called when clients connect to a server, allowing the server to handle which of the client-found wallpapers it's allowed to move (collected wallpapers can be removed for example to make it "vanish" client-side).WallpaperUnlockedEvent.SetPCBoxPokemonPacket and the respective handler to SetPCBoxPacket.SpawningContext is now SpawnablePositionWorldSlice is SpawningZoneSpawningProspector is now SpawningZoneGeneratorSpawnerTickingSpawner is removed in favour of outside code handling ticking logic.AreaSpawner is removed.BasicSpawner is the first implementation of Spawner which can be used for any purpose.PlayerSpawners are now mixin'd into ServerPlayer and ticked from ServerPlayer#tick../docs/spawner-hierarchy.png in the mod repository.SpawnerManager class has been removed as its functionality is all now handled elsewhere.contextSelector is now spawnablePositionSelectorcontext is now spawnable_position.Pre and .Post to the following events:PokemonRecallEventTradeEventEvGainedEventvisibility/hidden, visibility/hat and visibility/face tags to control where and how certain items are held on a Pokémon.requiredContext for an item interaction evolutionitemCondition for a held item evolution requirementfossils for a fossil entryinterpolate boolean property to animated textures to allow gradual colour changes between frames.|-activate| Showdown instructions. activate_{effect_id} is the syntax.transformedParts to the root of poser JSONs so it now exists in both poses and the model overall.heldItem property inside spawn files not working and causing crashes.spawn_bedrock_particles Molang function causing crashes when used in a server environment.translucent_cull boolean option into resolver's layer to allow for translucent textures with culling.moves array in species data:legacy:{move}special:{move}cobblemon.ui.pokedex.info.form.{species}-{formname} instead of cobblemon.ui.pokedex.info.form.{formname}.run_molang to schedule the function.data/<namespace>/starters/*.json, with built-in fallback and useConfigStarters merge option.remedies.json file has changed to allow for individual friendshipDrop amounts per remedy.prepare_{effect} and damage_{effect} action effect hooks in battles for more battle particle effects.q.entity.find_nearby_block causing crashes when attempting to use a block tag.v.spawn.class to get the identifier of an NPC class for when trying to influence NPC spawns.q. for any context properties in addition to the c. properties, making it a bit more convenient when calling other scripts from Callbacks.q.entity) that executed the command to the /executemolangscript command.clientActions inside Dialogue pages being executed twice.background field and added textColor field for dialogues./reload:cobblemon:reel_in_pokemon criteria not working when used together with a baitId.cobblemon:empty_bait to any.baitId.{move_id}_{species}.json.look_at_entity_types variable for look_at_entities to specify what entity type or entity tag to look at.q.file for JSON file handling in Molang, strictly for ./config and ./data folders that have /molang/ in the path:q.file.save(<path>, <struct>) Saves to the given file path with the given variable struct.q.file.load(<path>) Loads a variable struct from the given path, or gets it from the cache if it's already been loaded.q.file.exists(<path>) Returns 1 if the given file path exists.q.file.clear(<path>) Clears the given file from the cache.q.run_script will now allow additional arguments which will be put into c.arg_1, c.arg_2, etc.behaviours datapack folder which motivates the Behaviour Editor screen on NPCs and Pokémon."behaviours" all the equivalent behaviours.PokemonEntity and NPCEntity that allows Molang scripts to be executed in response to certain scenarios.seasonings datapack folder for controlling usable items in the campfire pot and what colour and flavour they apply.marks datapack folder.unlockable_pc_box_wallpapers datapack folder for wallpapers that need to be unlocked before they're usable.assets/<namespace>/textures/gui/pc/wallpaper/ and all wallpapers in this folder are available to the client to choose by default.filePath parameter to data and save_data Molang functions to allow for global stores (ex. ../global/). Path must end in a forward slash.pokemon, entity, and player structs.q.delete_variable(<struct>, <variable_name>) to delete a value from a variable structure in Molang data.q.delete_variables(<struct>) to delete all values from a variable structure in Molang data.poke_ball_capture_calculatedevolution_testedevolution_acceptedevolution_completedpokemon_healedpokemon_scannedberry_harvestloot_droppedpokemon_seencollect_egghatch_eggexperience_gained_preexperience_gained_postpokemon_catch_ratebait_setbait_set_prebait_consumedpokerod_cast_prepokerod_cast_postpokerod_reelbobber_spawn_pokemon_prepokemon_aspects_changedfriendship_updatedchange_pc_box_wallpaper_event_prechange_pc_box_wallpaper_event_postfullness_updatedserver_stoppingstarter_chosenev_gainedpokemon_releasedpokemon_nicknamedheld_item_preheld_item_postshoulder_mountedtrade_completedbobber_spawn_pokemon_postpokemon_entity_spawnfossil_revivedplayer_tick_preplayer_tick_postadvancement_earnedright_clicked_entityright_clicked_blockplayer_diedwallpaper_unlockedq.has_argument(<argument_name>, [argument_value]) Molang function to several battle-related action effect contexts.q.has_argument_at(<index>, [argument_value]) Molang function to several battle-related action effect contexts.q.hit_count Molang function to move action effect contexts.is_included, to_lower, to_upper, and string_length as available Molang functions.q.split_string(<text>, <delimiter/comma>) Outputs an array with the divided text.Added new/updated particles for the following moves:
- Absorb
- Acid
- Acid Spray
- Aerial Ace
- Amnesia
- Aurora Beam
- Bite
- Body Slam
- Bubble
- Bubble Beam
- Bulldoze
- Bullet Punch
- Close Combat
- Confusion
- Crunch
- Cotton Guard
- Double Team
- Dragon Claw
- Egg Bomb
- Ember
- Eruption
- Explosion
- Fire Blast
- Fire Punch
- Fire Spin
- Flame Burst
- Flame Charge
- Flamethrower
- Flame Wheel
- Frost Breath
- Frustration
- Giga Drain
- Growl
- Haze
- Hidden Power
- Horn Attack
- Hyper Fang
- Hypnosis
- Ice Beam
- Ice Punch
- Ice Shard
- Icy Wind
- Infestation
- Kinesis
- Lava Plume
- Leech Life
- Leech Seed
- Leer
- Lick
- Magical Leaf
- Mega Drain
- Minimize
- Mist
- Mud Bomb
- MudSport
- Mystical Fire
- Nasty Plot
- Poison Fang
- Poison Gas
- Poison Powder
- Population Bomb
- Pound
- Powder
- Powder Snow
- Present
- Protect
- Psybeam
- Psychic
- Pursuit
- Quick Attack
- Rage Powder
- Razor Leaf
- Return
- Rock Throw
- Sand Attack
- Scary Face
- Scratch
- Seed Bomb
- Seismic Toss
- Self Destruct
- Shadow Ball
- Shadow Claw
- Sing
- Sleep Powder
- Sludge Bomb
- Smokescreen
- Spike
- Spore
- Stomp
- String Shot
- Stun Spore
- Super Fang
- Swords Dance
- Tackle
- Tail Whip
- Thunder
- Thunder Punch
- Thunderbolt
- Thunder Shock
- Thunder Wave
- Toxic
- Water Gun
- Water Pulse
- Water Sport
- Will-O-Wisp
- Withdraw
21.11.2025 · 76 794 downloads
/behaviouredit for opening the Behaviour Editor on Pokémon and NPCs.PokemonProperties (e.g. shiny=yes shows all shiny Pokémon)./changewallpaper <player> <boxNumber> <wallpaper> command to change a box wallpaper through commands./renamebox <player> <boxNumber> <name> command to rename a PC box through commands./pcsearch <player> <pokemonProperties> command that searches for a specific Pokémon within a player's PC./pctake <player> <box> <slot> command that takes a specific Pokémon from a player's PC. The Pokémon is deleted if the target is self or is run from the server./givemark <player> <slot> <mark> command to give a mark to a party Pokémon./takemark <player> <slot> <mark> command to remove a mark from a party Pokémon./giveallmarks <player> <slot> command to give all available marks to a Pokémon.main.json to be edited directly in-game.poké when input contains poke. It's a small change, but man.healerHealsPC. When set to true, a successful use of a healer will also heal all the Pokémon in that player's PC.min_perfect_ivs property to PokemonProperties to specify the minimum number of perfect IVs of the Pokémon.scale_modifier property to PokemonProperties to modify the scale of the Pokémon.defaultKeyItems config option to specify which key items players always have.blacklisted_items_to_hold and whitelisted_items_to_hold tags to allow for controlling which items players can give to their Pokémon. If the whitelist is empty, it will consider all item as allowed (unless they are in the blacklist)./transformmodelpart (position|rotation|scale) <modelPart> <transform: x y z> that can add transformations to a Pokémon's model part which can be used for good or for comedy./runmolang <molang> [<npc>|<player>|<pokemon>] that executes a Molang expression with the provided options as environment variables, as well as the entity (as q.entity) that executed the command./changejointscale to change the scale of a joint in a model. Unbelievably funny to play around with but exists for testing purposes./calculateseatpositions command for approximating hitbox locations for riding configurations. Good for when you're adding riding to your custom Pokémon!/npcdelete UUID parameter support and made it usable from console./spectatebattle <player> to spectate battles without having to manually walk up to the target./cobblemonconfig reload to reload the main.json configuration. Note: Some settings require a server restart to take effect; use this command cautiously./boxcount to change the number of PC boxes a player has.doPokemonSpawning gamerule to support per-dimension configurations.c namespace tags and the latter have better integrated use of tags within their recipes which removes need for custom tags.#c:seeds, which is now made use of for the Miracle Seed recipe.#cobblemon:berries tag to use subtags located in data/cobblemon/tags/item/berries, such as #cobblemon:berries/hp_recovery, for sorting purposes.#cobblemon:mutated_berries to #cobblemon:berries/mutation_resultgeneric.scale.pokemonId and type to species, and evolved to has_evolved, in relevant Advancement triggers.species argument to the pick_starter, pasture_use and resurrect_pokemon Advancement triggers.#minecraft:flower_pots block tag./pokedex printcalculations {player} {dex} will now print the National Pokédex statistics instead of showing all Pokédex. /pokedex printcalculations {player} all is how to view all dex statistics in one command.hiddenability in pokegive and other spawn commands resulting in a forced hidden ability.LevelUpCriterion logic to correctly check that the Pokémon is a pre-evolution.hide_additional_tooltip vanilla flag not properly hiding tooltips on Poké Rod and bait itemsdimensions spawning condition using the incorrect ResourceLocation, causing it not to function properly./spawnallpokemon command potentially received a raft.ConcurrentModificationException that could occur during world generation./pokedex printcalculations to now show the correct percentage completed of the Pokédex.Raised mod.PokemonBattle instead of them always being empty.EVs#add(Stat, Int) in favour of EVs#add(Stat, Int, EvSource). You most likely want to use SidemodEvSource but please check other implementations or make your own.NbtItemPredicate class, all the mod usages now use the vanilla item predicate solution. This causes breaking changes on Fossil, HeldItemRequirement and ItemInteractionEvolution..Pre and .Post for consistency:PokemonSentEventExperienceGainedEventBattleStartedEventPokemonSentEvent parameters to include the position and world of the Pokémon being sent out.EvolutionCompleteEvent parameters to include the source Pokémon that evolved.HatchEggEvent.Post to include the Pokémon that hatched.Pokemon.kt to cut down on RAM usage and clarify the file.MoveSet, IVs, EVs, or BenchedMoves.Pokemon#onChange() is now the way to mark a Pokémon as needing a save.NPCEntity beam positioning to properly account for the baseScale property.NPCEntity pokeball throw positioning to properly account for the baseScale property.[Pokemon].copyFrom error causing forms, IVs, and EVs to not be applied properly when using [Pokemon].loadFromJSON or [Pokemon].loadFromNBT.WearableItem. Instances of this class should have a corresponding 3D model. These models render when the items display context is HEAD.LearnsetQuery types:LEGAL for moves that are innately compatible and learnable by the Pokémon.LEGACY for moves that were once officially learnable by the Pokémon but aren't due to GameFreak's re-balancing.SPECIAL for moves that are not learnable by the Pokémon but may have appeared in a special event or distribution.Pokemon#hyperTrainIV() and IVs#setHyperTrainedIV(Stat, Int).HyperTrainedIvEvent.Pre and HyperTrainedIvEvent.Post.Pokemon#validateMoveSet() to validate an existing Pokémon's moveset, clearing illegal moves.hoverText option to PartySelectCallback, to display a tooltip on hovering over a Pokémon in the selection screen.PokemonEntity instances spawned into the world now appropriately finalize the spawn for mod compatibility.PokedexManager.obtain as a replacement for .catch which is not a friendly function name in Java.Pokemon#hyperTrainIV() and IVs#setHyperTrainedIV(Stat, Int).ElementalType now implements ShowdownIdentifiable to ensure the communcation with showdown stays consistent (also in regards to TeraTypes).JSON
{
"behaviour": {
"lightningHit": {
"rotateFeatures": [
{
"key": "mooshtank",
"chain": ["red", "brown"]
}
]
}
}
}NPCEntity. The interface is unused and in vanilla is only implemented by VillagerEntity as a means to disable villagers with the spawn-npcs server property.Observable#subscribe methods that take Java Consumers to make usage in Java a little cleaner.Species#create using the species name instead of identifier, which had led to certain mismatches generating random pokémon.EntityCallbacks to NPCEntity and PokemonEntity. You can trigger custom callback types by using [Entity].callbacks.process(...)RenamePCBoxEvent.Pre and RenamePCBoxEvent.Post events to prevent players from renaming a box or changing their input.ChangePCBoxWallpaperEvent.Pre and ChangePCBoxWallpaperEvent.Post to prevent players from changing wallpapers or changing their selection.WallpaperCollectionEvent which gets called when clients connect to a server, allowing the server to handle which of the client-found wallpapers it's allowed to move (collected wallpapers can be removed for example to make it "vanish" client-side).WallpaperUnlockedEvent.SetPCBoxPokemonPacket and the respective handler to SetPCBoxPacket.SpawningContext is now SpawnablePositionWorldSlice is SpawningZoneSpawningProspector is now SpawningZoneGeneratorSpawnerTickingSpawner is removed in favour of outside code handling ticking logic.AreaSpawner is removed.BasicSpawner is the first implementation of Spawner which can be used for any purpose.PlayerSpawners are now mixin'd into ServerPlayer and ticked from ServerPlayer#tick../docs/spawner-hierarchy.png in the mod repository.SpawnerManager class has been removed as its functionality is all now handled elsewhere.contextSelector is now spawnablePositionSelectorcontext is now spawnable_position.Pre and .Post to the following events:PokemonRecallEventTradeEventEvGainedEventvisibility/hidden, visibility/hat and visibility/face tags to control where and how certain items are held on a Pokémon.requiredContext for an item interaction evolutionitemCondition for a held item evolution requirementfossils for a fossil entryinterpolate boolean property to animated textures to allow gradual colour changes between frames.|-activate| Showdown instructions. activate_{effect_id} is the syntax.transformedParts to the root of poser JSONs so it now exists in both poses and the model overall.heldItem property inside spawn files not working and causing crashes.spawn_bedrock_particles Molang function causing crashes when used in a server environment.translucent_cull boolean option into resolver's layer to allow for translucent textures with culling.moves array in species data:legacy:{move}special:{move}cobblemon.ui.pokedex.info.form.{species}-{formname} instead of cobblemon.ui.pokedex.info.form.{formname}.run_molang to schedule the function.data/<namespace>/starters/*.json, with built-in fallback and useConfigStarters merge option.remedies.json file has changed to allow for individual friendshipDrop amounts per remedy.prepare_{effect} and damage_{effect} action effect hooks in battles for more battle particle effects.q.entity.find_nearby_block causing crashes when attempting to use a block tag.v.spawn.class to get the identifier of an NPC class for when trying to influence NPC spawns.q. for any context properties in addition to the c. properties, making it a bit more convenient when calling other scripts from Callbacks.q.entity) that executed the command to the /executemolangscript command.clientActions inside Dialogue pages being executed twice.background field and added textColor field for dialogues./reload:cobblemon:reel_in_pokemon criteria not working when used together with a baitId.cobblemon:empty_bait to any.baitId.{move_id}_{species}.json.look_at_entity_types variable for look_at_entities to specify what entity type or entity tag to look at.q.file for JSON file handling in Molang, strictly for ./config and ./data folders that have /molang/ in the path:q.file.save(<path>, <struct>) Saves to the given file path with the given variable struct.q.file.load(<path>) Loads a variable struct from the given path, or gets it from the cache if it's already been loaded.q.file.exists(<path>) Returns 1 if the given file path exists.q.file.clear(<path>) Clears the given file from the cache.q.run_script will now allow additional arguments which will be put into c.arg_1, c.arg_2, etc.behaviours datapack folder which motivates the Behaviour Editor screen on NPCs and Pokémon."behaviours" all the equivalent behaviours.PokemonEntity and NPCEntity that allows Molang scripts to be executed in response to certain scenarios.seasonings datapack folder for controlling usable items in the campfire pot and what colour and flavour they apply.marks datapack folder.unlockable_pc_box_wallpapers datapack folder for wallpapers that need to be unlocked before they're usable.assets/<namespace>/textures/gui/pc/wallpaper/ and all wallpapers in this folder are available to the client to choose by default.filePath parameter to data and save_data Molang functions to allow for global stores (ex. ../global/). Path must end in a forward slash.pokemon, entity, and player structs.q.delete_variable(<struct>, <variable_name>) to delete a value from a variable structure in Molang data.q.delete_variables(<struct>) to delete all values from a variable structure in Molang data.poke_ball_capture_calculatedevolution_testedevolution_acceptedevolution_completedpokemon_healedpokemon_scannedberry_harvestloot_droppedpokemon_seencollect_egghatch_eggexperience_gained_preexperience_gained_postpokemon_catch_ratebait_setbait_set_prebait_consumedpokerod_cast_prepokerod_cast_postpokerod_reelbobber_spawn_pokemon_prepokemon_aspects_changedfriendship_updatedchange_pc_box_wallpaper_event_prechange_pc_box_wallpaper_event_postfullness_updatedserver_stoppingstarter_chosenev_gainedpokemon_releasedpokemon_nicknamedheld_item_preheld_item_postshoulder_mountedtrade_completedbobber_spawn_pokemon_postpokemon_entity_spawnfossil_revivedplayer_tick_preplayer_tick_postadvancement_earnedright_clicked_entityright_clicked_blockplayer_diedwallpaper_unlockedq.has_argument(<argument_name>, [argument_value]) Molang function to several battle-related action effect contexts.q.has_argument_at(<index>, [argument_value]) Molang function to several battle-related action effect contexts.q.hit_count Molang function to move action effect contexts.is_included, to_lower, to_upper, and string_length as available Molang functions.q.split_string(<text>, <delimiter/comma>) Outputs an array with the divided text.Added new/updated particles for the following moves:
- Absorb
- Acid
- Acid Spray
- Aerial Ace
- Amnesia
- Aurora Beam
- Bite
- Body Slam
- Bubble
- Bubble Beam
- Bulldoze
- Bullet Punch
- Close Combat
- Confusion
- Crunch
- Cotton Guard
- Double Team
- Dragon Claw
- Egg Bomb
- Ember
- Eruption
- Explosion
- Fire Blast
- Fire Punch
- Fire Spin
- Flame Burst
- Flame Charge
- Flamethrower
- Flame Wheel
- Frost Breath
- Frustration
- Giga Drain
- Growl
- Haze
- Hidden Power
- Horn Attack
- Hyper Fang
- Hypnosis
- Ice Beam
- Ice Punch
- Ice Shard
- Icy Wind
- Infestation
- Kinesis
- Lava Plume
- Leech Life
- Leech Seed
- Leer
- Lick
- Magical Leaf
- Mega Drain
- Minimize
- Mist
- Mud Bomb
- MudSport
- Mystical Fire
- Nasty Plot
- Poison Fang
- Poison Gas
- Poison Powder
- Population Bomb
- Pound
- Powder
- Powder Snow
- Present
- Protect
- Psybeam
- Psychic
- Pursuit
- Quick Attack
- Rage Powder
- Razor Leaf
- Return
- Rock Throw
- Sand Attack
- Scary Face
- Scratch
- Seed Bomb
- Seismic Toss
- Self Destruct
- Shadow Ball
- Shadow Claw
- Sing
- Sleep Powder
- Sludge Bomb
- Smokescreen
- Spike
- Spore
- Stomp
- String Shot
- Stun Spore
- Super Fang
- Swords Dance
- Tackle
- Tail Whip
- Thunder
- Thunder Punch
- Thunderbolt
- Thunder Shock
- Thunder Wave
- Toxic
- Water Gun
- Water Pulse
- Water Sport
- Will-O-Wisp
- Withdraw
26.01.2025 · 1 064 814 downloads
maxPokedexScanningDetectionRange to control from what distance the player can scan Pokémon using the Pokédex.hideUnimplementedPokemonInThePokedex which hides unimplemented Pokémon from the Pokédex when set to true. full_party, own_zangoose_seviper, use_revive and use_candy Advancement triggers.healing_machine Advancement by using the correct 1.21 trigger.player_lose_command not working./pokedex grant all command not giving male/female/shininess completion for some Pokémon./pokedex grant only and /pokedex remove only not respecting the form parameter passed.PokemonProperties utilizing ability=<some ability> being treated as a forced ability even when it is a legal ability for the Pokémon.shinyNoticeParticlesDistance config setting.Pokemon instance, and optionally a DisguiseData instance.SpawnNPCPacket and SpawnPokemonPacket to be visible and mutable.UnvalidatedPlaySoundS2CPacket to be public instead of internal and made its fields mutable.hideNameTag field and HideNPCNameTag nbt tag to NPCEntity to allow hiding the name tag of the NPC.PokerodReelEvent so you know who is doing the reeling.forme_change: Triggered when a Pokémon changes form in battle.mega_evolution: Triggered when a Pokémon mega evolves in battle. (Note: Third-party mods are required for this feature currently)zpower_used: Triggered when a Pokémon uses a Z-Power move in battle. (Note: Third-party mods are required for this feature currently)terastallization: Triggered when a Pokémon terastallizes in battle. (Note: Third-party mods are required for this feature currently)battle_fainted: Triggered when a Pokémon faints in battle.battle_fled: Triggered when a player flees from battle.battle_started_pre: Triggered when a battle starts. Cancelable!battle_started_post: Triggered when a battle starts.apricorn_harvested: Triggered when an Apricorn is harvested.thrown_pokeball_hit: Triggered when a thrown Pokéball hits a Pokémon.level_up: Triggered when a Pokémon levels up.pokemon_fainted: Triggered when a Pokémon faints.pokemon_gained: Triggered when a player gains a Pokémon.pokemon.apply(PokemonProperties): Applies the given properties to the Pokémon.pokemon.owner: Returns the owner of the Pokémon or 0.0 if there is no owner or they are not online.entity.is_standing_on_blocks(depth, blocks...): Returns whether the specified entity is standing on a specific block or set of blocks. Example usage: q.is_standing_on_blocks(2, minecraft:sand)hideNameTag: Hides the name tag of the NPC.baseScale property to NPCs.26.01.2025 · 6 278 241 downloads
maxPokedexScanningDetectionRange to control from what distance the player can scan Pokémon using the Pokédex.hideUnimplementedPokemonInThePokedex which hides unimplemented Pokémon from the Pokédex when set to true. full_party, own_zangoose_seviper, use_revive and use_candy Advancement triggers.healing_machine Advancement by using the correct 1.21 trigger.player_lose_command not working./pokedex grant all command not giving male/female/shininess completion for some Pokémon./pokedex grant only and /pokedex remove only not respecting the form parameter passed.PokemonProperties utilizing ability=<some ability> being treated as a forced ability even when it is a legal ability for the Pokémon.shinyNoticeParticlesDistance config setting.Pokemon instance, and optionally a DisguiseData instance.SpawnNPCPacket and SpawnPokemonPacket to be visible and mutable.UnvalidatedPlaySoundS2CPacket to be public instead of internal and made its fields mutable.hideNameTag field and HideNPCNameTag nbt tag to NPCEntity to allow hiding the name tag of the NPC.PokerodReelEvent so you know who is doing the reeling.forme_change: Triggered when a Pokémon changes form in battle.mega_evolution: Triggered when a Pokémon mega evolves in battle. (Note: Third-party mods are required for this feature currently)zpower_used: Triggered when a Pokémon uses a Z-Power move in battle. (Note: Third-party mods are required for this feature currently)terastallization: Triggered when a Pokémon terastallizes in battle. (Note: Third-party mods are required for this feature currently)battle_fainted: Triggered when a Pokémon faints in battle.battle_fled: Triggered when a player flees from battle.battle_started_pre: Triggered when a battle starts. Cancelable!battle_started_post: Triggered when a battle starts.apricorn_harvested: Triggered when an Apricorn is harvested.thrown_pokeball_hit: Triggered when a thrown Pokéball hits a Pokémon.level_up: Triggered when a Pokémon levels up.pokemon_fainted: Triggered when a Pokémon faints.pokemon_gained: Triggered when a player gains a Pokémon.pokemon.apply(PokemonProperties): Applies the given properties to the Pokémon.pokemon.owner: Returns the owner of the Pokémon or 0.0 if there is no owner or they are not online.entity.is_standing_on_blocks(depth, blocks...): Returns whether the specified entity is standing on a specific block or set of blocks. Example usage: q.is_standing_on_blocks(2, minecraft:sand)hideNameTag: Hides the name tag of the NPC.baseScale property to NPCs.25.12.2024 · 370 483 downloads
displayEntityNameLabel and displayEntityLabelsWhenCrouchingOnly to control what and when is displayed for the pokemon label.no_ai and freeze_frame options to the /spawnpokemon command.moves option to Pokémon properties, allowing you to set the moves of a Pokémon in commands and spawn files using comma-separated move names.natural block state property for the healing machine block; when property is set to true, the block will have a different texture and drop an iron ingot instead of itself.battleInvulnerability gamerule to make players invulnerable to any damage during a battle.mobTargetInBattle gamerule to exclude players from being targeted by mobs during a battle./freezepokemon command to pause a Pokémon's animation at a specific point in time./spawnnpc and /spawnnpcat commands.hiddenability=false option to /spawnpokemon and /pokemonedit commands, allowing the Pokémon's ability to be reverted to a normal ability.aspect and unaspect PokemonProperty arguments (which also includes commands such as /pokemonedit, /spawnpokemon, and /givepokemon) to allow forcing or un-forcing an aspect on a Pokémon.type alternatively elemental_type PokemonProperty argument, this is only used for filtering and is not applied to Pokémon. Example type=fire would be true for Charmander but false for Squirtle.PokemonProperties.isSubsetOf.PokemonProperties#asString prefixing nicknames with a '$'.JsonPlayerData files resulting in players being unable to join server/world.tera and tera_type not suggesting stellar.SpawnCause is now an implementation of SpawningInfluence.Pokemon including itself now have dedicated Codec, please migrate to them from the NBT/JSON/PacketBuffer write/read methods.PokemonBattle now starts on turn 0.TeraTypes now implements Iterable.forcedAspects to Pokémon to make it easier to easily add basic aspects to a Pokémon in a way that persists. We already know that everyone is going to overuse this.Pokemon.aspects setter private. This could technically break side-mods but if you are affected by this then you were using it wrong! Use Pokemon.forcedAspects to fix it.PokemonEntity.enablePoseTypeRecalculation can be used to disable automatic pose type recalculation.flow datapack directory for handling events using MoLang event handlers.WingFlapIdle animation so the wings are not rotating opposite to each other.isLeftSide field for dialogue faces. This determines what side of dialogue box the portrait is on.sounds/attacks directory has been renamed to sounds/move.move.<NAME>.<SOURCE> for consistency.attacks directory and split into volatile and nonvolatile.status.badlypoison.actor sound event has been renamed to status.toxpoison.actorsounds/block.sounds/evolution directory.block.q.has_aspect('some_aspect') function to animations, posers, and entity particle effects.eggs_collected and eggs_hatched Advancement triggers.minYaw configuration to the q.look() function for JSON posers.isTouchingWaterOrRain has been changed to isInWaterOrRainisSubermegedInWater has been changed to isUnderWater25.12.2024 · 67 124 downloads
displayEntityNameLabel and displayEntityLabelsWhenCrouchingOnly to control what and when is displayed for the pokemon label.no_ai and freeze_frame options to the /spawnpokemon command.moves option to Pokémon properties, allowing you to set the moves of a Pokémon in commands and spawn files using comma-separated move names.natural block state property for the healing machine block; when property is set to true, the block will have a different texture and drop an iron ingot instead of itself.battleInvulnerability gamerule to make players invulnerable to any damage during a battle.mobTargetInBattle gamerule to exclude players from being targeted by mobs during a battle./freezepokemon command to pause a Pokémon's animation at a specific point in time./spawnnpc and /spawnnpcat commands.hiddenability=false option to /spawnpokemon and /pokemonedit commands, allowing the Pokémon's ability to be reverted to a normal ability.aspect and unaspect PokemonProperty arguments (which also includes commands such as /pokemonedit, /spawnpokemon, and /givepokemon) to allow forcing or un-forcing an aspect on a Pokémon.type alternatively elemental_type PokemonProperty argument, this is only used for filtering and is not applied to Pokémon. Example type=fire would be true for Charmander but false for Squirtle.PokemonProperties.isSubsetOf.PokemonProperties#asString prefixing nicknames with a '$'.JsonPlayerData files resulting in players being unable to join server/world.tera and tera_type not suggesting stellar.SpawnCause is now an implementation of SpawningInfluence.Pokemon including itself now have dedicated Codec, please migrate to them from the NBT/JSON/PacketBuffer write/read methods.PokemonBattle now starts on turn 0.TeraTypes now implements Iterable.forcedAspects to Pokémon to make it easier to easily add basic aspects to a Pokémon in a way that persists. We already know that everyone is going to overuse this.Pokemon.aspects setter private. This could technically break side-mods but if you are affected by this then you were using it wrong! Use Pokemon.forcedAspects to fix it.PokemonEntity.enablePoseTypeRecalculation can be used to disable automatic pose type recalculation.flow datapack directory for handling events using MoLang event handlers.WingFlapIdle animation so the wings are not rotating opposite to each other.isLeftSide field for dialogue faces. This determines what side of dialogue box the portrait is on.sounds/attacks directory has been renamed to sounds/move.move.<NAME>.<SOURCE> for consistency.attacks directory and split into volatile and nonvolatile.status.badlypoison.actor sound event has been renamed to status.toxpoison.actorsounds/block.sounds/evolution directory.block.q.has_aspect('some_aspect') function to animations, posers, and entity particle effects.eggs_collected and eggs_hatched Advancement triggers.minYaw configuration to the q.look() function for JSON posers.isTouchingWaterOrRain has been changed to isInWaterOrRainisSubermegedInWater has been changed to isUnderWater27.05.2024 · 2 432 703 downloads
27.05.2024 · 1 192 285 downloads
27.05.2024 · 20 444 downloads
{
"quirks": [
"q.bedrock_primary_quirk('<pokemon>', '<animation>', <minSeconds>, <maxSeconds>, <loopTimes>, '<excludedLabels>', q.curve('<waveFunction>'))"
]
}
27.05.2024 · 12 367 downloads
{
"quirks": [
"q.bedrock_primary_quirk('<pokemon>', '<animation>', <minSeconds>, <maxSeconds>, <loopTimes>, '<excludedLabels>', q.curve('<waveFunction>'))"
]
}
11.05.2024 · 189 896 downloads
These are our compromise for having both regular and Hisuian forms of these Pokémon in the game. Hisui Biased variations will evolve into the Hisuian evolutions under most conditions. They are otherwise purely cosmetic differences.
/spawnpokemon.HeldItemEvent, this comes with 2 implementation HeldItemEvent.Pre and HeldItemEvent.Post. Ability.forced function as intended and never reroll an ability for a Pokémon, please check your implementations to ensure the corrected behavior is intended for your use case.Pokemon.ability no longer has a public setter. Please migrate to using Pokemon#updateAbility, this handles the ability coordinate storage for you when necessary.Ability.forced, Ability.index and Ability.priority have all had their setters internalized, there is no longer any need to manually adjust these migrate to the method mentioned above to handle that process for you.AbilityChanger has been added to API alongside some implementations, this is subject to change as the ability capsule and patch currently only expect the traditional behaviour in the Pokémon games of 1 or 2 regular abilities and 1 hidden ability.Pokemon#rollAbility has been added which rerolls for a legal ability for the Pokémon.docs/cobblemon-tags tags and spawn-presets can now be auto-generated from the current tags in the Cobblemon mod with the generateSpawnPresetList.py and generateTagList.py scripts.public_spawns_to_json.py script has been added to give the powerful spawn.json generator a simplistic UI.aerodactyl.json:{
"result": "aerodactyl",
"fossils": [
"cobblemon:old_amber_fossil"
]
}
bedrock/fossils.textures/fossils.natural_materials folder. To register more fuels, create a JSON file containing an array of objects. Each object supports the following fields:content: Integer containing the amount of fuel to add.item OR tag: Identifier of the item or item tag to be inserted.returnItem: Identifier of an item to return to the player after consumption.ancient_poke_balls, fossils, and tumblestones.cobblemon:held/leaves_leftovers this can be used to flag apple-like items that can create leftovers when eaten.{
"lightingData": {
"lightLevel": 14,
"_lightLevelCommentRemoveMe": "Above supports 0 to 15",
"liquidGlowMode": "LAND",
"_liquidGlowModeCommentRemoveMe": "Above supports LAND, UNDERWATER or BOTH"
}
}
light_source was removed as a possible shoulder effect due to becoming unnecessary and never having had a default implementation.cobblemon:ability_changers, contains the cobblemon:ability_capsule & cobblemon:ability_patch by default.cobblemon:held/is_friendship_booster, allows items to give the Soothe Bell effect of a boost of 1.5x Friendship gained, contains cobblemon:soothe_bell by default.11.05.2024 · 65 001 downloads
These are our compromise for having both regular and Hisuian forms of these Pokémon in the game. Hisui Biased variations will evolve into the Hisuian evolutions under most conditions. They are otherwise purely cosmetic differences.
/spawnpokemon.HeldItemEvent, this comes with 2 implementation HeldItemEvent.Pre and HeldItemEvent.Post. Ability.forced function as intended and never reroll an ability for a Pokémon, please check your implementations to ensure the corrected behavior is intended for your use case.Pokemon.ability no longer has a public setter. Please migrate to using Pokemon#updateAbility, this handles the ability coordinate storage for you when necessary.Ability.forced, Ability.index and Ability.priority have all had their setters internalized, there is no longer any need to manually adjust these migrate to the method mentioned above to handle that process for you.AbilityChanger has been added to API alongside some implementations, this is subject to change as the ability capsule and patch currently only expect the traditional behaviour in the Pokémon games of 1 or 2 regular abilities and 1 hidden ability.Pokemon#rollAbility has been added which rerolls for a legal ability for the Pokémon.docs/cobblemon-tags tags and spawn-presets can now be auto-generated from the current tags in the Cobblemon mod with the generateSpawnPresetList.py and generateTagList.py scripts.public_spawns_to_json.py script has been added to give the powerful spawn.json generator a simplistic UI.aerodactyl.json:{
"result": "aerodactyl",
"fossils": [
"cobblemon:old_amber_fossil"
]
}
bedrock/fossils.textures/fossils.natural_materials folder. To register more fuels, create a JSON file containing an array of objects. Each object supports the following fields:content: Integer containing the amount of fuel to add.item OR tag: Identifier of the item or item tag to be inserted.returnItem: Identifier of an item to return to the player after consumption.ancient_poke_balls, fossils, and tumblestones.cobblemon:held/leaves_leftovers this can be used to flag apple-like items that can create leftovers when eaten.{
"lightingData": {
"lightLevel": 14,
"_lightLevelCommentRemoveMe": "Above supports 0 to 15",
"liquidGlowMode": "LAND",
"_liquidGlowModeCommentRemoveMe": "Above supports LAND, UNDERWATER or BOTH"
}
}
light_source was removed as a possible shoulder effect due to becoming unnecessary and never having had a default implementation.cobblemon:ability_changers, contains the cobblemon:ability_capsule & cobblemon:ability_patch by default.cobblemon:held/is_friendship_booster, allows items to give the Soothe Bell effect of a boost of 1.5x Friendship gained, contains cobblemon:soothe_bell by default.23.12.2023 · 1 387 654 downloads
consumeHeldItems has been removed, please see the Datapack & Resourcepack Creators section for instructions on the updated method.SpawnEvent not respecting usage of Cancelable#cancel.EvolutionTestedEvent, this allows listening and overriding the final result of evolution requirement tests.HeldItemManager has a new method shouldConsumeItem, this will return false by default to prevent breaking changes, see the documentation and update your implementations as needed.PlayerData#battleTheme.BattleStartedPreEvent. Will now expose the PokemonBattle.cobblemon:held/consumed_in_npc_battle, cobblemon:held/consumed_in_pvp_battle & cobblemon:held/consumed_in_wild_battle these will determine which items get consumed in the implied battle types by Cobblemon, keep in mind the controller for this behaviour can be overriden by 3rd party.battleTheme field in the species' data configuration.structure evolution condition, used to check if a Pokémon is in a given structure.Thank you so much to all of our community translators who bring the mod to the rest of the world!
23.12.2023 · 159 958 downloads
consumeHeldItems has been removed, please see the Datapack & Resourcepack Creators section for instructions on the updated method.SpawnEvent not respecting usage of Cancelable#cancel.EvolutionTestedEvent, this allows listening and overriding the final result of evolution requirement tests.HeldItemManager has a new method shouldConsumeItem, this will return false by default to prevent breaking changes, see the documentation and update your implementations as needed.PlayerData#battleTheme.BattleStartedPreEvent. Will now expose the PokemonBattle.cobblemon:held/consumed_in_npc_battle, cobblemon:held/consumed_in_pvp_battle & cobblemon:held/consumed_in_wild_battle these will determine which items get consumed in the implied battle types by Cobblemon, keep in mind the controller for this behaviour can be overriden by 3rd party.battleTheme field in the species' data configuration.structure evolution condition, used to check if a Pokémon is in a given structure.Thank you so much to all of our community translators who bring the mod to the rest of the world!
14.10.2023 · 336 920 downloads
doShinyStarters gamerule to make it quick and easy to be offered shiny starters.doPokemonLoot gamerule to toggle Pokémon dropping items/exp on death./teststore <player> <store> <properties> command allowing command block/mcfunction users to query a party, PC or both for Pokémon matching specific properties and returning the match count, this will be a cheat command in the Minecraft permission system or use the permission cobblemon.command.teststore if a permission mod is present./querylearnset <player> <slot> <move> command allowing command block/mcfunction users to query a party slot and check if the Pokémon can learn a specific move returning a 1 if yes otherwise 0, this will be a cheat command in the Minecraft permission system or use the permission cobblemon.command.querylearnset if a permission mod is present./testpcslot <player> <slot> <properties> command allowing command block/mcfunction users to query a pc slot and check if the Pokémon matches specific properties returning a 1 if yes otherwise 0, this will be a cheat command in the Minecraft permission system or use the permission cobblemon.command.testpcslot if a permission mod is present./testpartyslot <player> <slot> <properties> command allowing command block/mcfunction users to query a party slot and check if the Pokémon matches a specific properties returning a 1 if yes otherwise 0, this will be a cheat command in the Minecraft permission system or use the permission cobblemon.command.testpartyslot if a permission mod is present./clearparty <player> command for emptying a player's party./clearpc <player> command for emptying a player's PC./pokemonrestart <reset_starters> and the /pokemonrestartother <player> <reset_starters> command allowing command block/mcfunction users to reset a players Pokémon data.damage_taken evolution requirement.defeat evolution requirement.recoil evolution requirement.use_move evolution requirement.blocks_traveled evolution requirement.teraType, dmaxLevel, and gmaxFactor properties. Gimmicks can be used during battle by adding the respective identifiers to keyItems in PlayerData: key_stone, z_ring, dynamax_band, and tera_orb. Dynamax is only supported in Gen 8 battles. Mega Evolution and Z-Power require custom held items to be added (e.g. an item with the path gengarite will allow Gengar to Mega Evolve). Currently custom Z-Crystals and Mega Stones are not supported.potion_effect and use the vanilla Potion data parameters. For example, here is the converted Pidgey asset:json
{
"type": "potion_effect",
"effect": "minecraft:slow_falling",
"amplifier": 0,
"ambient": true,
"showParticles": false,
"showIcon": false
}walked_steps evolution requirement to blocks_traveled.battle.pvp.default and battle.pvw.default sound events.item for what used to be the existing condition support and a nbt key for the NBT format, this is the string format expected in commands. Existing data does not need to be updated.14.10.2023 · 119 185 downloads
doShinyStarters gamerule to make it quick and easy to be offered shiny starters.doPokemonLoot gamerule to toggle Pokémon dropping items/exp on death./teststore <player> <store> <properties> command allowing command block/mcfunction users to query a party, PC or both for Pokémon matching specific properties and returning the match count, this will be a cheat command in the Minecraft permission system or use the permission cobblemon.command.teststore if a permission mod is present./querylearnset <player> <slot> <move> command allowing command block/mcfunction users to query a party slot and check if the Pokémon can learn a specific move returning a 1 if yes otherwise 0, this will be a cheat command in the Minecraft permission system or use the permission cobblemon.command.querylearnset if a permission mod is present./testpcslot <player> <slot> <properties> command allowing command block/mcfunction users to query a pc slot and check if the Pokémon matches specific properties returning a 1 if yes otherwise 0, this will be a cheat command in the Minecraft permission system or use the permission cobblemon.command.testpcslot if a permission mod is present./testpartyslot <player> <slot> <properties> command allowing command block/mcfunction users to query a party slot and check if the Pokémon matches a specific properties returning a 1 if yes otherwise 0, this will be a cheat command in the Minecraft permission system or use the permission cobblemon.command.testpartyslot if a permission mod is present./clearparty <player> command for emptying a player's party./clearpc <player> command for emptying a player's PC./pokemonrestart <reset_starters> and the /pokemonrestartother <player> <reset_starters> command allowing command block/mcfunction users to reset a players Pokémon data.damage_taken evolution requirement.defeat evolution requirement.recoil evolution requirement.use_move evolution requirement.blocks_traveled evolution requirement.teraType, dmaxLevel, and gmaxFactor properties. Gimmicks can be used during battle by adding the respective identifiers to keyItems in PlayerData: key_stone, z_ring, dynamax_band, and tera_orb. Dynamax is only supported in Gen 8 battles. Mega Evolution and Z-Power require custom held items to be added (e.g. an item with the path gengarite will allow Gengar to Mega Evolve). Currently custom Z-Crystals and Mega Stones are not supported.potion_effect and use the vanilla Potion data parameters. For example, here is the converted Pidgey asset:json
{
"type": "potion_effect",
"effect": "minecraft:slow_falling",
"amplifier": 0,
"ambient": true,
"showParticles": false,
"showIcon": false
}walked_steps evolution requirement to blocks_traveled.battle.pvp.default and battle.pvw.default sound events.item for what used to be the existing condition support and a nbt key for the NBT format, this is the string format expected in commands. Existing data does not need to be updated.01.04.2023 · 689 570 downloads
Fixes a crash when Klink family Pokémon faint.
01.04.2023 · 293 289 downloads
Fixes an issue where Klink line fainting would crash you. Servers don't need to update for this.
01.04.2023 · 4 478 downloads
any evolution requirement allowing you to define possibilities of other evolution requirements, for example, this allows you to create an evolution that requires the Pokémon to be shiny or a female./spawnpokemonfrompool [amount] or /forcespawn [amount] command to spawn Pokémon(s) in the surrounding area using the natural spawn rates/pool of that area, this will be a cheat command in the Minecraft permission system or use the permission cobblemon.command.spawnpokemon if a permission mod is present. On a successful execution of the command, the amount of Pokémon spawned will be the output./pokebox and /pokeboxall commands to move Pokemon(s) to the PC from a Player's party, this will be a cheat command in the Minecraft permission system or use the permission cobblemon.command.pokebox if a permission mod is present. On a successful execution of the command the output will be the number of pokemon moved to the Player's PC./pc command which opens up the PC UI the same way interacting with the block would, this will be a cheat command in the Minecraft permission system or use the permission cobblemon.command.pc if a permission mod is present./teach command can now only allow the Pokémon to be given moves in their learnset, this can be controlled with the permission cobblemon.command.teach.bypass, to account for that change the base command now requires the permission cobblemon.command.teach.base, this change is meant only for people using a mod capable of providing permissions such as LuckPerms.Failed to handle battle messages to Missing interpretation to make it more clear that mechanics do work just still pending dedicated messages./pokemonspawnat having the argument positions reverted making it impossible for Brigadier to understand when to suggest coordinates. It is now the intended /spawnpokemonat <pos> <properties>./reload command causing unintended behavior for clients.01.04.2023 · 5 857 downloads
any evolution requirement allowing you to define possibilities of other evolution requirements, for example, this allows you to create an evolution that requires the Pokémon to be shiny or a female./spawnpokemonfrompool [amount] or /forcespawn [amount] command to spawn Pokémon(s) in the surrounding area using the natural spawn rates/pool of that area, this will be a cheat command in the Minecraft permission system or use the permission cobblemon.command.spawnpokemon if a permission mod is present. On a successful execution of the command, the amount of Pokémon spawned will be the output./pokebox and /pokeboxall commands to move Pokemon(s) to the PC from a Player's party, this will be a cheat command in the Minecraft permission system or use the permission cobblemon.command.pokebox if a permission mod is present. On a successful execution of the command the output will be the number of pokemon moved to the Player's PC./pc command which opens up the PC UI the same way interacting with the block would, this will be a cheat command in the Minecraft permission system or use the permission cobblemon.command.pc if a permission mod is present./teach command can now only allow the Pokémon to be given moves in their learnset, this can be controlled with the permission cobblemon.command.teach.bypass, to account for that change the base command now requires the permission cobblemon.command.teach.base, this change is meant only for people using a mod capable of providing permissions such as LuckPerms.Failed to handle battle messages to Missing interpretation to make it more clear that mechanics do work just still pending dedicated messages./pokemonspawnat having the argument positions reverted making it impossible for Brigadier to understand when to suggest coordinates. It is now the intended /spawnpokemonat <pos> <properties>./reload command causing unintended behavior for clients.18.03.2023 · 55 172 downloads
pokemonPerChunk config option.cobblemon:held/experience_share and cobblemon:held/lucky_egg allowing you to mark any items you desire to have the effects implied in the tag name./spawnpokemonat <pos> <properties> command, the pos argument uses the same syntax as the Minecraft summon command./giveallpokemon command which is definitely safe and not insane.captureCalculator config value:generation_1 Sets the calculator to the generation 1 implementation.generation_2 Sets the calculator to the generation 2 implementation.generation_2_fixed Sets the calculator to the generation 2 implementation with the status multiplier bug fixed.generation_3_4 Sets the calculator to the generation 3 and 4 implementation.generation_5 Sets the calculator to the generation 5 implementation.generation_6 Sets the calculator to the generation 6 implementation.generation_7 Sets the calculator to the generation 7 implementation.generation_8 Sets the calculator to the generation 8 implementation.generation_9 Sets the calculator to the generation 9 implementation.cobblemon Sets the calculator to the custom Cobblemon implementation. This is the default value.debug Sets the calculator to the debug/cheat implementation, every attempt will be a successful critical capture.minecraft:blocks/mineable/axe.cobblemon/loot_tables/blocks/<color>_apricorn.json.example named Pogemon will now correctly look for the lang key example.species.pogemon.name.medium_slow and medium_fast. Any custom datapack Pokémon will require an update./healpokemon in battle./spawnpokemon command not supporting any command source other than players.cobblemon:pokeballs item tag./pokemoneditother command not working.18.03.2023 · 39 685 downloads
pokemonPerChunk config option.cobblemon:held/experience_share and cobblemon:held/lucky_egg allowing you to mark any items you desire to have the effects implied in the tag name./spawnpokemonat <pos> <properties> command, the pos argument uses the same syntax as the Minecraft summon command./giveallpokemon command which is definitely safe and not insane.captureCalculator config value:generation_1 Sets the calculator to the generation 1 implementation.generation_2 Sets the calculator to the generation 2 implementation.generation_2_fixed Sets the calculator to the generation 2 implementation with the status multiplier bug fixed.generation_3_4 Sets the calculator to the generation 3 and 4 implementation.generation_5 Sets the calculator to the generation 5 implementation.generation_6 Sets the calculator to the generation 6 implementation.generation_7 Sets the calculator to the generation 7 implementation.generation_8 Sets the calculator to the generation 8 implementation.generation_9 Sets the calculator to the generation 9 implementation.cobblemon Sets the calculator to the custom Cobblemon implementation. This is the default value.debug Sets the calculator to the debug/cheat implementation, every attempt will be a successful critical capture.minecraft:blocks/mineable/axe.cobblemon/loot_tables/blocks/<color>_apricorn.json.example named Pogemon will now correctly look for the lang key example.species.pogemon.name.medium_slow and medium_fast. Any custom datapack Pokémon will require an update./healpokemon in battle./spawnpokemon command not supporting any command source other than players.cobblemon:pokeballs item tag./pokemoneditother command not working.01.01.2023 · 33 699 downloads
nature and pokeball options to commands such as /spawnpokemon and /givepokemon../config/cobblemon/main.json to see this change!M by default./givepokemon random, /spawnpokemon random, and /spawnallpokemon will now only choose implemented Pokémon.R prompt in battle to be higher on the screen so that it's not as distracting.ko_ko, jp_jp, fr_fr, es_es, it_it, and zh_cn.01.01.2023 · 28 776 downloads
nature and pokeball options to commands such as /spawnpokemon and /givepokemon../config/cobblemon/main.json to see this change!M by default./givepokemon random, /spawnpokemon random, and /spawnallpokemon will now only choose implemented Pokémon.R prompt in battle to be higher on the screen so that it's not as distracting.ko_ko, jp_jp, fr_fr, es_es, it_it, and zh_cn.28.11.2022 · 3 229 downloads
M by default./givepokemon random, /spawnpokemon random, and /spawnallpokemon will now only choose implemented Pokémon.R prompt in battle to be higher on the screen so that it's not as distracting.28.11.2022 · 2 653 downloads
M by default./givepokemon random, /spawnpokemon random, and /spawnallpokemon will now only choose implemented Pokémon.R prompt in battle to be higher on the screen so that it's not as distracting.28.11.2022 · 1 317 downloads
M by default./givepokemon random, /spawnpokemon random, and /spawnallpokemon will now only choose implemented Pokémon.R prompt in battle to be higher on the screen so that it's not as distracting.28.11.2022 · 859 downloads
M by default./givepokemon random, /spawnpokemon random, and /spawnallpokemon will now only choose implemented Pokémon.R prompt in battle to be higher on the screen so that it's not as distracting.12.11.2022 · 7 651 downloads
This is the launch version of Cobblemon for Forge.
12.11.2022 · 2 407 downloads
This is the launch version of Cobblemon for Fabric.
06.11.2022 · 5 744 downloads