Pixelmon 9.1.3

**"Love is in the Pokedex!"**

- The minimum Forge version for this update is 36.2.34 and is required for a Pixelmon client to run.
- If using datapacks, consider refreshing every update for default datapack fixes from Pixelmon.

- Added Valentines' Day catch mechanic: catching certain Pokémon with a Love Ball turns them into their Valentine palette.
- Added Valentine palette Pokémon: Swablu, Altaria, Togepi, Togetic, Togekiss, Drifloon, Drifblim, Emolga, Absol and Celebi.
- Added Valentine's Day Discord-exclusive Heart Wings.
- Added Electromorphosis ability.
- Added Earth Eater ability.
- Added Thermal Exchange ability.
- Added Glaive Rush move.
- Added Shed Tail move.
- Added new debug modes: Vertex mode[F3+V], Emissive mode [F3+K].
- Added new debug modes to debug help menu [F3+Q].

- Added Wiglett.
- Added Wugtrio.
- Added Orthworm.
- Added Tadbulb.
- Added Bellibolt.
- Added Frigibax.
- Added Arctibax.
- Added Baxcalibur.

- Added Ground Gym Town structures: Gym Ground, Gym Ground Town Center A-B, Gym Ground PokeCenter, Gym Ground PokeMart, Gym Ground Road A-D, Gym Ground House A-E, Gym Ground Blacksmith, Gym Ground Church, Gym Ground Day Care, Gym Ground TCG Shop, Gym Ground Farm A-B, Gym Berry A-B, Gym Ground Clutter A-E and Gym Ground Light A-B.
- Added Fire Gym Town structures: Gym Fire, Gym Fire Town Center A-B, Gym Fire PokeCenter, Gym Fire PokeMart, Gym Figure Road A-D, Gym Fire House A-E, Gym Fire Blacksmith, Gym Fire Church, Gym Fire Day Care, Gym Fire TCG Shop, Gym Fire Farm A-B, Gym Fire Berry A-B, Gym Clutter A-E and Gym Fire Light A-B.
- Added Valentine's Day Swanna Boat.
- Updated Dos Shrine A, Den Swamp B, Graveyard A, Graveyard Church A-B, Gym Grass, Gym Grass PokeCenter, Gym Grass PokeMart, Gym Grass House A-E and Gym Grass Blacksmith.

- Added Frigibax, Arctibax, Baxcalibur and Orthworm voices.
- Updated Necrozma, Reshiram and Wooper voices.

- Added Ground Gym Town spawning to Badland biomes.
- Added Fire Gym Town spawning to Nether biomes.
- Added Swanna Boat spawning to Ocean biomes.
- Added Orthworm to Arid night-time spawns.
- Added Wiglett and Wugtrio to Beaches, Lukewarm Ocean and Warm Ocean spawns.
- Added Tadbulb and Bellibolt to River, Lakes and Swamp spawns.
- Added Frigibax, Arcitbax and Baxcalibur to Freezing Forests and Freezing Mountains night-time spawns and Underground spawns.

- Updated Starter screen welcome message.
- Removed unnecessary mega-evolution palette missing textures.
- Updated Black Cash Register recipe to match the rest of the dyed Cash Register recipes.
- Removed individual color-specific or specie-specific Apricorn and Berry Logs, unifying them into a single Berry Log and Apricorn Log, decreasing game load time.
- Updated Apricorn Log plank recipe to yield Yellow Berry Planks.
- Updated Berry Log plank recipe to yield Green Berry Planks.
- Updated Red Berry Planks, Purple Berry Planks, Pink Berry Planks and Blue Berry Planks recipe to a staining recipe using Yellow Berry Planks and their respective dyes.
- Removed placeholder blocks with blockstate variations, decreasing game load time.
- Updated Wireframe debug mode keybinds to [F3+J].
- Updated PokéStop model to Valentine variant.
- Updated Love Koffing and Weezing to use the Valentine Love Ball catch system.

- Added Model Predicate system for improved loading of multi-model Pokémon.
- Updated flyingModelLocator to the new system, collapsing it with modelLocator into modelLocators. This new system will allow for an infinite, ordered list of possible models for a single Pokémon instead of limiting it to Flying-only modes.
- Added a backward compatibility system to enable the loading of stat files with flyingModelLocator.
- Added pixelmon:flying, pixelmon:battle, pixelmon:riding and pixelmon:always as starting model predicates.

