**"1.21.1 (9.3.7)"**
<hr>
- The Java requirement for 1.21.1 is Java 21. This will come shipped with most launchers. For manual installation, you may need to install a later JDK.
- The minimum Neoforge version for this update is 21.1.172 and is required for a Pixelmon client to run.
- Worlds from 1.16.5 may not work with newer versions of Minecraft. Consider backups before updating.
- If using datapacks, consider refreshing every update for default datapack fixes from Pixelmon.
## Additions
- The Pokédex has been completely reworked:
- A new Pokédex tab has been added to the survival inventory.
- Shiny Dex and Mega Dex tracking are now available.
- Pokédex progress is now stored in its own file, no longer tied to the player's party data.
- The "ismega" spec can now be used to check for Mega Evolved Pokémon.
- New commands have been added to streamline NPC creation:
- `/npc spawn <preset> [position]` spawns an NPC with the specified preset at the given position.
- `/npc spawnlinked <preset> [position]` spawns a linked NPC with the specified preset at the given position.
- These commands support both built-in and datapack NPC presets.
- The `/setraid` command now supports specifying a loot table.
- A new infuser recipe has been added for Perilous Soup.
- The NPC Editor now supports setting battle rules, AI mode, and toggles for Mega Evolution and Dynamax with the start battle interaction result.
## Changes
- Bewear and Stufful have been remodelled.
- Villager NPCs now properly stroll through villages as intended.
- Multiple NPC presets can be specified for villager spawn replacements.
- Palettes now support tags, and a "shiny" tag has been added to all Shiny Pokemon. Please check your datapacks!
- [22810](https://pixelmonmod.com/tracker.php?p=2&t=22810) The Blank Plate has been added to the creative menu.
- [22783](https://pixelmonmod.com/tracker.php?p=2&t=22783) Eggs obtained via breeding will now hatch at a random size, rather than an average of the parents.
## Fixes
- [22826](https://pixelmonmod.com/tracker.php?p=2&t=22826) Battles started under the "Anything Goes" ruleset may now be forfited or escaped as intended.
- [22818](https://pixelmonmod.com/tracker.php?p=2&t=22818) [22803](https://pixelmonmod.com/tracker.php?p=2&t=22803) [22804](https://pixelmonmod.com/tracker.php?p=2&t=22804) Move learning and post-battle dialogues no longer conflict, now Pokémon that evolve and are meant to learn a new move during NPC battles will now do so immediately, instead of waiting for the next battle.
- [22792](https://pixelmonmod.com/tracker.php?p=2&t=22792) Type-based lure items now correctly boost the spawn rates of matching Pokémon types as intended.
- [22709](https://pixelmonmod.com/tracker.php?p=2&t=22709) Dynamax cloud and lightning effects now display correctly around Dynamaxed Pokémon.
- Wormhole rendering has been improved.
- Smeargle will now correctly hatch with Sketch via breeding.
- [22714](https://pixelmonmod.com/tracker.php?p=2&t=22714) Gym signs can now be placed correctly and are restored to the Creative Menu and JEI. Placing a gym sign now works as intended instead of turning it into a Jungle Sign.
- The boss, Dynamax, and evolution shaders have been toned down to be less overpowering, and evolved Pokémon now display properly instead of appearing only as the shader effect.
- Pokémon models on the raid start screen are now fully animated.
- [22744](https://pixelmonmod.com/tracker.php?p=2&t=22744) Labels above Pokémon statues now render correctly again, with added support for colored text.
- NPCs no longer stand still after leaving and rejoining a world.
- Cosmog and Cosmoem now appear at the correct height in the world, with updated animations positioning them closer to the ground.
- Nihilego's model and textures have been updated to render transparency correctly.
- [22839](https://pixelmonmod.com/tracker.php?p=2&t=22839) Transparent Pokémon models rendering has been improved.
- Castform forms now display proper transparency on their outer layers.
- The flames of Litwick, Lampent, and Chandelure are now transparent.
- Vikavolt's wings, Snom's outer ice layer, and the tip of Dragapult's tail all render with correct transparency effects.
- Butterfree now stands correctly and no longer floats mid-air.
- [22791](https://pixelmonmod.com/tracker.php?p=2&t=22791) Glimmet's face is now visible.
- Iron Crown's emissive textures have been added for both normal and shiny forms.
- Minior's animations have been recreated for both Core and Meteor forms, and it no longer clips through the ground.
- Treecko's model has been smoothed out and no longer appears blocky or clips into the ground.
- Sceptile no longer clips into the ground.
- Steelix's head no longer displays miscoloured pixels.
- Unnecessary syncing of server-sided registries for interaction conditions, event types, and results has been removed, allowing servers to add their own without issues.
- Custom menu buttons will now respect the debug reload hotkey.
- Fixed an exploit related to Shopkeepers.
- Type icons for dual-type Pokémon no longer overlap on the move learning screen.
- [22761](https://pixelmonmod.com/tracker.php?p=2&t=22761) Buttons in the pause menu that conflict with Pixelmon-specific buttons will no longer conflict with extra buttons.
- Fixed a crash when placing the incense burner.
- Reduced the scope of a mixin to improve mod compatibility, fixing crashes when running alongside The Aether mod.
#### Battle
- [22828](https://pixelmonmod.com/tracker.php?p=2&t=22828) NPC Trainers' Pokémon are now fully healed before each battle begins.
- Pokémon captured from raids now appear at 1 HP instead of fainted.
- [22787](https://pixelmonmod.com/tracker.php?p=2&t=22787) Petal Dance, Outrage, Raging Fury, and Thrash now only confuse the user if the move fails or misses on the final turn.
- [22687](https://pixelmonmod.com/tracker.php?p=2&t=22627) Smack Down now only grounds airborne Pokémon and does not incorrectly ground already-grounded targets, those under Ingrain, or those holding an Iron Ball.
- [22687](https://pixelmonmod.com/tracker.php?p=2&t=22627) Smack Down no longer grounds Pokémon in the semi-invulnerable state of Fly, Bounce, or Sky Drop, and properly removes Magnet Rise and Telekinesis effects.
- [22687](https://pixelmonmod.com/tracker.php?p=2&t=22627) Magnet Rise and Telekinesis now fail when used on a Pokémon grounded by Smack Down, and Air Balloon will not apply under the effect of Smack Down.
- [22687](https://pixelmonmod.com/tracker.php?p=2&t=22627) Pokémon that gain levitation after being hit by Smack Down correctly regain their immunity to Ground-type moves.
- [22687](https://pixelmonmod.com/tracker.php?p=2&t=22627) Multi-turn move status for Fly and Bounce is now handled correctly after being hit by Smack Down, preventing animation and move glitches.
- Strength Sap now correctly restores HP even when items like the Clear Amulet prevent the target's Attack from being lowered.
- Mirror Armor no longer reflects stat changes from Parting Shot if the user is holding a Clear Amulet.
- [22478](https://pixelmonmod.com/tracker.php?p=2&t=22478) Revival Blessing, Hyperspace Fury and Dark Void can no longer be sketched.
- [22738](https://pixelmonmod.com/tracker.php?p=2&t=22738) Raid drops now correctly include both star level and Pokémon type-based loot.
- Battles now display the Snow weather effect if the combatants are fighting in snow.
- Battle weather will now update dynamically to match changes in Overworld weather conditions.
- Fixed Sunny weather persisting indefinitely when created from Overworld weather; battle weather now ends if the time of day or Overworld weather changes.
- Sunny weather will no longer appear in deserts and arid biomes during Overworld rain; previously, this only happened during thunderstorms.
- [22821](https://pixelmonmod.com/tracker.php?p=2&t=22821) Fixed Synchronize's out-of-battle effect so that it now works whenever the Pokémon with Synchronize is first in your party, regardless of whether it enters battle.
- Targeting arrows now appear correctly over every Pokémon's icon during Horde Battles when hovering over moves that hit all opponents.
## Datapack
- Added `PokeDex` datapackability
- These can be added/found in `data/<namespace>/pixelmon/pokemon/pokedex/pokedex`
- This allows you to add new types of PokeDex that will record entries separetely from the other pokedexes
- Each pokedex should have a distinct set of colours, and name, so that it is easily identified in the UI
- Defaults:
- National Dex
- Shiny Dex
- Mega Dex
- Added `PokeDexTrigger` datapackability
- These can be added/found in `data/<namespace>/pixelmon/pokemon/pokedex/trigger`
- This allows you to modify how a pokedex entry is updated for the player
- Each PokeDex trigger can update the state of a Pokemon (SEEN, CAUGHT)
- When triggered it will also increase the seen/caught count of the Pokemon in the player's dex
- Defaults:
- `pixelmon:battle_start`
- `pixelmon:mega_evolve`
- `pixelmon:mega_evolve_seen`
- `pixelmon:outside_battle_capture`
- `pixelmon:receive_pokemon`
- `pixelmon:switch_pokemon`
- `pixelmon:trade_pokemon`
- `pixelmon:poke_give`
- Added `Region` datapackability
- These can be added/found in `data/<namespace>/pixelmon/pokemon/pokedex/region`
- These are display elements for the PokeDex tab
- Each region should have identifiable "starters" so make it distinct from the other regions
- Defaults:
- `pixelmon:alola`
- `pixelmon:galar`
- `pixelmon:hoenn`
- `pixelmon:johto`
- `pixelmon:kalos`
- `pixelmon:kanto`
- `pixelmon:paldea`
- `pixelmon:sinnoh`
- `pixelmon:unova`
## Developer
- Removed `PlayerPartyStorage#pokedex`
- The pokedex is no longer stored inside the Player's party
- Added `Player#getPokedex` and `Player#getPokedexNow`
- This is now how the pokedex should be accessed
- You can additionally access it through the `PokeDexStorageProxy` but it is recommended to access it through the player object
- Added `PokeDexStorageManager`, `PokeDexSaveScheduler`, and `PokeDexStorageSaveAdapter`
- In-line with the other storage managers, save schedulers, and save adapters these can be swapped out using the PixelmonInitEvent
- Added `Player#getCurrentBattle`
- This is a cleaner way of getting the current battle the player is in
- It is simply a proxy for `BattleRegistry#getBattle`
- Added `DayCareRequirement#getIcon` returning a List of ItemStack
- This is so that they can be nicely displayed in the Pokemon's pokedex entry page
- Added `SwitchPokemonEvent`
- Called when a player switches a Pokemon in battle
- Added `ReceivePokemonEvent`
- Called when a player is given a Pokemon through their party
- Removed `PokedexOpenEvent`
- Given the PokeDex is now inside the player's inventory there is no relevant point at which this event would be called
- Added `DexData`, and `StoredPokedex` abstract pokedex storage classes
- This allows them to be extended to allow for more creative PokeDexes, such as a "group pokedex"
- Added `PokemonProvider` interface
- This interface is required on both the client and the server
- It provides a list of Pokemon based on a datapack entry
- Added `PokemonPredicate` interface
- This interface is not required on both the client and the server
- This is used for filtering entries to make sure they are correct for the given PokeDex
- Moved the `PokedexEvent` to the pokedex package
- Added pokedex type to the event
- Added `PokedexRecordEvent`
- This is fired when a player captures a Pokemon and it is the largest/smallest Pokemon they've ever captured
- Closing a Dialogue via API will now properly call `closeConsumer`
- SynchronizeNatureEvent and related ability methods have been updated to use the Pokémon object directly for the user of Synchronize.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }