/resetpokestats
."1.20.2 (Alpha 8)"
control + z
.control + y
.pc_sorting_logic_type
registry for adding custom sorting type logic./pc
./pc
.toggleBattleUserInterface
key cycles between 50% transparency of the background, 100% transparency of the background, showing only the HP of the Pokemon, and completely hiding the battle UI.toggleBattlePerspective
key cycles between the 3rd person Battle Camera POV, 1st person Player Model's POV, and the 1st person POV of the Player's Pokemon.
max-distance-players-can-move-away-from-battles
value.min-distance-before-warning-vignette
value.players-can-move-during-pv-p-battles
for battles with at least 1 player on each team (defaults to true)players-can-move-during-wild-battles
for battle with at least 1 Wild Pokemon on a team (defaults to true)players-can-move-during-trainer-battles
for battle with at least 1 NPC Trainer on a team (defaults to true)players-can-move-during-raid-battles
for Max Raid Den battles (defaults to false)config.yml
into multiple files in order to make changing config options easier:
afk_handler.json
debug.yml
drops.yml
healing.yml
ore_color.yml
outside_effects.yml
riding.yml
pokedollars.yml
pokerus.yml
server_discord.yml
tms.yml
spawning.yml
config into multiple files so that it is easier to navigate the spawning config options, moving sub-configs into /config/pixelmon/spawning
:
boss.yml
general.yml
legendary.yml
level_distance.yml
meltan.yml
poke_loot.yml
pokestop.yml
ultra_space.yml
wild.yml
PokemonStorage#open
.
PokemonStorage#encode
and PokemonStorage#decode
.
PlayerCloseStorageEvent
.
PlayerPartyStorage#getOpenStorage
and PlayerPartyStorage#setOpenStorage
.
PokemonStorage#getFile
.
FlatFileStorageSaveAdapter
which has a function to convert the PokemonStorage to a File in the same way.NBTStorageSaveAdapter
.PokemonStorage#uuid
.
PokemonStorage#getUniqueId
.StorageType
registry and changed ClientStorageManager#storedPCs
.
PokemonStorage#getStorageType
returning a ResourceLocation
representing the key of the type in the registry.ClientInitializePCPacket
to ClientInitializeStoragePacket
.
StorageType
allowing us to initialize any storage from the server to the client's cache.PokemonStorage#initialize
.
NetworkHelper
calls anywhere anymore.StorageProxy#initializePCForPlayer
and StorageManager#initializePCForPlayer
.
PokemonStorage#initialize
method and are abstract from PCs specifically.PokemonStorage#shouldSendUpdates
to be protected and added getters/setters for it.PokemonStorage#notifyListener
.
PokemonStorage#notifyListeners
to keep that function clean. Except it appears that it was mistaken and was used erroneously in a bunch of places.PokemonStorage#notifyListeners
.PokemonStorage#doWithoutSendingUpdates
.PokemonStorage#retrieveAll
.
PartyStorage
specifically and was lazily being used on the abstract level.StorageProxy#invalidateCache
and StorageManager#invalidateCache
for removing a PokemonStorage from the cached storages.
PokemonStorage#track
, PokemonStorage#untrack
, PokemonStorage#isTracking
, and PokemonStorage#trackingPlayers
.
IStatStore#canSet
.IStatStore#reset
.PlayerHelper#registerPermission
to bypass the unnecessary GatherPermissionsEvent.EffectBase#canHitMultipleTargets
to support moves that are conditionally single or multi-target.ProtectVariation#canBeRemoved
to allow new Protect variants to resist Feint.ProtectVariation#protectVariationBlocksAttack
to allow new Protect variations to filter what they block.ProtectVariation#applyProtectionEffect
to allow new Protect variations to add an effect when blocking attacks."1.20.2 (Alpha 7)"
pixelmon:npc
.
pokebag_blacklist
tag located at data/pixelmon/tags/items/pokebag_blacklist.json
.{ "name": "none", "sprite": "pixelmon:pokemon/001_bulbasaur/all/base/none/sprite.png", "models": [ { "model_predicate": { "type": "pixelmon:always" }, "models": [ { "model": "pixelmon:pokemon/001_bulbasaur/all/base/none/model.pqc", "texture": { "type": "pixelmon:url", "url": "YOUR URL HERE", "target_location": "pixelmon:pokemon_models/001_bulbasaur/all/base/none/texture.png" } } ] } ], "sounds": [] }
data/pixelmon/tags/items/pokebag_blacklist.json
."eligible_for_sky_battles",
in their species json file can join a Sky Battle."eligible_for_sky_battles_with_levitate",
in their species json file can join a Sky Battle if they have the Levitate ability.isboss
and areyouaboss
spec to only check if the Pokémon is specifically a boss Pokémon./wiki
command to specify that the biome for Pokémon that spawn everywhere underground, is underground.droppped-item-beams-enabled
to disable the dropped item beam in graphics.yml
.'walksonwater'
property immediately dismounting the player if the player attempted to ride them on water.'undexable'
./pokebattle
command not providing tab completion for nearby NPC Trainers.canSeeSky
ignoring seesSkyException
blocks.RequestCloseEditingPlayerPacket
accessing the logical client from the server./pokestats
accessing the logical client from the server./pokebomb
.Evolution#doEvolution(PixelmonEntity, String)
in favor of Evolution#doEvolution(Pokemon, String)
Evolution#finishedEvolving(PixelmonEntity)
in favor of Evolution#finishedEvolving(Pokemon)
EvolutionQuery(PixelmonEntity, Evolution, String)
in favor of EvolutionQuery(Pokemon, Evolution, String)
EvolutionQuery(PixelmonEntity, Stats)
in favor of EvolutionQuery(Pokemon, Stats)
EvoCondition#passes(PixelmonEntity)
in favor of EvoCondition#passes#(Pokemon)
TickHandlerBase#onTick
now returns a boolean value for whether the tick handler should be removed or not, changing from returning void.PixelmonRegistry#battleEndCause
.
@Mod.EventBusSubscriber(modid = Pixelmon.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) public class NewBattleCauses { @SubscribeEvent public static void onRegister(RegisterEvent event) { event.register(PixelmonRegistry.BATTLE_END_CAUSE_REGISTRY, helper -> { helper.register(BattleEndCause.FORFEIT.id(), BattleEndCause.FORFEIT); }); } }
PokemonSpecificationProxy.register(PokemonSpecificationProxy.requirementBuilder(Boolean.class) .aliases("isboss", "areyouaboss") .booleanParser() .dataMatcher((pokemon, aBoolean) -> false) .dataApplier((pokemon, aBoolean) -> {}) .minecraftMatcher((pixelmonEntity, isBoss) -> pixelmonEntity.isBossPokemon()) .minecraftApplier((pixelmonEntity, isBoss) -> pixelmonEntity.setBossTier(isBoss ? BossTierRegistry.getRandomBossTier() : BossTierRegistry.NOT_BOSS)) .build());
Dialogue
API and the events.BattleBuilder#logResult
which will force the log to be printed at the end of the battle."Bark Bark Bark"
/pokebomb
./pokestats
accessing the logical client from the server.SpawnPixelmonEntityForBattleEvent.Pre
and SpawnPixelmonEntityForBattleEvent.Post
when switching Pokémon in battle."1.20.2 (Alpha 6)"
partyFaintRespawn
gamerule (disabled by default, and can be edited from the World Creation singleplayer screen):
keepInventory
gamerule is disabled the player will drop the items in their inventory.config.yml
:server-discord
, discord-invite
and server-name
, defaulting to blank - if the invite is invalid, the button will not show.[F3+']
, showing both bones on Pokémon models and their name.elf
palette option to Christmas ball logic!- Added tests for Damp ability. - Added tests for Dancer ability. - Added tests for Dazzling ability. - Added tests for Delta Stream ability. - Added tests for Disguise ability. - Added tests for Zen Mode ability. - Added tests for Wind Rider ability. - Added tests for Wonder Guard ability. - Added tests for Wandering Spirit ability. - Added tests for Victory Star ability. - Added tests for Aftermath ability. - Added tests for Anger Point ability. - Added tests for Arena Trap ability. - Added tests for Battle Armor ability. - Added tests for Berserk ability. - Added tests for Cheek Pouch ability. - Added tests for Clear Body ability. - Added tests for Cloud Nine ability. - Added tests for Color Change ability. - Added tests for Comatose ability. - Added tests for Contrary ability. - Added tests for Cursed Body ability. - Added tests for Magic Guard ability. - Added tests for Magician ability. - Added tests for Intimidate ability. - Added tests for Shields Down ability. - Added tests for Simple ability. - Added tests for Slow Start ability. - Added tests for Contrary ability and Z-moves. - Added tests for Intrepid Sword ability. - Added tests for Liquid Ooze ability. - Added tests for Magic Bounce ability. - Added tests for Lightning Rod ability. - Added tests for Desolate Land ability. - Added tests for Dry Skin ability. - Added tests for Emergency Exit ability. - Added tests for Flash Fire ability. - Added tests for Frisk ability. - Added tests for Gluttony ability. - Added tests for Guard Dog ability. - Added tests for Immunity ability. - Added tests for Neutralizing Gas ability. - Added tests for Storm Drain ability. - Added tests for Sturdy ability. - Added tests for Suction Cups ability. - Added tests for Sturdy ability. - Added tests for Sword of Ruin ability. - Added tests for Synchronize ability. - Added tests for ScreenCleaner ability. - Added tests for SapSipper ability. - Added tests for Aromatherapy ability. - Added tests for HealBell ability. - Added tests for MagnetPull ability. - Added tests for Moxie ability. - Added tests for MultiScale ability. - Added tests for Mummy ability. - Added tests for Natural Cure ability. - Added tests for Own Tempo ability. - Added tests for Pastel Veil ability. - Added tests for Pick Pocket ability. - Added tests for Prankster ability. - Added tests for Primordeal Sea ability. - Added tests for Protosynthesis ability. - Added tests for Ripen ability. - Added tests for Rock Head ability. - Added tests for Rough Skin ability. - Added tests for SheerForce ability. - Added tests for SereneGrace ability. - Added tests for ShieldDust ability. - Added tests for PoisonTouch ability. - Added tests for ShellArmor ability. - Added tests for ShadowTag ability. - Added tests for Opportunist ability. - Added tests for Glaive Rush move. - Added tests for U-Turn move. - Added tests for Acupressure move. - Added tests for After You move. - Added tests for Assurance move. - Added tests for Aura Wheel move. - Added tests for Baton Pass move. - Added tests for Belch move. - Added tests for Bide move. - Added tests for Boomburst move. - Added tests for Brick Break move. - Added tests for Sky Drop move. - Added tests for Follow Me move. - Added tests for Weakness Policy held item. - Added tests for White Herb held item. - Added tests for Sitrus Berry held item. - Added tests for Shell Bell held item. - Added tests for Shed Shell held item.
"palettes": [ { "name": "none", "sprite": "pixelmon:pokemon/000_missingno/all/base/none/sprite.png", "models": [ { "model_predicate": { "type": "pixelmon:always" }, "models": [ { "model": "pixelmon:pokemon/000_missingno/all/base/none/model.pqc", "texture": "pixelmon:pokemon/000_missingno/all/base/none/texture.png" } ] } ]
"model": { "model": "pixelmon:hat/hat.pqc", "texture": "pixelmon:hat/texture.png", "scale": 0.9, "offsets": [ 0.0, 0.8, 0.8 ] }
"scale": [2.0, 1.0, 1.0]
)."model": { "model": "pixelmon:hat/hat.pqc", "texture": "pixelmon:hat/texture.png", "scale": [2.0, 1.0, 1.0], "offsets": [ 0.0, 0.8, 0.8 ] }
"models": [ { "model_predicate": { "type": "pixelmon:always" }, "models": [ { "model": "pixelmon:pokemon/172_pichu/all/base/none/model.pqc", "texture": "pixelmon:pokemon/172_pichu/all/base/none/texture.png", "attachments": [ { "attachment_point": "Hat", "model": { "model": "pixelmon:hat/hat.pqc", "texture": "pixelmon:hat/texture.png", "scale": 0.9, "offsets": [ 0.0, 0.8, 0.8 ] } } ] } ]
christmas
and elf
palettes with Christmas Hat attachment."particle": { "probability": 0.1, "options": { "type": "pixelmon:shiny", "diameter": 2.5, "lifetime": 30, "tint": { "red": 255, "green": 215, "blue": 0, "alpha": 255 } } }
ingot
tag.ingot
tag.pixelmon.interaction.abilitycapsule
and pixelmon.interaction.abilitypatch
into pixelmon.interaction.abilityitem
.itemconfig.yml
.multiplePhotosOfSamePokemon
, allowAmuletCoin
, and amuletCoinMultiplier
to itemconfig.yml
.bottleCapLevel
to itemconfig.yml
, which defaults to 50.minimum-distance-between-spawns
config setting to 5 blocks, down from 15 blocks .minimum-distance-from-centre
config setting to 5 blocks, down from 18 blocks.maximum-distance-from-centre
config setting to 30 blocks, down from 64 blocks.walksonwater
or walksonlava
tag being unable to walk on that fluid.random shiny
sometimes failing to give a shiny with non-shiny palette listings./checkspawns
use backwards compatibility with un-hyphenated yet hyphenated Pokémon names.Ability#modifyConfusionDamage
and HeldItem#modifyConfusionDamage
.PixelmonWrapper
class to the PixelmonEntity
class.PixelmonWrapper#attackAlly(I)V
for simplifying the selection of attacking moves.BattleTestHelper#setupDoubleBattleBuilder
to allow double battles.BattleController#takeFullTurn
to do a turn for each active pokemon instead of always 2.PokemonBuilder#ability
not creating a new instance of the ability given.BattleTestClass
annotation.PixelmonUnitTest
class has been deleted as it is no longer needed.UnitTestRegistry
class has been renamed to BattleTestRegistry
.UnitTest
annotation has been renamed to BattleTest
.BattleTest
annotation and changed it to instead just use the method name.BattleTestHelper
with useful functions for creating No-Op wild battle participants, quickly starting frozen battles, and skipping through frozen battle's ticks.BattleController#doTurnLogic
and BattleController#takeFullTurn
for manipulating frozen battles with a bit more ease.PokemonBuilder#ability(Lcom/pixelmonmod/api/registry/RegistryValue;)Lcom/pixelmonmod/pixelmon/api/pokemon/PokemonBuilder
overload.PokemonBuilder#moves([Lcom/pixelmonmod/api/registry/RegistryValue;)Lcom/pixelmonmod/pixelmon/api/pokemon/PokemonBuilder
overload.PokemonBuilder#species(Lcom/pixelmonmod/api/registry/RegistryValue;)Lcom/pixelmonmod/pixelmon/api/pokemon/PokemonBuilder
overload.BattleTestHelper#createDefaultPokemon
for creating a Pokemon with the default settings (level 100, serious nature, max IVs, max happiness, in a PokéBall).PixelmonWrapper#attackOpponent(I)V
for simplifying the selection of attacking moves.PixelmonWrapper#attackSelf(I)V
for simplifying the selection of attacking moves.PartyFaintRespawnEvent
for canceling the above mechanic in given situations.EVYields#setHP
, EVYields#setAttack
, EVYields#setDefense
, EVYields#setSpecialAttack
, EVYields#setSpecialDefense
, EVYields#setSpeed
, EVYields#addToHP
, EVYields#addToAttack
, EVYields#addToDefense
, EVYields#addToSpecialAttack
, EVYields#addToSpecialDefense
, EVYields#addToSpeed
, EVYields#set
, and EVYields#multiply
.EVGainEvent
and EVGainEvent.Double
for handling when EVs are gained.BattleController#turn
to actionIndex
to better separate it from battleTurn
.EffectBase#modifyTargets
.StatusBase#stopsEvolution
.PixelmonWrapper#canEvolve
.Ability#preventsRedirection
.Ability#modifyConfusionDamage
and HeldItem#modifyConfusionDamage
.PixelmonSpecies#TAPU_FINI
being a MissingNo."Splash!"
/pokekill
to become unresponsive./wiki
and /checkspawns
failing to work on Treasures of Ruin Pokémon due to their hyphenated name format./locate
flooding water-based structures such as the Magikarp Boat.OutOfMemoryError
server crashes caused in attack animations using Leap Forward by disabling their use case./battletests
failing due to Shedinja, Focus Sash, Clangorous Soulblaze, Overworld weather and Form change tests, fixing relevant bugs associated with their use cases."1.20.2 (Alpha 6)"
/statuespawn <spec>
command which spawns in a statute with a given spec.cel
shaderblack and white
shaderrainbow
shaderfriendship
: for comparing against a specific friendship, and setting a specific friendship.maxfriendship
: for doing a less than or equal check against a friendship value (and setting a random number from 1 to the number given).minfriendship
: for doing a greater than or equal check against a friendship value (and setting a random number from the value to 255).rainbow
b&w
cel
shader:<shader id>
i.e. shader:pixelmon:cel
allow-t-r-reuse
to false in the config for game parity.BattleHoverGoal
, replacing the FlyingPersistentGoal
given to a Pokémon which is flying in a battle, to hold it in place hovering for the duration of the battle only. This goal stops being on once the battle is over.FlyingPersistentGoal
to now guard against invalid flyRefreshRateSpeed
values in flying parameters.HeldItemChangedEvent
into
HeldItemChangedEvent.Pre
, which is ancelable and can modify item.HeldItemChangedEvent.Post
, which cannot be canceled or modify item and fires after item is set.WalkingModelPredicate
."There are DOZENS of us, DOZENS!"
/setraid
command