- [15596](tracker.php?p=2&t=15596) Fixed badgeList error on PixelmonItems#getBadgeList(Element type).
- [18018](tracker.php?p=2&t=18018) Fixed Shulker Box-stored items failing to display in the battle UI under Bag.
- [19566](tracker.php?p=2&t=19566) Fixed missing sound event errors on console startup, failing to load sounds for Popplio, Terrakion, Zeraora and Eevee.
- [19802](tracker.php?p=2&t=19802) Fixed Shopkeepers failing to yield items if player inventory is full.
- [19807](tracker.php?p=2&t=19807) Fixed client crash when walking through Pixelmon Grass.
- [19820](tracker.php?p=2&t=19820) Fixed Hammer area damage permanently deleting items stored in destroyed Shulker Boxes.
- [19900](tracker.php?p=2&t=19900) Fixed DittoxDitto breeding results displaying improperly in the Day Care UI.
- [19979](https://www.pixelmonmod.com/tracker.php?p=2&t=19979) Fixed Cooking Pots failing to reduce durability of Flint and Steel.
- [19982](https://www.pixelmonmod.com/tracker.php?p=2&t=19982) Fixed Az' Floette failing to spawn due to a typo in its spawning file.
- [19986](tracker.php?p=2&t=19986) Fixed marks failing to be unequipped from the player's inventory UI.
- Fixed Articuno Galar and Moltres Galar using their idle animation while in flight.
- Fixed Clodsire invalid stat entries for EV yield and Gmax factor.
- Fixed Gulpin dropping incorrectly Beetroot.
- Fixed Mount Lanakila raid dens failing to activate with a Wishing Piece.
- Fixed Paldean Wooper dropping all Wooper drops instead of the Paldean-inspired ones only.
- Fixed Porygon-Z failing to drop Silicon properly.
- Fixed Water Stone Ore spawning surrounded in sand without a water source directly above it.
- Fixed Yellow Day Care using an incorrectly colored sprite.
- Fixed /dexcheck displaying numbers by decimals in percentage of completion.
- Fixed /hatch command resulting in a doubled feedback message.
- Fixed a client crash when rendering item sprites and PokéBalls.
- Fixed client crash when loading high density NPC populations on login.
- Fixed client crash when swapping empty party slots in the Day Care menu.
- Fixed console errors caused by an attempt load of the ParticleManager.
- Fixed console flooding when a player attempts to fly on a Pokémon with incorrect flying parameters.
- Fixed duplicated entries for Palkia spawning locations.
- Fixed duplicated items displaying when searching a specific PokéBall or PokéBall component in the creative inventory.
- Fixed duplicated move entries for Mr Mime Galarian, Mew and Celebi.
- Fixed emissive, transparent models failing to render properly, affecting Nihilego.
- Fixed erroneous entry for Earthquake as an Egg move for Paldean Wooper.
- Fixed missing Paldean tag to Clodsire.
- Fixed missing cave_air entry as a valid spawning location, causing /checkspawns to incorrectly list possible spawns.
- Fixed missing move entry of Amnesia to Clodsire's moveset.
- Fixed naturally spawned raid dens failing to activate after the first activation.
- Fixed quest items failing to be stackable up to 64 count.
- Fixed raid dens activating continuously if daylight cycle is switched off.
- Fixed raid dens failing to activate when summoned via the Raid Den Spawner.
- Fixed the wrongful logging of ENCODING and DECODING Pixelmon packet messages if Pixelmon#logPackets is false.

- [18018](tracker.php?p=2&t=18018) Fixed battle Bag options not detecting Shulker Box content, including Pokéballs.
- [18768](tracker.php?p=2&t=18768) Fixed missing AI on Pokémon spawns after fleeing and being fished out.
- [19783](tracker.php?p=2&t=19783) Fixed Charizard Mega Y transforming into Charizard Mega X when switching back in.
- [19785](tracker.php?p=2&t=19785) Fixed Mewtwo Mega Y transforming into Mewtwo Mega X when switching back in.
- [19809](tracker.php?p=2&t=19809) Fixed client crash on SkyBattleCause exception from optionals.
- Fixed Jaboca and Rowap Berries not damaging the opponent if you use False Swipe in the same turn.
- Fixed Pokémon being unable to steal (Thief, Trick, Switcheroo) items that aren't classified as held items.
- Fixed non-attack damage sources failing to correctly trigger phase changes for Revenant Pokémon.

- Updated Korean translation.
- Updated Traditional Chinese translation.
- Updated Spanish translation.

- Added BattleItemScanner, a one-stop-shop for finding, collecting, and consuming battle items for battles.
- New item scanners can be registered via this class, allowing modders to add their own item containers for use in battles, like how Poké Bags and Shulker Boxes can be used. BattleItemScanner.InventoryScanner[b][i] is the class used for this purpose, and it takes various functional interfaces for each of the functions required.
- Added an identifier string to [b][i]BagItemEvent
, for determining the source of the search request. By default, there are two types, normal and end of raid. These identifiers can be found in BagItemEvent.Identifiers.
- BagItemEvent.SelectItem.Pre now has a method to set the item selected. This will be null if virtual items were sent via BagItemEvent.CollectItems - in order for a virtual item to function, it must be set again here. This is to avoid the server just believing what the client is telling it.
- Added a new event SpawnPixelmonEntityForBattleEvent.
- Added PixelmonTradeEvent.Pre, PixelmonTradeEvent.Post for better precise control over the event, adding getters for variables.
- Added NPCTraderEvent.ShowTrade.Pre, NPCTraderEvent.ShowTrade.Post, NPCTraderEvent.AcceptTrade.Pre and NPCTraderEvent.AcceptTrade.Post for improvement on Trader NPC display and handling.
- Added NPCTutorEvent.CollectLearnableMoves.Pre and NPCTutorEvent.CollectLearnableMoves.Post.
- Added TeachMoveEvent.CanLearnMove, TeachMoveEvent.MoveLearnt.Pre and TeachMoveEvent.MoveLearnt.Post.
- Updated PokemonBuilder#copy to properly copy egg status of a Pokémon.
- Added option to prevent the [ESC] key from closing the Dialog screen.
- Added SpawnPixelmonEntityForBattleEvent to decouple battle starting logic from the PixelmonEntity class.
- Cancelling SpawnPixelmonEntityForBattleEvent allows you to start /pokebattle without spawning any entities, throw a Pokéball and start a battle without spawning entities, throw a Pokéball at an NPC and start a battle without spawning entities, start a PvP battle without spawning either player's Pokémon and start a raid battle without spawning any entities.
- Added several duplicate methods which use the Pokémon object or other objects instead of PixelmonEntity.
- Deprecated Pokemon#getPixelmonWrapper, replaced by Pokemon#getPixelmonWrapperFromPlayerEntity.
- Deprecated PartyStorage#getFirstAblePokemon, replaced by PartyStorage#getFirstBattleReadyPokemon().
- Extended BattleQuery#BattleQuery, BattleQueryPlayer#BattleQueryPlayer, PlayerParticipant#PlayerParticipant and PlayerParticipant#initialize.
- Extended RaidPixelmonParticipant#RaidPixelmonParticipant, RaidGovernor#init and RaidSettings#init.
- Extended WildPixelmonParticipant#WildPixelmonParticipant and WildPixelmonParticipant#init.

"I already did a flight related pun this week :("

- The minimum Forge version for this update is 36.2.34 and is required for a Pixelmon client to run.

- Added a new keybind, '[C]', to lower height while flying.
- Added drops for Paldean Wooper.
- Added drops for Clodsire.

- Added Paldean Wooper.
- Added Clodsire.

- Updated Pirate Boat.
- Updated Hauler Boat.

- Added sounds for Delibird, Beldum, Metang, Golett, Larvesta, Volcarona, Reshiram, Zekrom, Corviknight, Orbeetle, Sprigatito, Floragato, Meowscarada, Fuecoco, Crocalor, Skeledirge, Quaxly, Quaxwell, Quaquaval, Eevee, Shellos, Gastrodon, Arceus, Keldeo and Goomy.
- Updated sounds for Golurk, Guzzlord, Hariyama, Metagross and Registeel.

- Added Paldean Wooper to Swamps on Land and Water at night and dawn.
- Added Clodsire to Swamps on Land and Water at night and dawn.
- Added Magikarp fishing for any Rod in Water.
- Added Magikarp-Roasted fishing for any Rod in lava.

- Updated flying mechanics for user-friendliness. Space-bar input is now slower, and allows the player to slightly hover forward.
- Flying Pokémon mounts now have datapackable "charges" whilst in the air, preventing infinite flying.
- The duration of hover can now be changed in the datapack section of the flying parameters per specie.
- Continuous forward motion can be toggled in the species JSONs, allowing mounts to be hovers or true flyers.
- The gravity drop per-tick can be modified in the species JSONs, allowing the fine-tuning of the fly 'weight'.
- Updated flying parameters for Charizard, Aerodactyl, Dragonite, Skarmory, Altaria, Mewtwo, Metagross, Salamence, Garchomp, Togekiss, Arceus, Latias, Latios, Braviary, Talonflame, Yveltal, Decidueye, Necrozma, Frosmoth, Corviknight, Eternatus and more.
- Updated flying parameters for alternative flying for Beedrill, Golbat, Venomoth, Aerodactyl, Articuno, Zapdos, Moltres, Dragonite, Mewtwo, Noctowl, Crobat, Xatu, Scizor, Skarmory, Lugia, Ho-Oh, Altaria, Claydol, Tropius, Salamence, Metagross, Latias, Latios and Rayquaza.
- Removed obsolete config options displaying freshly generated config files, including breeding-ticks, num-breeding-levels, use-breeding-environment, allow-anvil-autoreloading, flying-speed-limit, use-smooth-shading-on-pokeball, den-spawn-chance-modifier, den-additional-spawn-chance-on-liquid, boss-level-increases and boss-candy-chances. These settings have been replaced by datapack usage.
- Added dye-based recipes for Blue Cash Register, Brown Cash Register, Cyan Cash Register, Gray Cash Register, Green Cash Register, Light Blue Cash Register, Light Gray Cash Register, Lime Cash Register, Magenta Cash Register, Orange Cash Register, Pink Cash Register, Purple Cash Register, Red Cash Register, White Cash Register and Yellow Cash Register.
- Updated den-respawn-chance in raids.yml from 0.25 to 0.40, allowing raid dens to respawn quicker.

- Added mountedFlyingParameters stat section to species, allowing the edit of flying mount parameters per specie.
- Added flying_stamina_charges, allowing the edit of the duration of flight per specie.
- Added continuous_forward_motion and continuous_forward_motion_ticks, allowing the edit of the forward momentum of flight per specie.

- 19379 Fixed Guzzlord mounting position being too low, causing the player to suffocate.
- 19558 Fixed Sinistea's missing sprite when using its Christmas palette.
- 19728 Fixed Basculegion's nameplate displaying far too high above its model.
- 19749 Fixed Hidden Cubes displaying as translucent instead of transparent.
- 19838 Fixed an incompatibility with Custom Players Models caused by items rendered on the player model, including Dynamax Bands and Mega Rings.
- 19851 Fixed Urshifu Scrolls of Water and Darkness failing to display with transparency when placed in the world.
- 19892 Fixed a client crash caused by breaking an SMD (smooth) block post-rendering.
- 19893 Fixed client rendering breaking graphically when a Mega Ring is equipped.
- 19901 Fixed naturally spawning raid dens taking several days to activate for the first time
- Fixed Day Care allowing the breeding of fainted Pokémon in the party.
- Fixed Gracidea flowers failing to spawn naturally in Flower Forests.
- Fixed NPCs appearing with broken textures.
- Fixed Shaymin-Sky learning no moves separately from its Land form.
- Fixed Sinistea-Christmas displaying with shiny particles despite not being a shiny.
- Fixed /pokebomb crashing the server when using a species name.
- Fixed a crash caused by editing an NPC with a texture, or model, that had failed to load.
- Fixed a server crash caused by Drowned world boss handling.
- Fixed a server crash caused by exploding, through TNT, a Fossil Display.
- Fixed bound box for Picket Fence, preventing animals and players alike from phasing through it.
- Fixed broken Tumblestones from breaking adjacent Tumblestones block when destroyed with a hammer.
- Fixed client rendering breaking graphically when a gym sign is nearby
- Fixed clocks facing the opposite direction when placed against a block
- Fixed command-generated Ultra Necrozma displaying its language key instead of its form name.
- Fixed fainted Pokémon not counting towards the total party size when viewing it in Day Care.
- Fixed item fishing failing in Water and Lava where no Pokémon could be fished out.
- Fixed the rotation of the Picket Fence, it is no longer upside down.

- Fixed missing Dire Claw's battle messages when inflicting Drowsy status effect.

- Updated Korean translation.
- Updated Traditional Chinese translation.

- PokemonBuilder#iv now does not throw exceptions when trying to use it.
- PokemonBuilder#ev now does not throw exceptions when trying to use it.
- Added PokemonBuilder#gigantamaxFactor.
- Added ControlledMovementLogic interface for defining how the mounted flying controls should work
- Added PixelmonRegistry with MOVEMENT_LOGIC_TYPES_REGISTRY for registering custom ControlledMovementLogic
- For an example of how to make a custom implementation of the movement logic please see the MountedFlyingParameters class and Forge documentation for RegistryEvent

"Pretty Ribbons and Wings..."

- The minimum Forge version for this update is 36.2.34 and is required for a Pixelmon client to run.


- 17947 Add spawn location settings to Pixelmon Spawners.
- 17947 Added aggression settings to Pixelmon Spawners.
- Added 'debug' dimension type (only accessible if enabled via datapack).
- Added Torch Song.
- Added Aqua Cutter.
- Added Aqua Step.
- Added Flower Trick.
- Added Psyshield Bash move.
- Added Triple Arrows move (Generation 9 version).
- Added Victory Dance move (Generation 9 version).
- Added 2022 Winter cosmetic for all users in Discord for the month of December, Pixelmon Forum linking required.
- Added Cosmetics (Card Backs and Coins) to TCG Trader, configurable in the TCG Config, enabled by default.

- Added Floragato.
- Added Meowscarada.
- Added Crocalor.
- Added Skeledirge.
- Added Quaxwell.
- Added Quaquaval.

- Added 3 decoration blocks with ~3000 combinations (with directionality) for map makers to use for resource packs if adding "custom blocks".

- Updated TCG Shops: Desert A, Desert B, Plains A, Plains B, Savanna A, Savanna B, Snowy A, Snowy B, Taiga A, Taiga B and Grass Gym.
- Updated Battle Arena NPCs to 'Stand Still' aggression level instead of 'Still and Engage'.

- Added Ultra Gingko, Ultra Elm and Ultra Jungle logs and leaves to the seesSkyException spawning category.
- Added Poké Sand and its corners to the beach and land spawning category.
- Added Ultra Jungle Vine, Ultra Forest Flower, Ultra Forest Fallen Leaves to the air spawning category.
- Added all Apricorn, Ultra Gingko, Ultra Elm and Ultra Jungle logs and leaves to the treeTop spawning category.
- Added all Temple-derived blocks, all Braille blocks, all Unown Blocks, all Berry Wood-derived blocks, Ultra Gingko, Ultra Elm and Ultra Jungle-derived blocks to the structure spawning category.

- Aggressively improved memory allocation for clients.
- Improved allocation in spawning thread.
- Added wireframe "debug" mode using F3 + W.
- Added wireframe setting in the graphics.yml config.
- Added F3 + O key bind to toggle animations off.
- Added animation toggle in graphics.yml.
- Improved SMD rendering performance.
- Essence Jars are now craftable (4 Glass, 1 Crystal Block, 1 Wooden Slab, with Dye in the middle, or Glowstone Dust for a random color).
- Updated the trading cap of available trades after first purchase from the TCG Trader to 12, configurable.
- Added ability to give Essence Jars through /tcg give.
- Players can now zoom in and out on the Pokémon model display in the Pokédex and Fishing Log.
- Stantler will now learn Psyshield Bash as an egg move and after evolving into Wyrdeer.
- Updated Hisuian Decidueye's level-up movepool.
- Hisuian Decidueye will learn Triple Arrows after evolving from Dartrix.
- Hisuian Lilligant will learn Victory Dance after evolving from Petilil.
- Updated Raging Fury to its Generation 9 mechanics.
- Suicune can now walk and run on water.
- Drowned boss types now add 20 levels on top of the party lead instead of multiplying the level.
- Extended Enter the Drowned World quest availability until end of January.
- Added 3D Poké Ball in-hand rendering as an option in graphic.yml, defaults false.
- Updated Pixelmon Oven.
- Updated Pixelmon Workplace (Dark and Light).
- Updated Bagon assets.
- Updated Duraludon assets.
- Added an 'Ancient' version of moves with the Obscured status effect. No Pokémon by default learns these moves through level-up.
- Updated Lunar Blessing and Shelter to their Generation 9 effect.
- Updated Cresselia to learn Lunar Blessing at level 72.
- Updated Goomy to learn Shelter upon evolving into Sliggoo.
- Updated Goodra to include Shelter in its level 1 movepool.
- Updated raid catch screen.
- Updated raids to no longer give experience by default.
- Updated and vastly improved shiny particle visibility.
- Updated Dancer (ability) so that it may copy Aqua Step (move).
- Updated PokeStop, PokeChest, PokeDrops and ShopItems to properly use NBT data.

- Added ribbons to datapacks.
- Updated ribbons to store the person that owned the Pokémon when given.
- Updated ribbons to store the time they were given to the Pokémon.
- Updated ribbons to override palettes.
- Added optional suffixes and prefixes to ribbons.
- Added warning for invalid TR move loading in species jsons.

- 17661 Adjust Pokemon photos to be centered, a smaller size, and protrude from their painting less.
- 17661 Make the Painting Frames exactly 2x2 blocks in size.
- 18109 Fixed gigantamax clouds displaying underneath the in-battle raid den.
- 18825 Fixed Pokémon on head display slot not updating properly when switching between palettes and forms of the same Pokémon specie.
- 18959 Fixed Daycare GUI displaying in preview whether or not the child will be shiny before hatching.
- 19050 Fixed invalid moves crashing the player after creating a MissingNo when force-generated through move spec.
- 19217 Fixed being unable to breed Runerigus with an Everstone to obtain Galarian Yamask.
- 19286 Fixed super-flat worlds ignoring the /spawning off command.
- 19318 Fixed online palette Cinderace sprite.
- 19401 Fixed client crash from an NPC with an invalid custom resource skin.
- 19433 Fixed Clear and Tidal bells failing to flash or shine during its ringing phase.
- 19565 Fixed all ball lid recipes to output the new lids instead of old ones.
- 19565 Fixes PokéBall lids being unusable in recipes.
- 19573 Fixed AI not resetting, fixing Forage, Rock Smash and many other targetable external moves.
- 19577 Fixed Essence Jars being stackable.
- 19580 Fixed missing Ultra Gingko derived crafting recipes.
- 19596 Fixed Essence Jars missing crafting recipes.
- 19673 Fixed PokéGift block model rendering invisible.
- 19759 Fixed dens activating repeatedly, ignoring the Minecraft day delay.
- 19772 Fixed keepinventory gamerule failing to apply to a player's stored lures.
- 19777 Fixed Scyther failing to properly drop Miracle Seeds.
- Fixed Defeat Drowned Pokemon quest not counting the defeat of a Drowned Lugia for its quest progression.
- Fixed Fishing Rods using standard appraisal when they've not been appraised.
- Fixed Fly and Teleport (external moves) sending players into the void when used without having used a Poké Healer.
- Fixed Jade Cliffs being spelt improperly in spawning file for Biomes O Plenty.
- Fixed Poké Balls with 0% break chance displaying their respective lids in creative inventory.
- Fixed Pokéballs and Pokéball Lids not displaying when searched in creative inventory.
- Fixed Pokémon losing moves not in their level-up movepool after evolving.
- Fixed Pokémon with a different model for each gender being incapable of using the shiny spec.
- Fixed Rod recipes not using the new NBT item IDs for Pokéballs.
- Fixed Shedinja failing to be obtained when evolving Nincada.
- Fixed TCG cards not displaying when searched in creative inventory.
- Fixed TCG command auto-completion.
- Fixed Tower of Darkness and Tower of Water spawning on top of eachother.
- Fixed /learnmove command not accepting move names that have a space in their name.
- Fixed /pokegive not giving an error when misspelling the species name while using the shiny spec.
- Fixed isHisuian() not identifying Leaden Ball, Gigaton Ball, Feather Ball, Wing Ball, Jet Ball and Origin Ball, failing Hisui the catch system.
- Fixed a client crash caused by an index out of bounds exception related to an egg's ability slot.
- Fixed a client crash caused by power increase of an Incenser.
- Fixed a crash when changing worlds and throwing out a Poké Ball, causing the thrower to be null.
- Fixed a server crash caused by resetting the moveset of a Pokémon.
- Fixed break particles when destroying a Pixelmon oven.
- Fixed catch failure on raids when leveling and learning a move upon raid end.
- Fixed displaying the same chat message twice when you can't pay to teach a 4th move.
- Fixed duplicate UUID console log spam due to a spawning bug.
- Fixed dyed and filled Essence Jars not displaying when searched in creative inventory.
- Fixed empty Pokéballs breaking on Pokémon and breaking during capture before capture attempt is made.
- Fixed entries for Light Ball and Smoke Ball in pokechestdrops.json.
- Fixed failed catches in the raid screen when completing with a full party.
- Fixed global TM moves not including generational TM moves, having commands like /learnmove fail.
- Fixed missing Ultra Elm derived crafting recipes.
- Fixed missing Ultra Jungle derived crafting recipes.
- Fixed non-default form Pokémon appearing with only 1 move when spawned in or generated through commands.
- Fixed shiny particles failing to scale according to the model.
- Fixed the Oven not dropping itself when destroyed.
- Fixed the [Cancel] and [Confirm] buttons rendering at the wrong time in the Daycare UI.
- Fixed the [Next] and [Previous] buttons displaying as a hover in the Daycare UI when the button itself does not exist.
- Fixed water-based Pokémon zooming across the land after beaching themselves.

- 17635 Fixed wild Pokémon surviving on 0%, causing battles to hang until /endbattle is used.
- 18397 Fixed Ice Face failing if it was busted in a previous battle.
- 18397 Fixed Ice Face regenerating as soon as a new hailstorm is created, instead of only at the end of turns.
- 18454 18662 18131 Fixed client crash when hovering over moves while in battle due to cursor textures not being found.
- 19561 Fixed Zorua and Zoroark using the incorrect sprite when disguising as a non-default palette of the targeted Pokémon.
- 19590 Fixed Pokémon taking recoil damage despite failing to attack due to taking confusion damage.
- 19593 Fixed raids failing to count until turn 10 before vanishing.
- 19741 Fixed the client displaying, while in battle, a Pokémon in the party as many times as that Pokémon leveled up.
- Fixed Focus Sashes not working when held by a Revenant Pokémon.
- Fixed Hold Back activating Revenant phases.
- Fixed Mega Pokémon having the incorrect ability when switched back in.
- Fixed Neutralizing Gas not activating Revenant on switching out or fainting.
- Fixed Obscured decreasing evasion in the same turn it increased evasion.
- Fixed Obscured lasting only 1 turn instead of the 3 to 4 turns depending on the move used.
- Fixed Pokémon that switched forms in battle forgetting moves if the moves were not from their learnset.
- Fixed Revenant Pokémon holding a Focus Sash not reviving as per its ability.
- Fixed Revenant Pokémon taking recoil damage before health damage when affected on the same turn.
- Fixed Revenant battles not resetting properly after battle end.
- Fixed in-battle item usage dupe.
- Fixed raids breaking rendering when a client is using Optifine shaders.

- Updated Korean translation.
- Updated Traditional Chinese translation.
- Updated Simplified Chinese translation.
- Updated Spanish translation.
- Updated German translation.

- Added AbstractClientEntity#setWireFrame.
- Added AbstractClientEntity#isWireFrame.
- Added RibbonEvent.
- Added RibbonEvent.SetDisplayedRibbon with Pre and Post.
- Added RibbonEvent.ReceiveRibbon with Pre and Post.
- Added RibbonEvent.RemoveRibbon with Pre and Post.
Hello everyone reading this. I am Isi, representing The Pixelmon Mod, with a statement for our own community and the broader modding/Minecraft community as a whole.

To read this post in document form, go to here (Pixelmon Storage) or here (Google Drive)

The Pixelmon Mod will no longer be supporting, recommending or working with the Magma Team, a Spigot-Forge hybrid server API, for having compromised the security of modded communities online. While this post first intends to disseminate information regarding this event, we hope they explain why Magma’s breach of trust goes beyond PixelmonMod.

On the morning of December 10th, 2021, Magma’s developer TheDevMinerTV exploited the Log4j RCE (Remote Code Execution) vulnerability known as Log4Shell. (You can read about how this affects Minecraft at this Mojang blog post. We confirmed that TheDevMinerTV was actively teaching and exploiting the Log4Shell vulnerability against public servers, while their project lead, Hexeption, watched. We have successfully confirmed that 26 servers, and a number of clients ranging from vanilla to modded, were targeted with several payloads including shutdown code. The stream in question was hosted in Magma’s very own public voice channels, which showcased the malicious consequences of TheDevMinerTV’s actions on servers and clients alike.

Upon discovering the source of the attacks, affected public servers and our own staff contacted moderation members of the Magma project to get their help in protecting their servers against the Log4Shell vulnerability. Indeed, chat logs confirmed that they raised the alarm in Magma’s own discord. However, despite the severity of their developer’s actions, no Magma member intervened to stop the attacks. This allowed TheDevMinerTV to continue under the eyes of their project’s senior members.

After our community’s reports of the attacks, Magma silently removed TheDevMinerTV’s development rank from their Discord. Their Discord admin, Kwright02, deleted all messages of our members reporting these events, clearing their Discord of any evidence this ever happened. Thanks to that, TheDevMinerTV’s account remains active on their Discord, providing support for unsuspecting members of the modded community.

At our request, a meeting was arranged to discuss the events of December 10th. Sadly, Hexeption did not attend the meeting, leaving my Community Manager waiting almost 2 hours with no explanation; instead sending junior members of their team without any knowledge of the situation. The present Magma moderators that attended did commit to gathering information on the actions of their developer. Several days later, we were provided with a repository of the code executed by TheDevMinerTV.

Thanks to the log contributions of the community, we were able to determine that Magma delivered false information. Indeed, the executed code provided did not match the logs of the victim servers, making it impossible to ascertain the scope of the Log4Shell damage. Furthermore, affected servers allowed us to confirm that TheDevMinerTV used both their own Minecraft account, as well as alts to continuously attack servers. Further timeline analysis allowed us to prove that TheDevMinerTV’s teachings inspired others to attack more servers, endlessly increasing the damages caused by Magma’s negligence.

Upon disproving the evidence provided by Magma, we contacted Hexeption one last time, on December 13th, 2021 to discuss the way forward. Having contacted the affected servers within our community, it was within our interest to understand Magma’s response to the events.

After failing to stop Log4Shell attacks, deleting chat logs, providing false evidence and keeping silent and inactive in the face of a grave action by their team, Magma’s lead, Hexeption, clarified that they “don’t have control over the actions of [their] staff team”. In fact, TheDevMiner’s actions were “done in [their] free time”, and therefore, our issue would be “an issue with DevMiner”. For all intents and purposes, Magma feels as though they should not be held responsible for TheDevMiner’s actions.

The Pixelmon Mod feels differently. We have learned that modded projects such as ours become an integral part of the Minecraft community. We recognize that the actions of our teams reflect on the modded community at large - our successes instill trust in players, and pave the way for years of shared growth. Yet our failures are just as important. Magma’s failure to address the actions of their developer, when witnessed by their project leader and admins, affects far beyond those 26 targeted servers. After meeting our partners and contacts to inform them of the situation, we felt this post was needed to clarify and inform others beyond our reach.

Magma’s negligence breaches the trust users place in modded projects like ours, and many more. We will not accept their inconsiderate carelessness in the face of dangerous RCE exploits within Minecraft. The security of our community is non-negotiable, and we will hold them responsible even when they won’t. In light of this, we will not be recommending Magma as a server API, and we will urge our readers to do the same.

This all said, I would like to note that Magma’s code is not an issue here. It is open source, readable and anyone with experience can tell you it is safe. Like the broader modding community, most mods/codebases can be considered trustworthy thanks to the efforts of the modding community as a whole. Software accountability is a part of that. Open-source projects are generally a safe way to ensure the code/software you are using is safe. That said, it does come down to the people compiling that code. You may not know how to review that code yourself, and because of that you will have to trust the people maintaining that project that the binaries built for release are exactly as displayed in the open source repository. Quoted from Lex, the project manager for Minecraft Forge, “You have to have a level of trust in the developers to not do something malicious in the depths of the code, or out of view in the build service.” This is an issue with the human factor; it took one person to take malicious steps and missteps from those around them that in the opinion of my staff and I, has irreparably damaged Magma's reputation.
With that I would remind software developers in this community that you should be careful who represents your project, who you give access to your code/release structure. Do due diligence in your hiring practices, and make sure you have a system of accountability in place.

I would like to thank my own community, the staff team of Aternos, members of Minecraft Forge, the staff of MMD, our partner Nodecraft, Ryan at ATLauncher and Jared from CraftTweaker for their support, meeting with us on this issue to discuss, disseminate and make clear the issue at hand and how we would address it going forward.

- Isi