Changelog
Additions:
- Added the Gimmighoul Coin.
- Added a display in the summary page to show how many coins you've given Gimmighoul.
- Added new recipe types: pixelmon:crafting_shaped_tag, pixelmon:shapeless_tag and pixelmon:crafting_poke_ball.
- Added Slippery Ice Block.
- Added Slippery Ice Block recipe.
Rework:
- Completely reworked the Pokémon Editor screen, which is now revamped to use the same UI as the new NPC Editor. There are currently 2 pages, the first with 2 tabs, the 2nd inner page with 5 tabs. Most of the functionality is the same, as most of the changes are new features that allow for editing values of the Pokémon that could not previously be edited with the Pokémon Editor. -Using the Pokémon Editor opens up the Pokémon Team tab, with an additional tab as the PokéPaste tab.
Pokémon:
- Added Maschiff.
- Added Mabosstiff.
- Added Brute Bonnet.
- Added Iron Jugulis.
- Added Iron Treads.
- Added Iron Hands.
- Added Iron Valiant.
- Added Farigiraf.
Moves, Battle Items and Abilities:
- Added new tests.
Spawning:
- Wild Pokémon encounters after cooking curry now function as in the mainline games
- Several new spawning conditions have been added so that different flavors can have distinct spawns.
- Most Pokémon species can now be found via curry in their normal spawn biomes, though rarities have been adjusted from standard spawning values.
- Costumed Pikachu now have a proper method of obtainment, with each form associated with a different curry flavor: Rockstar - Spicy Curry, Belle - Dry Curry, Popstar - Sweet Curry, Ph D. - Bitter Curry, and Libre - Sour Curry.
Datapack:
- Added PreventRedirection move effect to allow datapack moves to ignore redirection effects.
- Added additional checks to prevent datapacks overlapping between servers and worlds.
- Added CheckedStrikes effect to replace PopulationBomb, TripleAxel, and TripleKick.
- Added individual move flags, "AdjacentAll", "OtherSide", "YourSide", "BothSides", "All" and "1 Random".
- Updated Magic Coat and Magic Bounce to use datapackable move flags "reflectable".
- Updated moving riding offsets so they can now be used for land-based movement.
- Added the
pixelmon:open_trade
interaction result, which opens the trade UI with the two specs specified. - Added the
pixelmon:relearn_move
interaction result. (An example can be found in the move relearner NPC preset.) - Added
pixelmon:appraise_rod
interaction result. (An example can be found in the old_fisherman NPC preset.) - Added
pixelmon:open_shop
interaction result. (An example can be found in shopkeeper NPC presets.) - Added
pixelmon:open_dialogue
interaction result (An example can be found in shopkeeper NPC presets.) - Added
pixelmon:open_paged_dialogue
interaction result (An example can be found in chatting NPC presets.) - Added
pixelmon:close_dialogue
interaction event (An example can be found in shopkeeper NPC presets.) - Added
pixelmon:close_shop
interaction event - Added
pixelmon:shop_purchase_item
interaction event - Added
pixelmon:shop_sell_item
interaction event: - Added the
pixelmon:tutor_move
interaction result. (An example can be found in the move tutor NPC presets.) - Added a confirmation button to the party select screen when the desired amount of Pokémon are selected.
- Added a right-click interaction to the party select screen to allow the user to open the poke checker screen when deciding which Pokémon to select.
- Removed the old trade list configuration as it's now in the interaction result config.
- Added the
GimmighoulCoinCondition
Evolution Condition.
Changes:
- Modified PokéGifts to provide a copy of the Pokémon, preventing linking issues.
- Added Dynamax Level, Hyper Training, Egg Steps, Temp Ability, extra Stats, bonus Stats, persistent Data and Ribbons to PokemonBuilder.
- Temporary forms no longer linger on NPCs if the battle is aborted mid-evolution.
- Removed the Picket Fence.
- Updated Raid Dens to give conduit effects, allowing water-breathing.
- Added a party selector to NPC Presets.
- Updated NPCs where left-clicking an NPC with a Pokémon Editor now allows you to edit the party of said NPC.
- Updated the order of presets on the NPC preset screen to be ordered alphabetically.
- Updated the searching of NPC presets to use contain checks rather than startsWith.
- Improved async loading and saving so concurrency issues don't cause data overwriting.
- Updated the opening --NPC Creator Presets-- screen of the NPC Editor to fit larger preset file names and be centered to the screen even at full screen window sizes.
- Updated the
pixelmon:right_click
event to be the default (instead of left-click) for the event of an NPC's Interaction. - Updated the
pixelmon:true
condition to be the default condition for the condition of an NPC's Interaction. - Changed the chat message that notifies a player that their NPC preset was saved to be formatted identical to the screenshot chat message
- Fixed it so that the result of an NPC's Interaction will not execute when the Pokémon Editor is held in the hand the player used to interact with the NPC.
- The title data and author data of the PokéPaste that is automatically made for an NPC Preset were switched and that has been fixed.
- Fixed the missing empty line between different Pokémon when creating the PokéPaste.
- Updated the Illuminate ability to Generation 9 effect.
Keybinds:
- Added a new Pixelmon section for keybinds, splitting all mod keybinds into Pixelmon, Pixelmon Battles, and Pixelmon PC.
- Added a visual indicator as to whether the player's cursor is hovering over an item in the keybind menu.
- Added several keybinds to make it possible to navigate a battle screen without requiring a mouse.
Config:
- In the Graphics Config there is now a
pokemonEditorExtraColorModeEnabled
value which is by default set totrue
. Turning this off will remove the extra colors added to some of the widgets. - Alternatively, you can press F1 to disable it temporarily.
- What Extra Color Mode affects:
- The text of the Current HP slider changes between green, yellow, and red, depending on the Pokémon's current HP relative to it's max HP.
- The Dynamax slider follows the same color scheme as seen in a Pokémon's Summary page. The text is white at a Dynamax level of 0, and changes between cyan at a Dynamax level of 1 up to hot pink at a Dynamax level of 10.
- The text for all of the Pokémon's moves are change to the same color as the type they are (i.e. Fire Blast becomes orange, Water Pulse becomes blue, etc.)
- The text in the Multi-Line Edit Box on the Import/Export tabs will become colored, similar to on the https://pokepast.es/ website.
- The stats that the Pokémon's nature affects are colored blue for the increased stat and red for the decreased stat.
- The text of the species of the Pokémon is set to the color of the Pokémon's primary type.
curry-encounter-chance
an array of values representing the chance of an encounter after cooking curry of each class. This is a 1/X chancecurry-battle
whether a curry encounter should start a battle. If false, the Pokémon will directly join the player's party instead.curry-nature-sync
whether a curry encounter Pokémon's nature will match the flavor of the curry used to spawn it.curry-ball-ordered-types
a list of PokéBall types that curry encounters can use if joining the party directly. Balls higher on this list will be used first if multiple are available.iv-boost
whether higher rated curry will provide an IV boost to encountered Pokémoncurry-rating-cutoffs
the values used to determine different curry classes. The theoretical max is 173, though 150 is the highest reasonably expected.
Fixes:
- Fixed spawning threads locking up sometimes (randomly) from getChunk calls being made from a non-server thread.
- Fixed checkspawns block requirement for Headbutt from "anything but wool" to "logs".
- Fixed the screen changing too quickly, causing a NPE in the findConnection methods.
- 21556 Fixed PokéGifts' contents and settings not persisting across launches.
- 17132 Fixed persistent data compound tag being lost whenever the Pokémon Editor is used.
- Fixed the NPC Trainer spawns failing for high-level Trainers.
- Fixed the Recipe Book button rendering outside the inventory menu if the player opened the Recipe Book, clicked the Day Care tab, and then clicked the Survival inventory tab.
- Fixed an issue where exported battle rules text was missing line breaks.
- 21659 21761 Fixed invalid import method. Before the fix, the import function would fail if the number of Pokémon was greater than 1.
- Fixed Max Raid Dens not spawning Raids for the lowest star level possible in each biome.
- Fixed an error where every biome used the default weights of each star level, even if that biome did not have a Raid possible for a certain star level.
- An error message is now sent to the log if a Max Raid Den attempts to spawn a raid for a biome that doesn't have any raids.
- An error message is now sent to the log that specifies which Max Raid Den has failed to spawn a raid, along with the star level of the raid it's trying to spawn.
- [https://pixelmonmod.com/tracker.php?p=2&t=20580 20580] [https://pixelmonmod.com/tracker.php?p=2&t=20666 20666] Fixed colored nicknames not saving/loading properly on Pokémon.
- Fixed a rendering crash happening randomly.
- 18700 Fixed legendary requirement not overriding the ability and ability slot, resulting in erroneous abilities.
- 21128 Fixed Zorua, Zoroark, and any transformed Pokémon making the sound of its own species instead of the sounds of the Pokémon it's transformed into.
- 19804 Fixed the EXP, Mark, and Catching Charms disappearing upon death.
- 19814 Fixed Lures that were placed in the lure slot mistakenly rendering in the middle of the inventory if a player opened their inventory with the Recipe Book already active and then closed the Recipe Book.
- 20226 Fixed soft-locking caused by dying while a raid count down.
- Fixed the ribbon spec not working with the spectest command by changing the RibbonRequirement to only check the ribbon's type.
- 18095 Fixed all of Pixelmon's keybinds failing to work if bound to mouse keys.
- Fixed the screen of the Pixelmon Spawner being rendered with the default darkened background.
- Fixed the Quirky Mint being missed from the creative menu.
- Fixed an error caused by FlyingParameters not existing.
- Fixed shaders not applying to emissive parts of Pokémon.
- 21194 Fixed all Poké Ball recipes yielding the same Poké Ball type.
- 21194 Fixed all Poké Ball Lid recipes yielding the same Poké Ball Lid type.
- 21719 Fixed spawning errors caused by sky heightmap, halting spawning altogether.
- Fixed rare server crash caused by an error in AirSaver if the player does not exist.
- Fixed imported Pokémon with Hidden Power requiring Bottle Caps.
- Fixed exported Pokémon not including hypertrained stats.
- Fixed invalid imported Hidden Power types not throwing the right error.
- Fixed Gastlys particles spawning on top of it's body.
- 21941 Fixed ability changing on evolution for naturally spawned Pokémon.
- 21951 Coloured Sash and Rainbow Sash colours are now vibrant again.
- 21951 Rainbow Sash now uses a REALLY rainbow colour set.
- 21951 Coloured Sash no longer uses a triadic of the colour chosen instead of the colour chosen.
- Fixed Relearner move lists not storing TM and Egg moves.
- Fixed console error in
/resetpokestats
. - Fixed an error in Day Care requirements causing client disconnects.
- Fixed the 'fire on redstone' option for the Pixelmon Spqawner still spawning Pokémon even without a redstone signal.
- Fixed the list of TMs that a Pokémon can learn being displayed incorrectly on their summary screen.
- Fixed a rare crash caused by rendering too large groups of high detail entities.
- 22003 Fixed the PC Search visually duplicating Pokémon when the full species name of a Pokémon is typed.
- 19570 Fixed all instances of the word 'gingko' mispelled as 'ginkgo'.
- Fixed a rare error in Pokémon Builder.
- Fixed catching a Pokémon in a Hisui Ball not properly changing its movelist on catch.
- Fixed the move learning screens of the Move Tutor, Transfer Tutor, and the Move Relearner having Minecraft's darkened background applied to them.
- Fixed input text boxes for NPC interactions cutting off text early.
- Fixed an instance of the game crashing upon trying to add a ribbon to a Pokémon when the Ribbon's MutableRibbonData was null.
- Fixed a client disconnect occurring when the UpdateSinglePokemonPacket tried to fill the -1 slot of a Pokémon team with a Pokémon.
- Fixed ArrayIndexOutOfBoundsExceptions occurring in the UpdatedEditedPokemonPacket.
- Fixed the ColouredTextFieldWidget and the EnhancedTextFieldWidget rendering at a pixel too big on their left and right side.
- Fixed the ScrollableListWidget sending an incorrect value for the y coordinate of the mouse.
- Fixed the yellow-colored highlight for a Pokémon's displayed ribbon not scaling with the size of the ribbon's sprite.
- Fixed the client crashing upon trying to render a Ribbon Button when the resource of the MutableRibbonData was set to null.
- Fixed the client crashing upon being sent the CloseEditedPlayerPacket.
- Fixed the PokemonBuilder setting the new Pokémon's nature to the copied Pokémon's mint nature.
- Fixed the Export Text from the Showdown Converter displaying the name of the Pokémon's nature as Capitalized instead of in ALL CAPS.
- 21960 Fixed a visual issue with newly crafted Bird Orbs appearing full.
- 21163 Fixed a visual issue with crafted orbs rendering other sprites beneath them.
- Fixed the durability bar of Bird Orbs appearing underneath them.
- 21984 Fixed visual duplications caused by attempting to swap Pokémon around in your party from your inventory screen.
- 21944 Fixed missing idle animations in the Pokédex display screen.
- Fixed the storage cache invalidating the cached storage of online players causing parties to be loaded and then Pokémon that are sent out being temporarily irretrievable.
- 21090 Fixed Spectrier's emissive texture.
- Fixed Ice Rider and Shadow Rider shiny textures.
TCG:
- Fixed text not rendering in the text box when hovering the cursor over an action on the TCG Action Log.
- Fixed text not rendering in the text box when hovering the cursor over an attack of a TCG Card being inspected during a TCG Battle.
- Fixed the positioning and missing background of the TCG Battle Guide, which displays at the start of a TCG Battle to let players know how to start.
- Fixed F3 not toggling debug mode for Dev Environments in the TCG Screen.
- Fixed the hitboxes of cards during a TCG Battle shifting based on the player's FOV, they will now always be in the same place.
- Fixed the damage number not appearing when a player inspects a card during a TCG Battle.
- Fixed selecting a Prize Card during a TCG Battle disconnecting the player.
- Fixed the Price Cards always having a red-colored hitbox rendered behind them.
- Fixed the representation of the hitbox of Prize Cards rendering for non-developer clients.
- Fixed the positioning of inspected Pokémon Cards so that the selection of the buttons for abilities, attacks, and retreating lines up with the text on the card.
- Fixed the z-level rendering of the outline of the ability, attack, and retreat buttons so that it appears in front of inspected cards.
- Fixed the z-level rendering of warning text when abilities, attacks, or retreating can't be used so that it appears in front of the inspected cards.
- Fixed disconnect on end of game from render system calls on network thread.
- Fixed TCG registries loading before Pixelmon ones, causing them to be cleared before the sync can happen.
- Fixed TCG win broadcast being on the action bar.
- Fixed players being unable to chat during TCG battles.
- Fixed the grey filter covering the whole screen while in a TCG Battle.
Battles:
- Fixed Rollout getting stuck at 60 power if Defense Curl was used instead of continuing to double.
- 21259 Fixed Population Bomb not taking accuracy changes into account.
- Fixed Multi-hit moves continuing to attack after being put to sleep mid-move.
- Fixed Dragon Darts not hitting itself and a targeted AllySwitched ally once each.
- Fixed Dragon Darts not hitting itself twice if a targeted AllySwitched ally is immune.
- Fixed Dragon Darts printing multiple failure messages when missing both targets.
- Fixed Substitute not being removed by dynamaxing.
- Fixed Substitute not removing binding effects.
- Fixed Substitute not blocking entry hazard effects.
- Fixed Substitute blocking effects from moves that bypass Substitute.
- Fixed Substitute blocking Intimidate/Imposter after being broken by a switch move.
- Fixed False Swipe reducing damage when hitting a Substitute of a low-health Pokémon.
- Fixed Trick and Fling failing when the user is behind a Substitute.
- Fixed Incinerate not destroying Type Gems.
- Fixed Reflect/Light Screen stacking damage reduction with Aurora Veil.
- Fixed Reflect/Light Screen reducing damage by half in non-singles fights.
- Fixed Poison Pokémon with Steel secondary typing not removing Toxic Spikes.
- Fixed Poison Pokémon with Heavy Duty Boots not removing Toxic Spikes.
- Fixed EntryHazard removal not removing G-Max Steel Surge's Sharp Steel.
- Fixed Prankster not blocking spread status moves, such as Growl, against Dark Pokémon.
- Fixed Prankster not blocking moves called via boosted moves against Dark Pokémon.
- Fixed Pursuit doing 4x damage to switching target.
- Fixed Pursuit being redirectable when targeting a switching target.
- Fixed Max Darkness and Black Hole Eclipse based on Pursuit interrupting switches.
- Fixed virtual battles causing errors and crashing mid-battle when Trainers send out Pokémon.
- Fixed errors in Synchronize causing battle crashes in virtual battles.
- Fixed hard switch timing to be based on the previous Pokémon's speed.
- Fixed Substitute blocking Static or Flame Body when the opponent uses a non-status move.
- Fixed Defog not removing terrains.
- Fixed Defog clearing hazards when target is semi-invulnerable but has a Substitute.
- Fixed G-Max Wind Rage not triggering Defog after breaking through Protect and hitting a Substitute.
- Fixed G-Max Wind Rage removing toxic spikes after triggering Toxic Debris.
- Fixed all terrains affecting Pokémon in Sky Drop's semi-invulnerable turn.
- Fixed Grassy Terrain reducing Earthquake power for all targets, not just those affected by the terrain.
- Fixed Grassy Terrain healing Pokémon during semi-invulnerable turn of attacks.
- Fixed Misty Terrain reducing dragon attacks based on the user being affected by terrain instead of the target.
- Fixed Misty Terrain boosting Misty Explosion when the user is not grounded.
- Fixed Misty Terrain protecting Pokémon from Yawn and Confusion.
- Fixed Red Cards activating from the holder taking indirect damage.
- Fixed Teatime resetting the value for the item a Pokémon had consumed.
- Fixed an issue where Bug Bite and Pluck were setting the original holder of the berry that was eaten as the consumer instead of the Bug Bite or Pluck user.
- Fixed Take Heart curing the non-volatile status conditions of allies.
- Fixed Outrage not confusing the user when the final turn is disrupted.
- Fixed force-eaten LeppaBerry refilling their current attack's pp instead of their first attack missing pp.
- Fixed the Metronome item keeping track of the original move a Pokémon used, if that move called another move to use (e.g. Copycat).
- Fixed the Metronome item directly modifying the damage done by a move, instead of the power of that move.
- Fixed the Pickpocket ability not stealing Protective Pads off an attacking Pokémon that makes contact.
- Fixed the Punching Glove permanently making punching moves not make contact, even if the Punching Glove was stolen from the Pokémon.
- Fixed the Eject Pack switching out the holder if the holder was attacked with Parting Shot.
- Fixed an issue where if multiple Eject Packs activated, every Pokémon that could switch out would, instead of only the fastest Pokémon switching out.
- Fixed an issue where Pokémon holding an Eject Pack were immediately switched out if an end-of-turn effect lowered their stats, instead of waiting for all end-of-turn effects to finish.
- Fixed an issue where it was possible for a Pokémon to fail to switch targets from a Pokémon that had switched out (due to its Eject Pack activating) to the Pokémon that had switched in.
- Fixed an issue where if two Pokémon were both holding items and both had their stats lowered. If one of the Pokémon was holding a White Herb, it was possible for the other Pokémon to have their item removed.
- Fixed Knock Off failing to remove Mail from a Pokémon.
- Fixed Revenant not blocking Destiny Bond from being applied in its presence.
- Fixed Revenant not applying extra Pressure.
- Fixed a severe exploit with Revival Blessing
- Fixed a bug where Flying-type Pokémon holding an Iron Ball (and not under the affects of Gravity) would not receive 1x damage from Ground-type attacks when their secondary typing was weak or resistant to ground types.
- Fixed the Kee Berry and the Maranga Berry not reducing the damage from the hits after the first hit of multi-hit moves.
- Fixed Ripen affecting the Lansat Berry.
- Fixed Rock Head not blocking Chloroblast's recoil.
- Fixed Clear Smog's stat reset bypassing Substitute.
- Fixed Air Balloon popping from non-direct damage.
- Fixed Focus Sash protecting against Future Sight and Doom Desire.
- Fixed Knock Off being unable to remove items it cannot be given.
- Fixed Mega Evolution abilities not triggering on switching in.
- Fixed Mega-evolved Bosses not having their ability.
- Fixed Z-Parting Shot healing the user.
- Fixed Z-Parting Shot not healing the switched Pokémon after a failed Parting Shot.
- Fixed Parting Shot not failing against Hyper Cutter and Special Attack.
- Fixed Mirror Armor only reflecting stat drops from Status moves.
- Fixed Prankster-boosted moves failing against allied Dark-type Pokémon.
- Fixed Prankster not boosting ExtremeEvoBoost.
- 21773 Fixed abilities activated on entry still triggering when fainted by entry hazards.
- Fixed switch moves causing a waiting bug when the user faints.
- Fixed damaging effects occuring before Drain.
- 21750 Fixed Scale Shot triggering off non-attack damage.
- Fixed Weakness Policy triggering off weather if using an attack super-effective against the user.
- Fixed Weakness Policy triggering if already at max stages.
- Fixed Weakness Policy not triggering another Pokémon's switch.
- 21803 21917 Fixed Life Orb triggering on non-successful attacks.
- Fixed an issue that Salt Cure would show trigger messages if it is used towards Substitute.
- 21918 Fixed crash occuring when hard-switching a Levitate Pokémon onto spikes.
- Fixed Intimidate activating an Adrenaline Orb if the item holder had a Substitute out.
- Fixed Adrenaline Orb activating if the item holder's Attack was already minimized.
- Fixed Adrenaline Orb being passed through Symbiosis before being consumed by Intimidate.
- Fixed Intimidate reducing attack of the wrong opponents.
- Fixed Hustle incorrectly modifiying accuracy. Previously -20, now x0.8.
- Fixed Pokémon transformed into mega-forms being able to use Z-moves.
- Fixed Dynamax being usable once per participant instead of per team.
- Fixed NPC trainers using Dynamax in Max Raids.
- Fixed raid Pokémon not having perfect IVs based on star level.
- Fixed raid Pokémon always being level 50.
- Fixed a caught raid Pokémon's moveset not matching the raid boss' moveset.
- Fixed cheer effects in raids.
- Fixed Pokémon not reviving against Max Raid bosses.
- Fixed a battle crash rarely caused by EntryHazard.
- Fixed a battle crash occurring when a Pokémon in a virtual battle has Illusion.
- Fixed an error caused by the Legend Plate.
- Fixed a battle crash from the battle controller being null at the end of a raid battle.
- Fixed an error in clear status.
- Fixed the names of players and NPCs not appearing by resetting the z-level to 0.
- 21912 Fixed client switch menu hiding Pokémon that were forced out on the same turn they were switched in.
- 21999 Fixed Ash-Greninja, in its Battle Bond form, not transforming in Horde or Raid battles.
- Fixed max HP value not being recalculated after temp-level is set, fixing the issue where battle rules changing a Pokémon's level did not cause the HP to update.
- Fixed spread move damage order to hit allies before enemies.
- Fixed Critical Hit effect calculation.
- Fixed non-forced criticalHit count for Galar Farfetch'd evolution.
- Fixed Anticipation triggering against Status moves.
- Fixed Anticipation not triggering against Hidden Power.
- Fixed Baton Pass copying G-Max Chi-Strike boosts.
- Fixed Burn Up not thawing user when it has a fire type.
- Fixed Color Change changing type if Pokémon already had that type.
- Fixed Corrosion ignoring Poison/Steel resistance for G-Max Malodor’s damage.
- Fixes Costar not copying crit boosts if no stat stages boosted.
- Fixed Dire Hit’s effect being stackable.
- Fixed Gravity not disabling flight moves.
- Fixed Gravity not boosting move accuracy.
- Fixed Judgment changing type based on user’s type instead of plate type.
- Fixed Judgment with Legend plate finding type least resisting the target’s types.
- Fixed Laser Focus persisting turns if an item is used.
- Fixed Mimicry losing added types when activating.
- Fixed Moldbreaker not ignoring Unaware’s ignored accuracy changes.
- Fixed Purifying Salt removing statuses gained before ability.
- 21949 Fixed Ring Target not working when there is a global status on the field.
- Fixed Receiver not immediately triggering abilities from fainting allies.
- Fixed Roost not suppressing Flying type gained after the move.
- Fixed Roost restoring lost types.
- Fixed Transform not copying Flying type of Roosting Pokémon.
- Fixed Transform not copying Rage Fist hit count.
- Fixed Transform not copying opponent weight.
- Fixed Transform copying G-Max forms.
- Fixed Transform allowing PP restoring items to boost moves above 5PP.
- Fixed an issue where Bug Bite and Pluck were setting the consumber incorrectly.
- Fixed Teatime resetting the value for the item a Pokémon had consumed.
Developer:
- BREAKING CHANGE: removed Population Bomb move effect.
- BREAKING CHANGE: Triple Kick move effect.
- BREAKING CHANGE: Triple Axel move effect.
- In a developer environment, toggling the hitbox visual can now be used without needing a 2nd TCG player.
- Removed the deprecated methods for
getNickname
andgetDisplayName
that return a String. - Updated
getFormattedNickname
, andgetFormattedDisplayName
togetNickname
andgetDisplayName
. - Updated all rendering to use components not Strings.
- Added the
GimmighoulCoinRequirement
for PokeSpecs. - Added the
GimmighoulStats
to keep track of how many Gimmighoul Coins a Gimmighoul has amassed. - Adds the
InteractionGimmighoulCoins
which is what allows a Pokémon using theGimmighoulCoinCondition
to evolve to be given Gimmighoul Coins. - Added a fullbright option to ShaderParameters.
- Added terrastralization shader.
- Added a
party
value to the NPC Builder. - Added a
party
balue to the NPCPreset.Builder. - Added a
uuid
option to the NPC Builder. - Added null checks in the NPC Builder methods to result in friendlier errors for developers.
- Added the TeamSupplier interface and registry.
- This is necessary because the Mojang registries load before our old-style Pixelmon ones therefore, when the Presets were attempting to load teams for the NPCs they were unable to parse them and validate them as the species data did not yet exist.
- There are three types of TeamSupplier by default,
pixelmon:empty
- an empty team provided,pixelmon:poke_paste
- takes a PokePaste URL and converts it into a team andpixelmon:spec
- takes a list of specs and converts them into a team. - Added
EntityBattleParticipant
with a builder. - This means any entity (vanilla mobs included) can now be used to represent a trainer in battle
- The builder allows you to modify how the participant will operate (ai mode, boss tier, etc).
- Added the
BattleViewer
interface for entities/players that are watching a battle. - The spectator class now inherits the BattleViewer interface.
- Added
BattleController#broadcastPacket
which sends a packet to all BattleViwers. - Added
BattleController#getBattleType
. - Added
BattleController#getSpectators
. - Added
BattleController#broadcastPacket
. - Added
BattleController#canSpawnEntity
. - Added
BattleController#postSpawnEntity
. - Changed the
spectator
field in the SpectateEvent (and sub-classes) to be private. - You can now access the player spectating a battle via
SpectateEvent#getSpectator
. - The
target
field in SpectateEvent.StartSpectate is now private. - You can access, and modify, the spectator's target using
SpectateEvent.StartSpectate#getTarget
andSpectateEvent.StartSpectate#setTarget
. - Removed
ParticipantType
enum. - Replaced with the following methods:
BattleParticipant#isWild
BattleParticipant#isPlayer
BattleParticipant#isTrainer
BattleParticipant#isRaid
- Simplified a lot of logic in the BattleParticipant classes.
- All battle participants now have an entity through the BattleParticipant class
BattleParticipant#entity
(protected variable).- The wait boolean has been made protected, and should be accessed via
BattleParticipant#waiting
andBattleParticipant#setWait
. - Added a method to reduce duplicated code for clearing the movement properties of the BattleParticipant's entity.
BattleParticipant#clearMovement
- Moved the
hasMovePokemonReserve
method implementation from the sub-classes to the BattleParticipant class (reducing code, and fixing some bugs where it was different in different implementations). - Added
BattleParticipant#isOnField
for checking if a PixelmonWrapper is on the battle field - Changed the method
startBattle
topreBattleChecks
as this was causing some issues with trainer participants. startBattle
is now only overridden in the PlayerParticipant for sending the battle to the client to start it.- Added
BattleParticipant#releasePokemon
to spawn the Pokémon for a PixelmonWrapper. - This should be how all Pokémon are spawned in battle as this has the checks for if the entity can spawn.
- Moved the
switchPokemon
logic from the sub classes into BattleParticipant, again fixing some bugs and reducing duplicate code. - Changed
BattleParticipant#sendMessage
toBattleParticipant#sendPacket
to make it clearer what that method is doing. - The AirSaver class has been changed to a single static registry and is no longer something you have to implement yourself where you want to use it.
- To add an air saver to a player you now use
AirSaver#lock
. - To remove an air saver from a palyer you use
AirSaver#unlock
. - You can now start battles with players via the PlayerPartyStorage.
- The following methods were added:
PlayerPartyStorage#battle(ServerPlayer)
PlayerPartyStorage#battle(ServerPlayer, BattleType)
PlayerPartyStorage#battle(ServerPlayer, BattleRules)
- All of the above will start a battle between the owner of the storage and the player specified.
- Added the
BooleanBattleProperty
class for easily creating simple battle boolean based battle properties. - Added the
spawn_entities
battle property. - This accepts true or false, and when set to false will prevent entities spawning for that battle.
- The default is true.
- Simplified the battle starting & spectating packets to be a single packet each.
- Added
BattleController#spectate
. - Added
BattleController#removeSpectator
. - Fixed Pokédex method updating the value in the wrong Pokédex.
- Added a
PartyStorage#getAll
that takes a Predicate. - Added checks to PartySelectionScreen API to make constructing it easier.
- Added
RelearnerFactory#builder
for creating a relearner interaction. - Added
TutorFactory#builder
for creating a Move Tutor (or Transfer Tutor) interaction. - Adds
ShopFactory
andShopBuilder
API: - This allows you to utilise the shopkeeper/vending machine shop UI.
- Refactored the
ShopkeeperEvent
toShopEvent
and now fires with the vending machine. ShopEvent
now has bothgetBlockPos
andgetEntity
referring to either the block position of the vending machine, or the entity (most commonly NPC), the shop was opened from.- Both of which can be null as neither an entity, or a block, are required for opening a shop.
- Added Precondition checks to the Dialogue Builder API to make for friendlier errors when forgetting specific calls.
- Added
EmptyInteractionEvent
for creating interaction events that don't need to subscribe to any events but instead need to be called externally. - Changed the constant
EntityProperties#DEFAULT
to a functionEntityProperties#defaultProperties()
and added a child versionEntityProperties#defaultChildProperties()
. - Added
NPCPreset.Builder#noParty
. - Added overloads for
TextureProvider#resource
to make it less verbose to use. - Renamed getEffectiveTypes to modifyEffectiveTypes.
- Added
Ability.ignoreStatusTypeImmunity
. - Added Ability flags to support various effects.
- Added move flag ‘gravity’ for moves disabled by the Gravity global status.
- Added
Pokemon#setToOppositeGender
. - Added
DropDownWidget#setMaxVisibleOptions
. - Added
Pokerus#setCured
andPokerus#setInfected
. - Added
Pokerus#getNameOfStrainWithInfected
that returns a component with the infected/cured status plus the strain of the Pokérus. - Pressing the F3 key with the Pokémon Editor open while in a Dev environment will render a cyan background where the GridLayout can place the widgets added to it along with a pink background to display the space taken up by the widget.
UpdatePlayerPokemonPacket
now gets the Pokémon's slot via its UUID, instead of via the Pokémon object.- RibbonButtons will now use the widget's alpha, instead of always being fully visible.
- Added
IVStore#isEveryStatHyperTrained
. - Added static functions
ResourceLocationHelper#getItemStackTextureLocation
andResourceLocationHelper#getItemTextureLocation
. - Added
Attack#getPP
andAttack#setPP
. - Added
Attack#getPPLevel
andAttack#setPPLevel
. - Created the
SliderWidget
, which extends ForgeSlider. - Added
ExtraStats#getValue
andExtraStats#setValue
. - Added
ExtraStats#getValueName
, which returns a component with a better name for the value of the Extra Stat. - Created the
PixelmonRendereringHelper
class for rendering the models of Pokémon. - Added a static method
StatusType#getColor
that takes a StatusType as a parameter and returns the color of the Pokémon type (Element#getColor
) most related to that status type. - Changed
PixelmonClientData#getHealthColor
to be static and take the current health and max health as parameters. - Changed
Pokemon#setMintNature
to not callPokemon#setNature
. - Added
BattleStatsType#getClosestChatFormattingColorForPokePasteStat
. - Added
ScrollableListWidget#getWidgets
. - Added
RibbonButton#getRibbon
. - Changed the static constant class variable
DYNAMAX_LEVELS
, set in PokeCheckerScreen, which holds the values for the colors of the Dynamax Levels, public. - Changed
PokemonBuilder#getNature
toPokemonBuilder#getBaseNature
. - Added
Pokemon#getPokerus
. - Added
BattleStatsType#getAbbreviatedTranslationName
. - Added
Gender#getTranslatedName
andGender#getTranslatedNameCapitalized
. - Added
RibbonRegistry#sort
, to sort RibbonTypes alphabetically. - Added
Pokemon#isNearlyIdenticalTo
. - Added
ScrollableListWidget#scrollWidgetUponMouseClicked
,ScrollableListWidget#getMouseYTranslatedToWidgetY
, andScrollableListWidget#getElementY
. - Added
TabCompleteTranslateableTextField#getShowDropDown
,TabCompleteTranslateableTextField#setShowDropDown
,TabCompleteTranslateableTextField#getDropDownOptionAmount
,TabCompleteTranslateableTextField#setDropDownOptionAmount
,TabCompleteTranslateableTextField#getHeightPerDropDownOption
,TabCompleteTranslateableTextField#setHeightPerDropDownOption
,TabCompleteTranslateableTextField#getDropDownOptions
,TabCompleteTranslateableTextField#setFocused
, and more stuff for just internal rendering. - Added
Moves#getGenerationsTMTRTheImmutableAttackIsIn
to return a Component describing what generations a TM or TR exists in. - Added
StringHelper#buildStringForConsecutiveNumbers
that returns a sequence of numbers as a string in format "1-4, 6-7, 9-11, 13". - Added
IVStore#setIVsToRandomValues
to set the current IVStore object's IVs to new random values - Added
Pokerus#getNameOfStrainWithInfectedToString
. - Added
PixelmonRenderingHelper#getAllAnimations
. - Added
AbstractClientEntity#toStringComponent
. - Added
Pokemon#makeEggAndKeepCurrentLevel
. - Added
StringHelper#capitalizeAllWords
. - Added
ScrollableListWidget#getInnerHeightOfLayoutElementWidget
. - Added
AbstractClientEntity#setOffGroundTime(int)
. - Added
GenderProperties#getRandomPalette
.
Dependencies
journeymap-1.20.2-5.9.18-forge.jarAdded via overrides
Structory_1.20.2_v1.3.4.jarAdded via overrides
Structory_Towers_1.20.2_v1.0.5.jarAdded via overrides
Files
The Pixelmon Modpack 9.2.9.mrpack(19.85 MiB) Primary
90% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Metadata
Release channel
BetaVersion number
9.2.9Loaders
Forge
Game versions
1.20.2Downloads
22996Publication date
October 15, 2024 at 8:30 PMPublisher
Pixelmon
Owner