Changelog
"1.21.1 (9.3.7)"
- 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 The Blank Plate has been added to the creative menu.
-
22783 Eggs obtained via breeding will now hatch at a random size, rather than an average of the parents.
Fixes
-
22826 Battles started under the "Anything Goes" ruleset may now be forfited or escaped as intended.
-
22818 22803 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 Type-based lure items now correctly boost the spawn rates of matching Pokémon types as intended.
-
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 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 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 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 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 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 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 Petal Dance, Outrage, Raging Fury, and Thrash now only confuse the user if the move fails or misses on the final turn.
-
22687 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 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 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 Pokémon that gain levitation after being hit by Smack Down correctly regain their immunity to Ground-type moves.
-
22687 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 Revival Blessing, Hyperspace Fury and Dark Void can no longer be sketched.
-
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 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
- These can be added/found in
- 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
- These can be added/found in
- 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
- These can be added/found in
Developer
- Removed
PlayerPartyStorage#pokedex
- The pokedex is no longer stored inside the Player's party
- Added
Player#getPokedex
andPlayer#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
, andPokeDexStorageSaveAdapter
- 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
, andStoredPokedex
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.