Curious about what we're currently doing about bots? Check out the latest updates from staff in this thread.
Welcome to Smogon! Take a moment to read the Introduction to Smogon for a run-down on everything Smogon, and make sure you take some time to read the global rules.
I don't know if this is currently possible, but if the teambuilder were able to display what type a pokemon would now be this metagame would be fairly easy to play. Otherwise building teams seems quite difficult. Additionally the type of a pokemon should be displayed in the battle when that mon is in play.
(This is more so a criticism of the current limits of the teambuilder - as many OMs are also plagued by this issue.)
What about tera? It would be annoying to have to lookup the type circle here if the tera type I selected was also affected by this rule.
I don't know if this is currently possible, but if the teambuilder were able to display what type a pokemon would now be this metagame would be fairly easy to play. Otherwise building teams seems quite difficult. Additionally the type of a pokemon should be displayed in the battle when that mon is in play.
(This is more so a criticism of the current limits of the teambuilder - as many OMs are also plagued by this issue.)
What about tera? It would be annoying to have to lookup the type circle here if the tera type I selected was also affected by this rule.
Type Cycle: all pokemon and moves change their typing to be the next one in alphabetical order (water being the last type is turned into bug, the first type) (stellar isn't effected or part of the cycle) View attachment 841260 Increased Viability:
Here are some Pokemon that are especially powerful in Type Cycle: The biggest rise in viability. with rock fire (one of the worst defensive typing's) becoming steel flying (THE best defensive typing) and with this pokemon having flash fire to nullify 1 of the only 2 weaknesses and gain a bonus on body press (it's now fire type) it's a pokemon only weak to the mediocre attacks dragon has originally. absolute wall probably needs to be banned. imagine the best defensive pokemon with a bad typing as the best defensive typing being a kinda fast pokemon with nearly perfect converge is insane. ground fairy is the best offensive typing possible Decreased Viability: becomes psychic rock... need I say more? Fire Ice type sucks for a defensive mon + ice ghost sucks. there's a pattern where ground types suck now because there ice type now Q&A:
Q: what about tera? A: if tera isn't banned then tera and tera blast aren't affected by the type cycle. basically the tera type is what tera type you choose Resources: coming soon!
Playability: This format currently isn't playable Council: To apply to the Type Cycle council, please send me a PM. cat111ca
PLEASE tell me any things I missed and what you think of this om idea!
I always like the idea of changing the type of pokemon in some way so this is pretty cool. I like how it also changes the types of moves, and wanted to mention a few of those winners/losers as well, as they go untouched in the original post :3
Buffed Volt Switch [Fairy]
Unblockable 70 BP Pivot thats also the best type in the game. Kinda stupid, could even be banworthy. U-turn [Dark]
Not as huge of a buff, but Dark is generally a much better offensive type than Bug is.
Speaking of: Most Damaging Bug Moves, Actually. [Dark]
Bug type sucks. Moving on. Mortal/Rapid Spin [Psychic/Poison]
Now both just blocked by new types instead of how they were blocked before, being Steel for rapid spin and Dark for mortal spin, so this would be a net neutral. However: Gholdengo now SUCKS (kinda). Its Grass/Water, which is fine, but it makes it only able to block defog now, indirectly buffing hazard control as a result, on top of being weak to rapid spin, which is now poison type.
Glimmora is also Psychic/Steel with a unique hazard clearing move, (that poisons can’t come in on anymore) and Toxic Debris. Felt important to mention as they’re the only Mortal Spin user. Flower Trick [Ground]
Holy shit. 70 BP ground move that always crits, on a Ground/Dragon type with 123 base speed. Garchomp found dead in alley, rest in peace
Nerfed Knock Off [Dragon]
Now Blockable by the best type in the game, and can’t hit anything for SE except opposing Dragons Most Damaging Water Moves [Bug]
Bug Type Sucks. Moving on. Ice Moves, probably [Normal]
Normal is ok defensively, so the freeze chance is probably nice, but overall hitting zero things SE is rough. Rip weavile Defog [Ghost]
Hazard Clearing move, should be good, right? Wrong! womp womp ghost falls of HARD. No longer blocks rapid spin, Close Combat, and the like. In return gets immunity to super interesting moves like ice spinner and moonblast. also, now weak to U-turn. Rip every bird pokemon ever.
Neutral/Unclear/Too funny not to mention Freeze-Dry [Normal]
Normal move that hits water for… literally no reason. Only normal move that can hit SE. Probably overall nerfed but thats just because Ice is generally nerfed, offensively. Stealth Rock [Steel]
Ok this ones weird. I’m assuming that the actual field condition still acts like rock type, in which it remains useful as a solid hazard, simple as that.
However, the code is there to have it act like steel, in which EVERY FAIRY TYPE RUNS UNKNOCKABLE BOOTS.
I find this item restriction on the best type really funny, but I personally believe the field effect is not itself a move, and thereby should remain as it works in standard play.
This is overall still a teeny tiny buff to stealth rock anyways, as all rock types are now steel type, and probably have access to the move. Defog [Status]
“Wait wait hold on, you already said this got nerfed” yeah I know, but its still defog, and still has some really nice users.
Decidueye is now a Ground/Grass with Synthesis, Trapping, and a solid 90 BP ground move with and increased Crit chance.
Water/Dark with Technician Aqua Jet (Bullet Punch), a strong U-turn, and Fire-type CC for coverage sounds incredibly interesting.
The only electric type with defog, now Fairy/Ghost with Quiver Dance, an unknockable item, and Revelation dance for Fairy STAB. Ghost sucks defensively, but offensively is another story, still very solid
Thats pretty much all i have for moves that stood out to me. Here are some extra bits that come to mind, just in general
Regieleki is now an amazing spinner. It can block knock-off, keeping its boots on, and support the rest of the team with a truly amazing type, frankly stupid speed, and reliable pivoting.
Nerfed insanely hard without the SpDef boost, but Steel/Dragon is still a perfectly solid type, and additionally that steel typing threatens many Fairies wanting to come in on Knock Off. Not exactly sure Regieleki or Bellibolt want to eat a 100 BP Steel Edge on switch-in
Almost all regen mons are nerfed. Tons become rock or bug, for example. Klawf might have a niche but ground and fighting have tons of special options now, and klawf has 55 special defense.
Somehow, Fire/Steel is still a unique typing. Sadly, Terrakion isn’t exactly the new heatran, with 91/90/90 bulk and not many utility options. But it’s there as an option, I guess.
Fairy/Steel! Resist all 3 offensive pivoting moves and immune to knock off! Has 100/110/84 bulk, 134 attack and a useable movepool! Unblockable Pivot Move! Genuinely the biggest glowup i think ive ever seen, good for them.
Ground/Fire with your choice of Technician or Poison Heal. Not much else to say, seems like a solid mon.
Now the best spinblocker, Dark/Steel with an incredible movepool, including heavy hitters like Stone Axe [Steel] and U-turn [Dark], Close Combat [Fire] to hit opposing Steels and even Defog if you want more hazard control.
I always like the idea of changing the type of pokemon in some way so this is pretty cool. I like how it also changes the types of moves, and wanted to mention a few of those winners/losers as well, as they go untouched in the original post :3
Buffed Volt Switch [Fairy]
Unblockable 70 BP Pivot thats also the best type in the game. Kinda stupid, could even be banworthy. U-turn [Dark]
Not as huge of a buff, but Dark is generally a much better offensive type than Bug is.
Speaking of: Most Damaging Bug Moves, Actually. [Dark]
Bug type sucks. Moving on. Mortal/Rapid Spin [Psychic/Poison]
Now both just blocked by new types instead of how they were blocked before, being Steel for rapid spin and Dark for mortal spin, so this would be a net neutral. However: Gholdengo now SUCKS (kinda). Its Grass/Water, which is fine, but it makes it only able to block defog now, indirectly buffing hazard control as a result, on top of being weak to rapid spin, which is now poison type.
Glimmora is also Psychic/Steel with a unique hazard clearing move, (that poisons can’t come in on anymore) and Toxic Debris. Felt important to mention as they’re the only Mortal Spin user. Flower Trick [Ground]
Holy shit. 70 BP ground move that always crits, on a Ground/Dragon type with 123 base speed. Garchomp found dead in alley, rest in peace
Nerfed Knock Off [Dragon]
Now Blockable by the best type in the game, and can’t hit anything for SE except opposing Dragons Most Damaging Water Moves [Bug]
Bug Type Sucks. Moving on. Ice Moves, probably [Normal]
Normal is ok defensively, so the freeze chance is probably nice, but overall hitting zero things SE is rough. Rip weavile Defog [Ghost]
Hazard Clearing move, should be good, right? Wrong! womp womp ghost falls of HARD. No longer blocks rapid spin, Close Combat, and the like. In return gets immunity to super interesting moves like ice spinner and moonblast. also, now weak to U-turn. Rip every bird pokemon ever.
Neutral/Unclear/Too funny not to mention Freeze-Dry [Normal]
Normal move that hits water for… literally no reason. Only normal move that can hit SE. Probably overall nerfed but thats just because Ice is generally nerfed, offensively. Stealth Rock [Steel]
Ok this ones weird. I’m assuming that the actual field condition still acts like rock type, in which it remains useful as a solid hazard, simple as that.
However, the code is there to have it act like steel, in which EVERY FAIRY TYPE RUNS UNKNOCKABLE BOOTS.
I find this item restriction on the best type really funny, but I personally believe the field effect is not itself a move, and thereby should remain as it works in standard play.
This is overall still a teeny tiny buff to stealth rock anyways, as all rock types are now steel type, and probably have access to the move. Defog [Status]
“Wait wait hold on, you already said this got nerfed” yeah I know, but its still defog, and still has some really nice users.
Decidueye is now a Ground/Grass with Synthesis, Trapping, and a solid 90 BP ground move with and increased Crit chance.
Water/Dark with Technician Aqua Jet (Bullet Punch), a strong U-turn, and Fire-type CC for coverage sounds incredibly interesting.
The only electric type with defog, now Fairy/Ghost with Quiver Dance, an unknockable item, and Revelation dance for Fairy STAB. Ghost sucks defensively, but offensively is another story, still very solid
Thats pretty much all i have for moves that stood out to me. Here are some extra bits that come to mind, just in general
Regieleki is now an amazing spinner. It can block knock-off, keeping its boots on, and support the rest of the team with a truly amazing type, frankly stupid speed, and reliable pivoting.
Nerfed insanely hard without the SpDef boost, but Steel/Dragon is still a perfectly solid type, and additionally that steel typing threatens many Fairies wanting to come in on Knock Off. Not exactly sure Regieleki or Bellibolt want to eat a 100 BP Steel Edge on switch-in
Almost all regen mons are nerfed. Tons become rock or bug, for example. Klawf might have a niche but ground and fighting have tons of special options now, and klawf has 55 special defense.
Somehow, Fire/Steel is still a unique typing. Sadly, Terrakion isn’t exactly the new heatran, with 91/90/90 bulk and not many utility options. But it’s there as an option, I guess.
Fairy/Steel! Resist all 3 offensive pivoting moves and immune to knock off! Has 100/110/84 bulk, 134 attack and a useable movepool! Unblockable Pivot Move! Genuinely the biggest glowup i think ive ever seen, good for them.
Ground/Fire with your choice of Technician or Poison Heal. Not much else to say, seems like a solid mon.
Now the best spinblocker, Dark/Steel with an incredible movepool, including heavy hitters like Stone Axe [Steel] and U-turn [Dark], Close Combat [Fire] to hit opposing Steels and even Defog if you want more hazard control. Also has an incredibly powerful First Impression [Dark].
Premise: All pokemon are able to have negative EVs in a stat, which lowers the base stat by the amount of EVs and distributes it between the other stats evenly. Example: If I have a Hoopa-Unbound with -165 EVs in Sp.Atk, then, because 165/5 is 33, its stats would become 113/193/93/5/163/113, giving it decent bulk and speed and an insane Attack, it is for these reasons that it would likely be banned.
Builds:
Mismagius @ Choice Specs
Ability: Levitate
Tera Type: Fairy
EVs: 4 HP / 252 SpA / -100 SpD / 252 Spe
Modest Nature
IVs: 0 Atk
- Draining Kiss
- Shadow Ball
- Trick
- Dark Pulse
With 80/80/80/125/5/125 spread, Mismagius becomes a lot more like Flutter Mane , and it leans even more into the glass cannon aspect, but it could probably still tank a weak physical attack.
Zoroark's new spread, 74/5/79/144/79/129, is a lot more min-maxed than its base form, hitting hard with special attacks and having decent speed that scarf could be swapped.
Bans & Clauses:
OU bans and clauses
As explained
Fur coat might be too good with a high defense, but maybe not.
Whatever else may be detrimental
Q&A
Q: What if I want to invest in the lowered stat?
A: You won't.
Q: Will I know what stat the opponent min-maxed
A: It will likely be displayed like in inheritance as smth like Atk-100 or smth.
Q: Do I have to subtract by multiples of 5?
A: Probably not, but I did to use clean numbers.
Premise:
You can put one Signature G-Max move on each of your Pokemon with the same typing as the move! This becomes a 90BP move with 16PP, can't miss, and physical/special based on whichever is higher. They deal 25% damage through protect.
This G-Max move also:
-gives you the highest stat of the Pokemon it belongs to (if multiple are highest, you gain the first stat- hp>atk>def>spa>spd>spe)
-gives you access to any of the abilities of that Pokemon
So some examples of combinations you can get access to:
Water: G-Max Foam Burst- lowers target speed by 2, 130 Atk, Sheer Force/Hyper Cutter
Grass: G-Max Sweetness- cures own status, 110 Hp, Thick Fat/Ripen/Gluttony
Psychic: G-Max Gravitas- sets Gravity, 120 Spdef, Frisk/Swarm
Here is the full list of GMax signature moves: https://bulbapedia.bulbagarden.net/wiki/G-Max_Move
Bans and Threats:
- G-Max Centiferno, G-Max Sandblast- these g-max moves trap, and the trap remains when they switch out, so it makes them extremely op at removing enemies. from what I know, G-Max Terror's trapping effect doesn't remain if the user switches out
- G-Max Resonance- I think even though ice types are mostly bad, having aurora veil on every team seems too optimal and prob will ruin the game.
-You can have only one of each G-Max move on your team.
-This is an OU metagame so all Ubers are banned
Some examples of threats in this tier:
Leafeon @ Leftovers
Ability: Thick Fat
EVs: 252 HP / 4 Atk / 252 Def
Impish Nature
- Synthesis
- Swords Dance
- G-Max Sweetness
- Knock Off
Appletun can offer a really useful move with G-Max Sweetness, which removes your own status, as well as giving 110 Hp and the super useful Thick Fat for grass types. It can either make a mon a very resilient wall or sweeper, like this Leafeon.
Weezing-Galar @ Leftovers
Ability: Neutralizing Gas
EVs: 252 HP / 116 Def / 140 SpD
Calm Nature
- G-Max Finale
- Defog
- Will-O-Wisp
- Toxic
Alcremie's G-Max Finale heals the user for 1/6th, which gives something like GWeezing some needed longevity- plus 121 Spdef helps patch up its worst stat and become a more reliable mixed wall. You have the option to take the G-Max mon's ability, but in this case GWeezing already has an amazing one.
Ribombee @ Weakness Policy
Ability: Tinted Lens
EVs: 252 HP / 4 SpD / 252 Spe
Timid Nature
- Moonblast
- Quiver Dance
- G-Max Befuddle
- Stored Power
Ribombee that can kill Heatran... that's probably dangerous, right? Even though Butterfree actually gives it worse stats (95->90 SpA), granting Tinted Lens can be worth it, plus Befuddle is a pretty dangerous attack itself that applies Poison or Paralysis.
Tinkaton (F) @ Life Orb
Ability: Sheer Force
EVs: 252 Atk / 4 Def / 252 Spe
Jolly Nature
- Play Rough
- Gigaton Hammer
- G-Max Steelsurge
- Knock Off
And then, one of the crazy damage options. Steelsurge is a really strong move that lays Steel spikes, which will probably be pretty defining in this metagame. Even though Melmetals signature offers more atk, Copperajah's offers a decent 130 plus Sheer Force boosts Play Rough to high numbers. Life Orb Gigaton Hammer will obliterate most things, so this Tinkaton will find plenty of opportunity to use Steelsurge and be a menace.
I think the GMax signatures have some OM potential because they offer effects you dont really see in mons. The generic max moves are pretty busted with the effects like always creating weather or boosting offenses with each click but the signatures seemed less op and more fun, and open some weird avenues that I think will lead to a fresh meta. I dont think youll see mons like the GWeezing or Leafeon in other tiers. I accidentally hit post too soon but thats fine lmao
Premise:
You can put one Signature G-Max move on each of your Pokemon with the same typing as the move! This becomes a 90BP move with 16PP, can't miss, and physical/special based on whichever is higher. They deal 25% damage through protect.
This G-Max move also:
-gives you the highest stat of the Pokemon it belongs to (if multiple are highest, you gain the first stat- hp>atk>def>spa>spd>spe)
-gives you access to any of the abilities of that Pokemon
So some examples of combinations you can get access to:
Water: G-Max Foam Burst- lowers target speed by 2, 130 Atk, Sheer Force/Hyper Cutter
Grass: G-Max Sweetness- cures own status, 110 Hp, Thick Fat/Ripen/Gluttony
Psychic: G-Max Gravitas- sets Gravity, 120 Spdef, Frisk/Swarm
Here is the full list of GMax signature moves: https://bulbapedia.bulbagarden.net/wiki/G-Max_Move
Bans and Threats:
- G-Max Centiferno, G-Max Sandblast- these g-max moves trap, and the trap remains when they switch out, so it makes them extremely op at removing enemies. from what I know, G-Max Terror's trapping effect doesn't remain if the user switches out
- G-Max Resonance- I think even though ice types are mostly bad, having aurora veil on every team seems too optimal and prob will ruin the game.
-You can have only one of each G-Max move on your team.
-This is an OU metagame so all Ubers are banned
Some examples of threats in this tier:
Leafeon @ Leftovers
Ability: Thick Fat
EVs: 252 HP / 4 Atk / 252 Def
Impish Nature
- Synthesis
- Swords Dance
- G-Max Sweetness
- Knock Off
Appletun can offer a really useful move with G-Max Sweetness, which removes your own status, as well as giving 110 Hp and the super useful Thick Fat for grass types. It can either make a mon a very resilient wall or sweeper, like this Leafeon.
Weezing-Galar @ Leftovers
Ability: Neutralizing Gas
EVs: 252 HP / 116 Def / 140 SpD
Calm Nature
- G-Max Finale
- Defog
- Will-O-Wisp
- Toxic
Alcremie's G-Max Finale heals the user for 1/6th, which gives something like GWeezing some needed longevity- plus 121 Spdef helps patch up its worst stat and become a more reliable mixed wall. You have the option to take the G-Max mon's ability, but in this case GWeezing already has an amazing one.
Ribombee @ Weakness Policy
Ability: Tinted Lens
EVs: 252 HP / 4 SpD / 252 Spe
Timid Nature
- Moonblast
- Quiver Dance
- G-Max Befuddle
- Stored Power
Ribombee that can kill Heatran... that's probably dangerous, right? Even though Butterfree actually gives it worse stats (95->90 SpA), granting Tinted Lens can be worth it, plus Befuddle is a pretty dangerous attack itself that applies Poison or Paralysis.
Tinkaton (F) @ Life Orb
Ability: Sheer Force
EVs: 252 Atk / 4 Def / 252 Spe
Jolly Nature
- Play Rough
- Gigaton Hammer
- G-Max Steelsurge
- Knock Off
And then, one of the crazy damage options. Steelsurge is a really strong move that lays Steel spikes, which will probably be pretty defining in this metagame. Even though Melmetals signature offers more atk, Copperajah's offers a decent 130 plus Sheer Force boosts Play Rough to high numbers. Life Orb Gigaton Hammer will obliterate most things, so this Tinkaton will find plenty of opportunity to use Steelsurge and be a menace.
I think the GMax signatures have some OM potential because they offer effects you dont really see in mons. The generic max moves are pretty busted with the effects like always creating weather or boosting offenses with each click but the signatures seemed less op and more fun, and open some weird avenues that I think will lead to a fresh meta. I dont think youll see mons like the GWeezing or Leafeon in other tiers. I accidentally hit post too soon but thats fine lmao
Simplimons
Metagame premise: The game is simplified now. 4 times weakness and 4 times resistances no longer exist they are now regular (2 times). Potential bans and threats: Lunala with shadow shield and moon light having no weaknesses at full Hp and is bulky. Any steel/bug types or water/ground types having only one weakness and a great defensive profile. Bastiodon now having a great defensive typing and access to foul play to deal with ghosts against the typical body press set. Frosmoth with ice scales has no weakness in the special side and may be able to sweep properly now. Okidogi now have a good defensive typing would benefiet a lot to it especially with toxic chain. Kingambit with a better defensive type and a regular weakness to fighting moves makes them a lot better. Gyarados now having 2 regular weakness with access to earthquake to decimate most electric types and rock types that come in it’s way with moxie seems very good. Questions for the community: What would be a better name for Simplimons and does the name express the premise well enough? What pokemon did I miss that would be a potential threat because I only focused on the defence part? would the om would work better as ubers as the template or ou? Should I add more to the metagame because as the name suggests maybe it is too simple?
Premise: All pokemon are able to have negative EVs in a stat, which lowers the base stat by the amount of EVs and distributes it between the other stats evenly. Example: If I have a Hoopa-Unbound with -165 EVs in Sp.Atk, then, because 165/5 is 33, its stats would become 113/193/93/5/163/113, giving it decent bulk and speed and an insane Attack, it is for these reasons that it would likely be banned.
Builds:
Mismagius @ Choice Specs
Ability: Levitate
Tera Type: Fairy
EVs: 4 HP / 252 SpA / -100 SpD / 252 Spe
Modest Nature
IVs: 0 Atk
- Draining Kiss
- Shadow Ball
- Trick
- Dark Pulse
With 80/80/80/125/5/125 spread, Mismagius becomes a lot more like Flutter Mane , and it leans even more into the glass cannon aspect, but it could probably still tank a weak physical attack.
Zoroark's new spread, 74/5/79/144/79/129, is a lot more min-maxed than its base form, hitting hard with special attacks and having decent speed that scarf could be swapped.
Bans & Clauses:
OU bans and clauses
As explained
Fur coat might be too good with a high defense, but maybe not.
Whatever else may be detrimental
Q&A
Q: What if I want to invest in the lowered stat?
A: You won't.
Q: Will I know what stat the opponent min-maxed
A: It will likely be displayed like in inheritance as smth like Atk-100 or smth.
Q: Do I have to subtract by multiples of 5?
A: Probably not, but I did to use clean numbers.
I would try to think on a different way to apply this, as is everyone would just give up on the offesive stat they wont use, which leaves no room for creativity, and if everyone just gain the same amount of stats on the same stats nothing really changes. Maybe instead of base stats you get extra evs to put wherever you want or something.
I wanna create a Doubles Mythical/Beast Pokémon format where, as the name suggests, only Mythical and Ultra Beast Pokémon are allowed. It would basically follow the rules of Doubles UU/OU, but all Mythical/Beast Pokémon with exclusive signature moves have their moves legal in this format.
Abilities? Do you mean items?
Metagame premise: Items replace abilities items. litems that are single use now are not single use. Potential bans and threats: Red card on a bulky mon especially if it has healing to sponge hits and heal back up and even set up to disrupt the opponent seems very good. Air balloon now acts as levitate on any pokemon including any ground Pokémon which includes pure electric types and poison/dark types can be broken because the item-abilities would work like regular abilities so the opponent can not know what item did you put in the ability slot so any ground move is unreliable against ground weak Pokémon. Most double items seems broken like double choice band or double weakness policy. White herb negating every lowered stat seem broken on most sets especially with moves like shell smash,draco meteor and close combat. Throat spray now turns every sound move to torch song seems really great especially on skeledirge who in single turn can raise 3 stages in special attack now. Questions for the community: What would be a better name for Abilities? Do you mean items? and does the name express the premise well enough? What items/items combination did I miss that would be a potential threat? would the om would work better as ubers as the template or ou?
Special more like physical
Metagame premise: There is only one physical stat now which is determined by what is stat is higher on the user: defence and attack (bulk up will boost the user’s physical by 2 stages, superpower will lower the user’s physical by 2 stages, curse will boost the user’s physical by 2 stages and lower the user’s speed by 1 stage if the user is not ghost type, Victory dance will boost the user’s physical by 2 stages and speed by 1 stage, coil will boost the user’s physical by 2 stages and accuracy by 1 stage and shell smash will boost the user’s physical,special attack and speed by 2 stages and lower the user’s special defence by 1 stage.) Potential bans and threats: Cloyster with 180 physical and shell smash. Deoxys defence having cosmic power,extreme speed and 160 physical, toxapex having 152 physical and merciless. Stamina boosts the user’s physical by 1 stage every hit. Questions for the community: What would be a better name for special more like physical and does the name express the premise well enough? What pokemon or/and abilities did I miss that would be a potential threat? would the om would work better as ubers as the template or ou? How would body press work should it keep it’s gimmick and now will be using the user’s special defence now or staying the way it it’s and just use the user’s physical?
All Pokémon must be nicknamed after a different species to take as a "burden"; each base stat uses the lower value between the two species, and the first ability of the burden is gained as an extra ability in-battle.
Examples:
Lycanroc-Dusk (Arcanine-Hisui) @ Heavy Duty Boots / Choice Band
Ability: Rock Head
Tera Type: Rock
EVs: 252 Atk / 4 SpD / 252 Spe
Jolly/Adamant Nature
- Flare Blitz
- Head Smash
- Extreme Speed
- Close Combat Changes: 75/115/65/55/65/90, +Tough Claws
Arcanine-Hisui loses a dramatic number of stat points with Lycanroc-Dusk as its burden, but gaining Tough Claws in-battle increases its breaking power significantly, allowing it to run items like HDB without cutting into its power too drastically.
Iron Valiant (Cinderace) @ Booster Energy
Ability: Blaze
Tera Type: Dark
EVs: 252 Atk / 4 SpD / 252 Spe
Jolly Nature
- Pyro Ball
- Sucker Punch
- High Jump Kick
- Swords Dance Changes: 74/116/75/65/75/116, +Quark Drive
As Iron Valiant has better or similar stats than Cinderace in every category, this is almost functionally just a Cinderace with Quark Drive tacked on.
Ting-Lu (Clodsire) @ Black Sludge
Ability: Water Absorb / Unaware
Tera Type: Flying
EVs: 252 HP / 4 Atk / 252 SpD
Nature
- Earthquake
- Recover
- Toxic
- Spikes Changes: 130/75/60/45/80/20, +Vessel of Ruin
Ting-Lu outperforms Clodsire in nearly every stat except Special Defense and grants Vessel of Ruin, which actually increases its special bulk beyond its original form even with a 20 point stat drop.
Clauses:
Standard OM
Sleep Moves Clause
Burden Applicability Clause - Bans and Species clause apply to burdens. This means that you can't have a Ting-Lu and a Ting-Lu burden on the same team, can't name after a banned Pokémon, and you can't use Medicham as a burden because it would grant a banned ability.
Note that Tera clause is tentatively not present; this is subject to change, as stacking abilities could dangerously spike the average power level of the tier.
Versatile Pokémon with good all-around stats and good abilities are premier burdens to inherit stats and abilities from.
Minmaxed Pokémon have less important stats to lose from their burdens and more room to benefit from added abilities.
The presence of an excellent ability may offset the stat losses incurred by some burdens.
Pokémon with specific roles or otherwise generically good Pokémon are still likely to be viable if not outright broken after factoring in innate abilities.
Pokémon who are normally held back by the presence of a fatal flaw may become potentially uncompetitive once that flaw is made up for by its burden.
Drought is watchlist-worthy as many of the Protosynthesis Paradoxes are also excellent burdens stat-wise.
Q&A
How do ability-ignoring effects work? - Neutralizing Gas suppresses both of the opponent's abilities, and none of the user's. Mold Breaker ignores both abilities.
How are form changes handled? - Base stats are recalculated on form change. Innate abilities are kept.
Do abilities stack? - Tentatively, abilities are allowed to stack. If consistency in ability behaviors is an issue, this should be changed.
Questions for the community
Is it worth figuring out an implementation that allows you to choose which innate ability of the burden to possess?
What Pokémon are worth looking at in terms of unbans?
Is this too similar to any other stat formula metagames and is it too complex?
Self-Hosting Code
I've provided code for anyone savvy enough to selfhost the Showdown repository.
JavaScript:
{
name: "[Gen 9] Natural Burden",
desc: `All Pokémon must be named after another to take as a burden, merging the lower of their stats and granting the burden's primary ability as compensation.`,
mod: 'naturalburden',
searchShow: false,
ruleset: ['Standard OMs', 'Sleep Moves Clause'],
banlist: [
'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Deoxys', 'Dialga', 'Dialga-Origin', 'Eternatus',
'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Koraidon', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia',
'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn Wings', 'Necrozma-Dusk Mane', 'Palkia', 'Palkia-Origin',
'Rayquaza', 'Reshiram', 'Shaymin-Sky', 'Sneasler', 'Solgaleo', 'Spectrier', 'Urshifu', 'Zacian', 'Zacian-Crowned', 'Zekrom',
'Pure Power', 'King’s Rock', 'Razor Fang',
],
restricted: [],
onValidateTeam(team) {
const nums = new Set<number>();
for (const set of team) {
const name = set.name;
const species = this.dex.species.get(name);
const species2 = this.dex.species.get(set.species);
if (nums.has(species.num)) {
return [`${species.name} has been used multiple times as a burden or base.`,];
}
nums.add(species.num);
if (nums.has(species2.num)) {
return [`${species2.name} has been used multiple times as a burden or base.`,];
}
nums.add(species2.num);
if (species.exists && species.name !== set.species) nums.add(species.num);
}
},
validateSet(set, teamHas) {
const burden = this.dex.species.get(set.name);
const species = this.dex.species.get(set.species);
let problems = this.dex.formats.get('Obtainable Misc').onChangeSet?.call(this, set, this.format) || null;
if (Array.isArray(problems) && problems.length) return problems;
const nonStandard = (!this.ruleTable.has('natdexmod') && burden.isNonstandard === 'Past') ||
burden.isNonstandard === 'Future';
const capBurden = !this.ruleTable.has('+tag:cap') && burden.isNonstandard === 'CAP';
if (!burden.exists || nonStandard || capBurden) {
return [`${burden.name} is not a legal burden.`];
}
if (burden.num == species.num) {
return [`${set.name} is not named after a distinct burden.`]
}
const check = this.checkSpecies(set, species, species, {});
if (check) return [check];
const nonstandard = !this.ruleTable.has('natdexmod') && species.isNonstandard === 'Past';
const isCap = !this.ruleTable.has('+tag:cap') && species.isNonstandard === 'CAP';
if (!species.exists || nonstandard || isCap || species === burden) return this.validateSet(set, teamHas);
const isUnreleased = (burden.tier === "Unreleased" && burden.isNonstandard === "Unobtainable" &&
!this.ruleTable.has('+unobtainable'));
if (burden.battleOnly) {
return [`${species.name} cannot take ${burden.name} as its burden because it isn't a base form.`];
}
if (isUnreleased) {
return [`${species.name} cannot take ${burden.name} as its burden because it's unreleased.`];
}
if (this.ruleTable.isBannedSpecies(burden)) {
return [`${species.name} cannot take ${burden.name} as its burden because it is banned.`];
}
const ability = this.dex.abilities.get(burden.abilities[0]);
if (this.ruleTable.isBanned(`ability:${ability.id}`)) {
return [`${species.name} cannot take ${burden.name} as its burden because it has a banned ability.`];
}
set.name = species.name;
problems = this.validateSet(set, teamHas);
set.name = burden.name;
return problems;
},
onModifySpecies(species, target, source, effect) {
if (!target) return;
if (effect && ['imposter', 'transform'].includes(effect.id)) return;
if (target.set.name === target.set.species) return;
const burden = this.dex.species.get(target.set.name);
if (!burden.exists) return;
if (species.battleOnly) return;
const isUnreleased = (burden.tier === "Unreleased" && burden.isNonstandard === "Unobtainable" &&
!this.ruleTable.has('+unobtainable'));
if (burden.battleOnly || isUnreleased) return;
const final = this.dex.deepClone(species);
final.bst = 0;
let i: StatID;
for (i in species.baseStats) {
final.baseStats[i] = Math.min(species.baseStats[i], burden.baseStats[i]);
final.bst += final.baseStats[i];
}
return final;
},
onBeforeSwitchIn(pokemon) {
if (!pokemon.m.innate) {
const fusee = this.dex.species.get(pokemon.set.name);
if (!fusee.exists) return;
const innate = fusee.abilities[0];
if (this.toID(innate) != this.toID(pokemon.ability)) {
pokemon.m.innate = innate
}
}
const effect = 'ability:' + this.toID(pokemon.m.innate);
pokemon.volatiles[effect] = this.initEffectState({ id: effect, target: pokemon });
},
onSwitchOut(pokemon) {
for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) {
pokemon.removeVolatile(innate);
}
},
onFaint(pokemon) {
for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) {
const innateEffect = this.dex.conditions.get(innate) as Effect;
this.singleEvent('End', innateEffect, null, pokemon);
}
},
},
JavaScript:
export const Scripts: ModdedBattleScriptsData = {
gen: 9,
field: {
suppressingWeather() {
for (const pokemon of this.battle.getAllActive()) {
if (pokemon && !pokemon.fainted && !pokemon.ignoringAbility() &&
(pokemon.getAbility().suppressWeather || this.battle.dex.abilities.get(pokemon.m.innate).suppressWeather)) {
return true;
}
}
return false;
},
},
pokemon: {
ignoringAbility() {
if (this.battle.gen >= 5 && !this.isActive) return true;
// Certain Abilities won't activate while Transformed, even if they ordinarily couldn't be suppressed (e.g. Disguise)
if (this.getAbility().flags['notransform'] && this.transformed) return true;
if (this.getAbility().flags['cantsuppress']) return false;
if (this.volatiles['gastroacid']) return true;
// Check if any active pokemon have the ability Neutralizing Gas
if (this.hasItem('Ability Shield') || this.m.innate == 'neutralizinggas' ||
this.ability === ('neutralizinggas' as ID)) return false;
for (const pokemon of this.battle.getAllActive()) {
// can't use hasAbility because it would lead to infinite recursion
if ((pokemon.m.innate == 'neutralizinggas' || pokemon.ability === ('neutralizinggas' as ID)) &&
!pokemon.volatiles['gastroacid'] && !pokemon.transformed &&
!pokemon.abilityState.ending && !this.volatiles['commanding']) {
return true;
}
}
return false;
},
hasAbility(ability) {
if (this.ignoringAbility()) return false;
if (Array.isArray(ability)) return ability.some(abil => this.hasAbility(abil));
ability = this.battle.toID(ability);
return this.ability === ability || !!this.volatiles['ability:' + ability];
},
transformInto(pokemon, effect) {
const species = pokemon.species;
if (pokemon.fainted || this.illusion || pokemon.illusion || (pokemon.volatiles['substitute'] && this.battle.gen >= 5) ||
(pokemon.transformed && this.battle.gen >= 2) || (this.transformed && this.battle.gen >= 5) ||
species.name === 'Eternatus-Eternamax') {
return false;
}
if (!this.setSpecies(species, effect, true)) return false;
this.transformed = true;
this.weighthg = pokemon.weighthg;
const types = pokemon.getTypes(true, true);
this.setType(pokemon.volatiles['roost'] ? pokemon.volatiles['roost'].typeWas : types, true);
this.addedType = pokemon.addedType;
this.knownType = this.isAlly(pokemon) && pokemon.knownType;
this.apparentType = pokemon.apparentType;
let statName: StatIDExceptHP;
for (statName in this.storedStats) {
this.storedStats[statName] = pokemon.storedStats[statName];
if (this.modifiedStats) this.modifiedStats[statName] = pokemon.modifiedStats![statName]; // Gen 1: Copy modified stats.
}
this.moveSlots = [];
this.set.ivs = (this.battle.gen >= 5 ? this.set.ivs : pokemon.set.ivs);
this.hpType = (this.battle.gen >= 5 ? this.hpType : pokemon.hpType);
this.hpPower = (this.battle.gen >= 5 ? this.hpPower : pokemon.hpPower);
this.timesAttacked = pokemon.timesAttacked;
for (const [i, moveSlot] of pokemon.moveSlots.entries()) {
let moveName = moveSlot.move;
if (moveSlot.id === 'hiddenpower') {
moveName = 'Hidden Power ' + this.hpType;
}
const move = this.battle.dex.moves.get(moveSlot.id);
const pp = Math.min(5, move.pp);
this.moveSlots.push({
move: moveName,
id: moveSlot.id,
pp,
maxpp: this.battle.gen >= 5 ? pp : this.battle.calculatePP(move, this.ppUps[i] || 0),
target: moveSlot.target,
disabled: false,
used: false,
virtual: true,
});
}
let boostName: BoostID;
for (boostName in pokemon.boosts) {
this.boosts[boostName] = pokemon.boosts[boostName];
}
if (this.battle.gen >= 6) {
// we need to remove all crit volatiles before adding any crit volatiles
const volatilesToCopy = ['dragoncheer', 'focusenergy', 'gmaxchistrike', 'laserfocus'];
for (const volatile of volatilesToCopy) this.removeVolatile(volatile);
for (const volatile of volatilesToCopy) {
if (pokemon.volatiles[volatile]) {
this.addVolatile(volatile);
if (volatile === 'gmaxchistrike') this.volatiles[volatile].layers = pokemon.volatiles[volatile].layers;
if (volatile === 'dragoncheer') this.volatiles[volatile].hasDragonType = pokemon.volatiles[volatile].hasDragonType;
}
}
}
if (effect) {
this.battle.add('-transform', this, pokemon, '[from] ' + effect.fullname);
} else {
this.battle.add('-transform', this, pokemon);
}
if (this.terastallized && this.terastallized !== this.apparentType) {
this.battle.add('-start', this, 'typechange', this.terastallized, '[silent]');
this.apparentType = this.terastallized;
}
if (this.battle.gen > 2) {
this.setAbility(pokemon.ability, this, null, true);
if (this.m.innate) {
this.removeVolatile('ability:' + this.m.innate);
}
if (pokemon.m.innate) {
this.addVolatile('ability:' + pokemon.m.innate, this);
}
}
// Change formes based on held items (for Transform)
// Only ever relevant in Generation 4 since Generation 3 didn't have item-based forme changes
if (this.battle.gen === 4) {
if (this.species.num === 487) {
// Giratina formes
if (this.species.name === 'Giratina' && this.item === 'griseousorb') {
this.formeChange('Giratina-Origin');
} else if (this.species.name === 'Giratina-Origin' && this.item !== 'griseousorb') {
this.formeChange('Giratina');
}
}
if (this.species.num === 493) {
// Arceus formes
const item = this.getItem();
const targetForme = (item?.onPlate ? 'Arceus-' + item.onPlate : 'Arceus');
if (this.species.name !== targetForme) {
this.formeChange(targetForme);
}
}
}
return true;
},
/**
* Changes this Pokemon's forme to match the given speciesId (or species).
* This function handles all changes to stats, ability, type, species, etc.
* as well as sending all relevant messages sent to the client.
*/
formeChange(speciesId, source, isPermanent, message) {
if (!source) source = this.battle.effect;
const rawSpecies = this.battle.dex.species.get(speciesId);
const species = this.setSpecies(rawSpecies, source);
if (!species) return false;
if (this.battle.gen <= 2) return true;
// The species the opponent sees
const apparentSpecies =
this.illusion ? this.illusion.species.name : species.baseSpecies;
if (isPermanent) {
this.baseSpecies = rawSpecies;
this.details = this.getUpdatedDetails();
this.battle.add('detailschange', this, (this.illusion || this).details);
if (source.effectType === 'Item') {
this.canTerastallize = null; // National Dex behavior
if (source.zMove) {
this.battle.add('-burst', this, apparentSpecies, species.requiredItem);
this.moveThisTurnResult = true; // Ultra Burst counts as an action for Truant
} else if (source.isPrimalOrb) {
if (this.illusion) {
this.ability = '';
this.battle.add('-primal', this.illusion);
} else {
this.battle.add('-primal', this);
}
} else {
this.battle.add('-mega', this, apparentSpecies, species.requiredItem);
this.moveThisTurnResult = true; // Mega Evolution counts as an action for Truant
}
} else if (source.effectType === 'Status') {
// Shaymin-Sky -> Shaymin
this.battle.add('-formechange', this, species.name, message);
}
} else {
if (source.effectType === 'Ability') {
this.battle.add('-formechange', this, species.name, message, `[from] ability: ${source.name}`);
} else {
this.battle.add('-formechange', this, this.illusion ? this.illusion.species.name : species.name, message);
}
}
if (isPermanent && !['disguise', 'iceface', 'ability:disguise', 'ability:iceface'].includes(source.id)) {
if (this.illusion) {
this.ability = ''; // Don't allow Illusion to wear off
}
this.setAbility(species.abilities['0'], null, null, true);
this.baseAbility = this.ability;
}
if (this.terastallized && this.terastallized !== this.apparentType) {
this.battle.add('-start', this, 'typechange', this.terastallized, '[silent]');
this.apparentType = this.terastallized;
}
return true;
},
},
};
All Pokémon must be nicknamed after a different species to take as a "burden"; each base stat uses the lower value between the two species, and the first ability of the burden is gained as an extra ability in-battle.
Examples:
Lycanroc-Dusk (Arcanine-Hisui) @ Heavy Duty Boots / Choice Band
Ability: Rock Head
Tera Type: Rock
EVs: 252 Atk / 4 SpD / 252 Spe
Jolly/Adamant Nature
- Flare Blitz
- Head Smash
- Extreme Speed
- Close Combat Changes: 75/115/65/55/65/90, +Tough Claws
Arcanine-Hisui loses a dramatic number of stat points with Lycanroc-Dusk as its burden, but gaining Tough Claws in-battle increases its breaking power significantly, allowing it to run items like HDB without cutting into its power too drastically.
Iron Valiant (Cinderace) @ Booster Energy
Ability: Blaze
Tera Type: Dark
EVs: 252 Atk / 4 SpD / 252 Spe
Jolly Nature
- Pyro Ball
- Sucker Punch
- High Jump Kick
- Swords Dance Changes: 74/116/75/65/75/116, +Quark Drive
As Iron Valiant has better or similar stats than Cinderace in every category, this is almost functionally just a Cinderace with Quark Drive tacked on.
Ting-Lu (Clodsire) @ Black Sludge
Ability: Water Absorb / Unaware
Tera Type: Flying
EVs: 252 HP / 4 Atk / 252 SpD
Nature
- Earthquake
- Recover
- Toxic
- Spikes Changes: 130/75/60/45/80/20, +Vessel of Ruin
Ting-Lu outperforms Clodsire in nearly every stat except Special Defense and grants Vessel of Ruin, which actually increases its special bulk beyond its original form even with a 20 point stat drop.
Clauses:
Standard OM
Sleep Moves Clause
Burden Species Clause - Burdens are counted towards species clause and species clause applies to burdens; i.e. if you have a Pokémon named Ting-Lu, you may not use a Ting-Lu on your team, and you can't have multiple Pokémon named Ting-Lu.
Burden Abilities Clause - A burden that would grant a banned ability is not allowed.
Note that Tera clause is tentatively not present; this is subject to change, as stacking abilities could dangerously spike the average power level of the tier.
Versatile Pokémon with good all-around stats and good abilities are premier burdens to inherit stats and abilities from.
Minmaxed Pokémon have less important stats to lose from their burdens and more room to benefit from added abilities.
The presence of an excellent ability may offset the stat losses incurred by some burdens.
Pokémon with specific roles or otherwise generically good Pokémon are still likely to be viable if not outright broken after factoring in innate abilities.
Pokémon who are normally held back by the presence of a fatal flaw may become potentially uncompetitive once that flaw is made up for by its burden.
Drought is watchlist-worthy as many of the Protosynthesis Paradoxes are also excellent burdens stat-wise.
Q&A
How do ability-ignoring effects work? - Neutralizing Gas suppresses both of the opponent's abilities, and none of the user's. Mold Breaker ignores both abilities.
How are form changes handled? - Base stats are recalculated on form change. Innate abilities are kept.
Do abilities stack? - Tentatively, abilities are allowed to stack. If consistency in ability behaviors is an issue, this should be changed.
Questions for the community
Is it worth figuring out an implementation that allows you to choose which innate ability of the burden to possess?
What Pokémon are worth looking at in terms of unbans?
Is this too similar to any other stat formula metagames and is it too complex?
Self-Hosting Code
I've provided code for anyone savvy enough to selfhost the Showdown repository.
JavaScript:
{
name: "[Gen 9] Natural Burden",
desc: `All Pokémon must be named after another to take as a burden, merging the lower of their stats and granting the burden's primary ability as compensation.`,
mod: 'naturalburden',
searchShow: false,
ruleset: ['Standard OMs', 'Sleep Moves Clause'],
banlist: [
'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Deoxys', 'Dialga', 'Dialga-Origin', 'Eternatus',
'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Koraidon', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia',
'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn Wings', 'Necrozma-Dusk Mane', 'Noivern', 'Palkia', 'Palkia-Origin',
'Rayquaza', 'Reshiram', 'Shaymin-Sky', 'Sneasler', 'Solgaleo', 'Spectrier', 'Urshifu', 'Zacian', 'Zacian-Crowned', 'Zekrom',
'Pure Power', 'King’s Rock', 'Razor Fang',
],
restricted: [],
onValidateTeam(team) {
const nums = new Set<number>();
for (const set of team) {
const name = set.name;
const species = this.dex.species.get(name);
const species2 = this.dex.species.get(set.species);
if (nums.has(species.num)) {
return [`${species.name} has been used multiple times as a burden or base.`,];
}
nums.add(species.num);
if (nums.has(species2.num)) {
return [`${species2.name} has been used multiple times as a burden or base.`,];
}
nums.add(species2.num);
if (species.exists && species.name !== set.species) nums.add(species.num);
}
},
validateSet(set, teamHas) {
const burden = this.dex.species.get(set.name);
const species = this.dex.species.get(set.species);
let problems = this.dex.formats.get('Obtainable Misc').onChangeSet?.call(this, set, this.format) || null;
if (Array.isArray(problems) && problems.length) return problems;
const nonStandard = (!this.ruleTable.has('natdexmod') && burden.isNonstandard === 'Past') ||
burden.isNonstandard === 'Future';
const capBurden = !this.ruleTable.has('+tag:cap') && burden.isNonstandard === 'CAP';
if (!burden.exists || nonStandard || capBurden) {
return [`${burden.name} is not a legal burden.`];
}
if (burden.num == species.num) {
return [`${set.name} is not named after a distinct burden.`]
}
const check = this.checkSpecies(set, species, species, {});
if (check) return [check];
const nonstandard = !this.ruleTable.has('natdexmod') && species.isNonstandard === 'Past';
const isCap = !this.ruleTable.has('+tag:cap') && species.isNonstandard === 'CAP';
if (!species.exists || nonstandard || isCap || species === burden) return this.validateSet(set, teamHas);
const isUnreleased = (burden.tier === "Unreleased" && burden.isNonstandard === "Unobtainable" &&
!this.ruleTable.has('+unobtainable'));
if (burden.battleOnly) {
return [`${species.name} cannot take ${burden.name} as its burden because it isn't a base form.`];
}
if (isUnreleased) {
return [`${species.name} cannot take ${burden.name} as its burden because it's unreleased.`];
}
if (this.ruleTable.isBannedSpecies(burden)) {
return [`${species.name} cannot take ${burden.name} as its burden because it is banned.`];
}
const ability = this.dex.abilities.get(burden.abilities[0]);
if (this.ruleTable.isBanned(`ability:${ability.id}`)) {
return [`${species.name} cannot take ${burden.name} as its burden because it has a banned ability.`];
}
set.name = species.name;
problems = this.validateSet(set, teamHas);
set.name = burden.name;
return problems;
},
onModifySpecies(species, target, source, effect) {
if (!target) return;
if (effect && ['imposter', 'transform'].includes(effect.id)) return;
if (target.set.name === target.set.species) return;
const burden = this.dex.species.get(target.set.name);
if (!burden.exists) return;
if (species.battleOnly) return;
const isUnreleased = (burden.tier === "Unreleased" && burden.isNonstandard === "Unobtainable" &&
!this.ruleTable.has('+unobtainable'));
if (burden.battleOnly || isUnreleased) return;
const final = this.dex.deepClone(species);
final.bst = 0;
let i: StatID;
for (i in species.baseStats) {
final.baseStats[i] = Math.min(species.baseStats[i], burden.baseStats[i]);
final.bst += final.baseStats[i];
}
return final;
},
onBeforeSwitchIn(pokemon) {
if (!pokemon.m.innate) {
const fusee = this.dex.species.get(pokemon.set.name);
if (!fusee.exists) return;
const innate = fusee.abilities[0];
if (this.toID(innate) != this.toID(pokemon.ability)) {
pokemon.m.innate = innate
}
}
const effect = 'ability:' + this.toID(pokemon.m.innate);
pokemon.volatiles[effect] = this.initEffectState({ id: effect, target: pokemon });
},
onSwitchOut(pokemon) {
for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) {
pokemon.removeVolatile(innate);
}
},
onFaint(pokemon) {
for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) {
const innateEffect = this.dex.conditions.get(innate) as Effect;
this.singleEvent('End', innateEffect, null, pokemon);
}
},
},
JavaScript:
export const Scripts: ModdedBattleScriptsData = {
gen: 9,
field: {
suppressingWeather() {
for (const pokemon of this.battle.getAllActive()) {
if (pokemon && !pokemon.fainted && !pokemon.ignoringAbility() &&
(pokemon.getAbility().suppressWeather || this.battle.dex.abilities.get(pokemon.m.innate).suppressWeather)) {
return true;
}
}
return false;
},
},
pokemon: {
ignoringAbility() {
if (this.battle.gen >= 5 && !this.isActive) return true;
// Certain Abilities won't activate while Transformed, even if they ordinarily couldn't be suppressed (e.g. Disguise)
if (this.getAbility().flags['notransform'] && this.transformed) return true;
if (this.getAbility().flags['cantsuppress']) return false;
if (this.volatiles['gastroacid']) return true;
// Check if any active pokemon have the ability Neutralizing Gas
if (this.hasItem('Ability Shield') || this.m.innate == 'neutralizinggas' ||
this.ability === ('neutralizinggas' as ID)) return false;
for (const pokemon of this.battle.getAllActive()) {
// can't use hasAbility because it would lead to infinite recursion
if ((pokemon.m.innate == 'neutralizinggas' || pokemon.ability === ('neutralizinggas' as ID)) &&
!pokemon.volatiles['gastroacid'] && !pokemon.transformed &&
!pokemon.abilityState.ending && !this.volatiles['commanding']) {
return true;
}
}
return false;
},
hasAbility(ability) {
if (this.ignoringAbility()) return false;
if (Array.isArray(ability)) return ability.some(abil => this.hasAbility(abil));
ability = this.battle.toID(ability);
return this.ability === ability || !!this.volatiles['ability:' + ability];
},
transformInto(pokemon, effect) {
const species = pokemon.species;
if (pokemon.fainted || this.illusion || pokemon.illusion || (pokemon.volatiles['substitute'] && this.battle.gen >= 5) ||
(pokemon.transformed && this.battle.gen >= 2) || (this.transformed && this.battle.gen >= 5) ||
species.name === 'Eternatus-Eternamax') {
return false;
}
if (!this.setSpecies(species, effect, true)) return false;
this.transformed = true;
this.weighthg = pokemon.weighthg;
const types = pokemon.getTypes(true, true);
this.setType(pokemon.volatiles['roost'] ? pokemon.volatiles['roost'].typeWas : types, true);
this.addedType = pokemon.addedType;
this.knownType = this.isAlly(pokemon) && pokemon.knownType;
this.apparentType = pokemon.apparentType;
let statName: StatIDExceptHP;
for (statName in this.storedStats) {
this.storedStats[statName] = pokemon.storedStats[statName];
if (this.modifiedStats) this.modifiedStats[statName] = pokemon.modifiedStats![statName]; // Gen 1: Copy modified stats.
}
this.moveSlots = [];
this.set.ivs = (this.battle.gen >= 5 ? this.set.ivs : pokemon.set.ivs);
this.hpType = (this.battle.gen >= 5 ? this.hpType : pokemon.hpType);
this.hpPower = (this.battle.gen >= 5 ? this.hpPower : pokemon.hpPower);
this.timesAttacked = pokemon.timesAttacked;
for (const [i, moveSlot] of pokemon.moveSlots.entries()) {
let moveName = moveSlot.move;
if (moveSlot.id === 'hiddenpower') {
moveName = 'Hidden Power ' + this.hpType;
}
const move = this.battle.dex.moves.get(moveSlot.id);
const pp = Math.min(5, move.pp);
this.moveSlots.push({
move: moveName,
id: moveSlot.id,
pp,
maxpp: this.battle.gen >= 5 ? pp : this.battle.calculatePP(move, this.ppUps[i] || 0),
target: moveSlot.target,
disabled: false,
used: false,
virtual: true,
});
}
let boostName: BoostID;
for (boostName in pokemon.boosts) {
this.boosts[boostName] = pokemon.boosts[boostName];
}
if (this.battle.gen >= 6) {
// we need to remove all crit volatiles before adding any crit volatiles
const volatilesToCopy = ['dragoncheer', 'focusenergy', 'gmaxchistrike', 'laserfocus'];
for (const volatile of volatilesToCopy) this.removeVolatile(volatile);
for (const volatile of volatilesToCopy) {
if (pokemon.volatiles[volatile]) {
this.addVolatile(volatile);
if (volatile === 'gmaxchistrike') this.volatiles[volatile].layers = pokemon.volatiles[volatile].layers;
if (volatile === 'dragoncheer') this.volatiles[volatile].hasDragonType = pokemon.volatiles[volatile].hasDragonType;
}
}
}
if (effect) {
this.battle.add('-transform', this, pokemon, '[from] ' + effect.fullname);
} else {
this.battle.add('-transform', this, pokemon);
}
if (this.terastallized && this.terastallized !== this.apparentType) {
this.battle.add('-start', this, 'typechange', this.terastallized, '[silent]');
this.apparentType = this.terastallized;
}
if (this.battle.gen > 2) {
this.setAbility(pokemon.ability, this, null, true);
if (this.m.innate) {
this.removeVolatile('ability:' + this.m.innate);
}
if (pokemon.m.innate) {
this.addVolatile('ability:' + pokemon.m.innate, this);
}
}
// Change formes based on held items (for Transform)
// Only ever relevant in Generation 4 since Generation 3 didn't have item-based forme changes
if (this.battle.gen === 4) {
if (this.species.num === 487) {
// Giratina formes
if (this.species.name === 'Giratina' && this.item === 'griseousorb') {
this.formeChange('Giratina-Origin');
} else if (this.species.name === 'Giratina-Origin' && this.item !== 'griseousorb') {
this.formeChange('Giratina');
}
}
if (this.species.num === 493) {
// Arceus formes
const item = this.getItem();
const targetForme = (item?.onPlate ? 'Arceus-' + item.onPlate : 'Arceus');
if (this.species.name !== targetForme) {
this.formeChange(targetForme);
}
}
}
return true;
},
/**
* Changes this Pokemon's forme to match the given speciesId (or species).
* This function handles all changes to stats, ability, type, species, etc.
* as well as sending all relevant messages sent to the client.
*/
formeChange(speciesId, source, isPermanent, message) {
if (!source) source = this.battle.effect;
const rawSpecies = this.battle.dex.species.get(speciesId);
const species = this.setSpecies(rawSpecies, source);
if (!species) return false;
if (this.battle.gen <= 2) return true;
// The species the opponent sees
const apparentSpecies =
this.illusion ? this.illusion.species.name : species.baseSpecies;
if (isPermanent) {
this.baseSpecies = rawSpecies;
this.details = this.getUpdatedDetails();
this.battle.add('detailschange', this, (this.illusion || this).details);
if (source.effectType === 'Item') {
this.canTerastallize = null; // National Dex behavior
if (source.zMove) {
this.battle.add('-burst', this, apparentSpecies, species.requiredItem);
this.moveThisTurnResult = true; // Ultra Burst counts as an action for Truant
} else if (source.isPrimalOrb) {
if (this.illusion) {
this.ability = '';
this.battle.add('-primal', this.illusion);
} else {
this.battle.add('-primal', this);
}
} else {
this.battle.add('-mega', this, apparentSpecies, species.requiredItem);
this.moveThisTurnResult = true; // Mega Evolution counts as an action for Truant
}
} else if (source.effectType === 'Status') {
// Shaymin-Sky -> Shaymin
this.battle.add('-formechange', this, species.name, message);
}
} else {
if (source.effectType === 'Ability') {
this.battle.add('-formechange', this, species.name, message, `[from] ability: ${source.name}`);
} else {
this.battle.add('-formechange', this, this.illusion ? this.illusion.species.name : species.name, message);
}
}
if (isPermanent && !['disguise', 'iceface', 'ability:disguise', 'ability:iceface'].includes(source.id)) {
if (this.illusion) {
this.ability = ''; // Don't allow Illusion to wear off
}
this.setAbility(species.abilities['0'], null, null, true);
this.baseAbility = this.ability;
}
if (this.terastallized && this.terastallized !== this.apparentType) {
this.battle.add('-start', this, 'typechange', this.terastallized, '[silent]');
this.apparentType = this.terastallized;
}
return true;
},
},
};
Can I nickname my mon in this meta the name of a banned mon? Can I nickname my Great Tusk "Groudon", for example?
If I nickname my mon the name of a form that can only be assumed in battle, do I use the base stats of that form anyway? For example, how worthwhile is nicknaming my mon "Groudon-Primal" or "Zamazenta-Crowned"?
Can I nickname my mon the name of a mon or form restricted to National Dex this generation (e.g. "Kartana" or "Pinsir-Mega" or "Starmie-Mega" or "Necrozma-Ultra")?
What did Noivern do wrong in this meta since, assuming the last 2 do nothing, nothing can grant it Aerilate or Dragonize for Boomburst?
I don't know if this is currently possible, but if the teambuilder were able to display what type a pokemon would now be this metagame would be fairly easy to play. Otherwise building teams seems quite difficult. Additionally the type of a pokemon should be displayed in the battle when that mon is in play.
(This is more so a criticism of the current limits of the teambuilder - as many OMs are also plagued by this issue.)
Can I nickname my mon in this meta the name of a banned mon? Can I nickname my Great Tusk "Groudon", for example?
If I nickname my mon the name of a form that can only be assumed in battle, do I use the base stats of that form anyway? For example, how worthwhile is nicknaming my mon "Groudon-Primal" or "Zamazenta-Crowned"?
Can I nickname my mon the name of a mon or form restricted to National Dex this generation (e.g. "Kartana" or "Pinsir-Mega" or "Starmie-Mega" or "Necrozma-Ultra")?
What did Noivern do wrong in this meta since, assuming the last 2 do nothing, nothing can grant it Aerilate or Dragonize for Boomburst?
Oh I forgot to mention that you can't name after banned mons, thanks for catching that. Anything that you use as a nickname has to be a legal Pokemon you can use in the builder, and no battle-only forms, megas, etc. This means something like Rotom-Wash is OK, but Darmanitan-Zen is not (and if Zama-C was legal to use then it wouldn't be a legal burden either).
as for Noivern I just copied a banlist from another OM and modified it, that's definitely not intentional, thanks for catching that
All Pokémon must be nicknamed after a different species to take as a "burden"; each base stat uses the lower value between the two species, and the first ability of the burden is gained as an extra ability in-battle.
Examples:
Lycanroc-Dusk (Arcanine-Hisui) @ Heavy Duty Boots / Choice Band
Ability: Rock Head
Tera Type: Rock
EVs: 252 Atk / 4 SpD / 252 Spe
Jolly/Adamant Nature
- Flare Blitz
- Head Smash
- Extreme Speed
- Close Combat Changes: 75/115/65/55/65/90, +Tough Claws
Arcanine-Hisui loses a dramatic number of stat points with Lycanroc-Dusk as its burden, but gaining Tough Claws in-battle increases its breaking power significantly, allowing it to run items like HDB without cutting into its power too drastically.
Iron Valiant (Cinderace) @ Booster Energy
Ability: Blaze
Tera Type: Dark
EVs: 252 Atk / 4 SpD / 252 Spe
Jolly Nature
- Pyro Ball
- Sucker Punch
- High Jump Kick
- Swords Dance Changes: 74/116/75/65/75/116, +Quark Drive
As Iron Valiant has better or similar stats than Cinderace in every category, this is almost functionally just a Cinderace with Quark Drive tacked on.
Ting-Lu (Clodsire) @ Black Sludge
Ability: Water Absorb / Unaware
Tera Type: Flying
EVs: 252 HP / 4 Atk / 252 SpD
Nature
- Earthquake
- Recover
- Toxic
- Spikes Changes: 130/75/60/45/80/20, +Vessel of Ruin
Ting-Lu outperforms Clodsire in nearly every stat except Special Defense and grants Vessel of Ruin, which actually increases its special bulk beyond its original form even with a 20 point stat drop.
Clauses:
Standard OM
Sleep Moves Clause
Burden Species Clause - Burdens are counted towards species clause and species clause applies to burdens; i.e. if you have a Pokémon named Ting-Lu, you may not use a Ting-Lu on your team, and you can't have multiple Pokémon named Ting-Lu.
Burden Abilities Clause - A burden that would grant a banned ability is not allowed.
Note that Tera clause is tentatively not present; this is subject to change, as stacking abilities could dangerously spike the average power level of the tier.
Versatile Pokémon with good all-around stats and good abilities are premier burdens to inherit stats and abilities from.
Minmaxed Pokémon have less important stats to lose from their burdens and more room to benefit from added abilities.
The presence of an excellent ability may offset the stat losses incurred by some burdens.
Pokémon with specific roles or otherwise generically good Pokémon are still likely to be viable if not outright broken after factoring in innate abilities.
Pokémon who are normally held back by the presence of a fatal flaw may become potentially uncompetitive once that flaw is made up for by its burden.
Drought is watchlist-worthy as many of the Protosynthesis Paradoxes are also excellent burdens stat-wise.
Q&A
How do ability-ignoring effects work? - Neutralizing Gas suppresses both of the opponent's abilities, and none of the user's. Mold Breaker ignores both abilities.
How are form changes handled? - Base stats are recalculated on form change. Innate abilities are kept.
Do abilities stack? - Tentatively, abilities are allowed to stack. If consistency in ability behaviors is an issue, this should be changed.
Questions for the community
Is it worth figuring out an implementation that allows you to choose which innate ability of the burden to possess?
What Pokémon are worth looking at in terms of unbans?
Is this too similar to any other stat formula metagames and is it too complex?
Self-Hosting Code
I've provided code for anyone savvy enough to selfhost the Showdown repository.
JavaScript:
{
name: "[Gen 9] Natural Burden",
desc: `All Pokémon must be named after another to take as a burden, merging the lower of their stats and granting the burden's primary ability as compensation.`,
mod: 'naturalburden',
searchShow: false,
ruleset: ['Standard OMs', 'Sleep Moves Clause'],
banlist: [
'Annihilape', 'Arceus', 'Baxcalibur', 'Calyrex-Ice', 'Calyrex-Shadow', 'Deoxys', 'Dialga', 'Dialga-Origin', 'Eternatus',
'Flutter Mane', 'Giratina', 'Giratina-Origin', 'Groudon', 'Ho-Oh', 'Koraidon', 'Kyogre', 'Kyurem-Black', 'Kyurem-White', 'Lugia',
'Lunala', 'Magearna', 'Mewtwo', 'Miraidon', 'Necrozma-Dawn Wings', 'Necrozma-Dusk Mane', 'Palkia', 'Palkia-Origin',
'Rayquaza', 'Reshiram', 'Shaymin-Sky', 'Sneasler', 'Solgaleo', 'Spectrier', 'Urshifu', 'Zacian', 'Zacian-Crowned', 'Zekrom',
'Pure Power', 'King’s Rock', 'Razor Fang',
],
restricted: [],
onValidateTeam(team) {
const nums = new Set<number>();
for (const set of team) {
const name = set.name;
const species = this.dex.species.get(name);
const species2 = this.dex.species.get(set.species);
if (nums.has(species.num)) {
return [`${species.name} has been used multiple times as a burden or base.`,];
}
nums.add(species.num);
if (nums.has(species2.num)) {
return [`${species2.name} has been used multiple times as a burden or base.`,];
}
nums.add(species2.num);
if (species.exists && species.name !== set.species) nums.add(species.num);
}
},
validateSet(set, teamHas) {
const burden = this.dex.species.get(set.name);
const species = this.dex.species.get(set.species);
let problems = this.dex.formats.get('Obtainable Misc').onChangeSet?.call(this, set, this.format) || null;
if (Array.isArray(problems) && problems.length) return problems;
const nonStandard = (!this.ruleTable.has('natdexmod') && burden.isNonstandard === 'Past') ||
burden.isNonstandard === 'Future';
const capBurden = !this.ruleTable.has('+tag:cap') && burden.isNonstandard === 'CAP';
if (!burden.exists || nonStandard || capBurden) {
return [`${burden.name} is not a legal burden.`];
}
if (burden.num == species.num) {
return [`${set.name} is not named after a distinct burden.`]
}
const check = this.checkSpecies(set, species, species, {});
if (check) return [check];
const nonstandard = !this.ruleTable.has('natdexmod') && species.isNonstandard === 'Past';
const isCap = !this.ruleTable.has('+tag:cap') && species.isNonstandard === 'CAP';
if (!species.exists || nonstandard || isCap || species === burden) return this.validateSet(set, teamHas);
const isUnreleased = (burden.tier === "Unreleased" && burden.isNonstandard === "Unobtainable" &&
!this.ruleTable.has('+unobtainable'));
if (burden.battleOnly) {
return [`${species.name} cannot take ${burden.name} as its burden because it isn't a base form.`];
}
if (isUnreleased) {
return [`${species.name} cannot take ${burden.name} as its burden because it's unreleased.`];
}
if (this.ruleTable.isBannedSpecies(burden)) {
return [`${species.name} cannot take ${burden.name} as its burden because it is banned.`];
}
const ability = this.dex.abilities.get(burden.abilities[0]);
if (this.ruleTable.isBanned(`ability:${ability.id}`)) {
return [`${species.name} cannot take ${burden.name} as its burden because it has a banned ability.`];
}
set.name = species.name;
problems = this.validateSet(set, teamHas);
set.name = burden.name;
return problems;
},
onModifySpecies(species, target, source, effect) {
if (!target) return;
if (effect && ['imposter', 'transform'].includes(effect.id)) return;
if (target.set.name === target.set.species) return;
const burden = this.dex.species.get(target.set.name);
if (!burden.exists) return;
if (species.battleOnly) return;
const isUnreleased = (burden.tier === "Unreleased" && burden.isNonstandard === "Unobtainable" &&
!this.ruleTable.has('+unobtainable'));
if (burden.battleOnly || isUnreleased) return;
const final = this.dex.deepClone(species);
final.bst = 0;
let i: StatID;
for (i in species.baseStats) {
final.baseStats[i] = Math.min(species.baseStats[i], burden.baseStats[i]);
final.bst += final.baseStats[i];
}
return final;
},
onBeforeSwitchIn(pokemon) {
if (!pokemon.m.innate) {
const fusee = this.dex.species.get(pokemon.set.name);
if (!fusee.exists) return;
const innate = fusee.abilities[0];
if (this.toID(innate) != this.toID(pokemon.ability)) {
pokemon.m.innate = innate
}
}
const effect = 'ability:' + this.toID(pokemon.m.innate);
pokemon.volatiles[effect] = this.initEffectState({ id: effect, target: pokemon });
},
onSwitchOut(pokemon) {
for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) {
pokemon.removeVolatile(innate);
}
},
onFaint(pokemon) {
for (const innate of Object.keys(pokemon.volatiles).filter(i => i.startsWith('ability:'))) {
const innateEffect = this.dex.conditions.get(innate) as Effect;
this.singleEvent('End', innateEffect, null, pokemon);
}
},
},
JavaScript:
export const Scripts: ModdedBattleScriptsData = {
gen: 9,
field: {
suppressingWeather() {
for (const pokemon of this.battle.getAllActive()) {
if (pokemon && !pokemon.fainted && !pokemon.ignoringAbility() &&
(pokemon.getAbility().suppressWeather || this.battle.dex.abilities.get(pokemon.m.innate).suppressWeather)) {
return true;
}
}
return false;
},
},
pokemon: {
ignoringAbility() {
if (this.battle.gen >= 5 && !this.isActive) return true;
// Certain Abilities won't activate while Transformed, even if they ordinarily couldn't be suppressed (e.g. Disguise)
if (this.getAbility().flags['notransform'] && this.transformed) return true;
if (this.getAbility().flags['cantsuppress']) return false;
if (this.volatiles['gastroacid']) return true;
// Check if any active pokemon have the ability Neutralizing Gas
if (this.hasItem('Ability Shield') || this.m.innate == 'neutralizinggas' ||
this.ability === ('neutralizinggas' as ID)) return false;
for (const pokemon of this.battle.getAllActive()) {
// can't use hasAbility because it would lead to infinite recursion
if ((pokemon.m.innate == 'neutralizinggas' || pokemon.ability === ('neutralizinggas' as ID)) &&
!pokemon.volatiles['gastroacid'] && !pokemon.transformed &&
!pokemon.abilityState.ending && !this.volatiles['commanding']) {
return true;
}
}
return false;
},
hasAbility(ability) {
if (this.ignoringAbility()) return false;
if (Array.isArray(ability)) return ability.some(abil => this.hasAbility(abil));
ability = this.battle.toID(ability);
return this.ability === ability || !!this.volatiles['ability:' + ability];
},
transformInto(pokemon, effect) {
const species = pokemon.species;
if (pokemon.fainted || this.illusion || pokemon.illusion || (pokemon.volatiles['substitute'] && this.battle.gen >= 5) ||
(pokemon.transformed && this.battle.gen >= 2) || (this.transformed && this.battle.gen >= 5) ||
species.name === 'Eternatus-Eternamax') {
return false;
}
if (!this.setSpecies(species, effect, true)) return false;
this.transformed = true;
this.weighthg = pokemon.weighthg;
const types = pokemon.getTypes(true, true);
this.setType(pokemon.volatiles['roost'] ? pokemon.volatiles['roost'].typeWas : types, true);
this.addedType = pokemon.addedType;
this.knownType = this.isAlly(pokemon) && pokemon.knownType;
this.apparentType = pokemon.apparentType;
let statName: StatIDExceptHP;
for (statName in this.storedStats) {
this.storedStats[statName] = pokemon.storedStats[statName];
if (this.modifiedStats) this.modifiedStats[statName] = pokemon.modifiedStats![statName]; // Gen 1: Copy modified stats.
}
this.moveSlots = [];
this.set.ivs = (this.battle.gen >= 5 ? this.set.ivs : pokemon.set.ivs);
this.hpType = (this.battle.gen >= 5 ? this.hpType : pokemon.hpType);
this.hpPower = (this.battle.gen >= 5 ? this.hpPower : pokemon.hpPower);
this.timesAttacked = pokemon.timesAttacked;
for (const [i, moveSlot] of pokemon.moveSlots.entries()) {
let moveName = moveSlot.move;
if (moveSlot.id === 'hiddenpower') {
moveName = 'Hidden Power ' + this.hpType;
}
const move = this.battle.dex.moves.get(moveSlot.id);
const pp = Math.min(5, move.pp);
this.moveSlots.push({
move: moveName,
id: moveSlot.id,
pp,
maxpp: this.battle.gen >= 5 ? pp : this.battle.calculatePP(move, this.ppUps[i] || 0),
target: moveSlot.target,
disabled: false,
used: false,
virtual: true,
});
}
let boostName: BoostID;
for (boostName in pokemon.boosts) {
this.boosts[boostName] = pokemon.boosts[boostName];
}
if (this.battle.gen >= 6) {
// we need to remove all crit volatiles before adding any crit volatiles
const volatilesToCopy = ['dragoncheer', 'focusenergy', 'gmaxchistrike', 'laserfocus'];
for (const volatile of volatilesToCopy) this.removeVolatile(volatile);
for (const volatile of volatilesToCopy) {
if (pokemon.volatiles[volatile]) {
this.addVolatile(volatile);
if (volatile === 'gmaxchistrike') this.volatiles[volatile].layers = pokemon.volatiles[volatile].layers;
if (volatile === 'dragoncheer') this.volatiles[volatile].hasDragonType = pokemon.volatiles[volatile].hasDragonType;
}
}
}
if (effect) {
this.battle.add('-transform', this, pokemon, '[from] ' + effect.fullname);
} else {
this.battle.add('-transform', this, pokemon);
}
if (this.terastallized && this.terastallized !== this.apparentType) {
this.battle.add('-start', this, 'typechange', this.terastallized, '[silent]');
this.apparentType = this.terastallized;
}
if (this.battle.gen > 2) {
this.setAbility(pokemon.ability, this, null, true);
if (this.m.innate) {
this.removeVolatile('ability:' + this.m.innate);
}
if (pokemon.m.innate) {
this.addVolatile('ability:' + pokemon.m.innate, this);
}
}
// Change formes based on held items (for Transform)
// Only ever relevant in Generation 4 since Generation 3 didn't have item-based forme changes
if (this.battle.gen === 4) {
if (this.species.num === 487) {
// Giratina formes
if (this.species.name === 'Giratina' && this.item === 'griseousorb') {
this.formeChange('Giratina-Origin');
} else if (this.species.name === 'Giratina-Origin' && this.item !== 'griseousorb') {
this.formeChange('Giratina');
}
}
if (this.species.num === 493) {
// Arceus formes
const item = this.getItem();
const targetForme = (item?.onPlate ? 'Arceus-' + item.onPlate : 'Arceus');
if (this.species.name !== targetForme) {
this.formeChange(targetForme);
}
}
}
return true;
},
/**
* Changes this Pokemon's forme to match the given speciesId (or species).
* This function handles all changes to stats, ability, type, species, etc.
* as well as sending all relevant messages sent to the client.
*/
formeChange(speciesId, source, isPermanent, message) {
if (!source) source = this.battle.effect;
const rawSpecies = this.battle.dex.species.get(speciesId);
const species = this.setSpecies(rawSpecies, source);
if (!species) return false;
if (this.battle.gen <= 2) return true;
// The species the opponent sees
const apparentSpecies =
this.illusion ? this.illusion.species.name : species.baseSpecies;
if (isPermanent) {
this.baseSpecies = rawSpecies;
this.details = this.getUpdatedDetails();
this.battle.add('detailschange', this, (this.illusion || this).details);
if (source.effectType === 'Item') {
this.canTerastallize = null; // National Dex behavior
if (source.zMove) {
this.battle.add('-burst', this, apparentSpecies, species.requiredItem);
this.moveThisTurnResult = true; // Ultra Burst counts as an action for Truant
} else if (source.isPrimalOrb) {
if (this.illusion) {
this.ability = '';
this.battle.add('-primal', this.illusion);
} else {
this.battle.add('-primal', this);
}
} else {
this.battle.add('-mega', this, apparentSpecies, species.requiredItem);
this.moveThisTurnResult = true; // Mega Evolution counts as an action for Truant
}
} else if (source.effectType === 'Status') {
// Shaymin-Sky -> Shaymin
this.battle.add('-formechange', this, species.name, message);
}
} else {
if (source.effectType === 'Ability') {
this.battle.add('-formechange', this, species.name, message, `[from] ability: ${source.name}`);
} else {
this.battle.add('-formechange', this, this.illusion ? this.illusion.species.name : species.name, message);
}
}
if (isPermanent && !['disguise', 'iceface', 'ability:disguise', 'ability:iceface'].includes(source.id)) {
if (this.illusion) {
this.ability = ''; // Don't allow Illusion to wear off
}
this.setAbility(species.abilities['0'], null, null, true);
this.baseAbility = this.ability;
}
if (this.terastallized && this.terastallized !== this.apparentType) {
this.battle.add('-start', this, 'typechange', this.terastallized, '[silent]');
this.apparentType = this.terastallized;
}
return true;
},
},
};
I would try to think on a different way to apply this, as is everyone would just give up on the offesive stat they wont use, which leaves no room for creativity, and if everyone just gain the same amount of stats on the same stats nothing really changes. Maybe instead of base stats you get extra evs to put wherever you want or something.
I disagree here, as the gens went on less Pokémon got the Hoenen special and those are the Mons your gonna want to take away stat points away from attack on, while I’m positive this would be banned imagine flutter mains spdef redistributed amongst the other stats that’s a fairly decent power boost compared the the measly power boost of its attack stat. I’m absolutely willing to be less tanky if it means being more likely to ohko
Have you ever told to yourself "I wish my favourite Pokemon would shine in battle, too bad it doesn't have enough power" ? Well, you finally have a chance to prove its offensive potential thanks to this new format :
CLOSE THE DISTANCE
Premise :
Moves Base Power increases according to the strongest one in a Pokemon moveset.
Rules :
Players fight in a regular Single Battle 6 vs 6. This metagame revolves around making any moves as strong as possible.
To put it simply, each offensive moves now accomodate to the one with the highest BP by this formula :
BP(Xnew) = (BP(X)+BP(Highest))/2
As an example, if you give a
Iron-Treads Knock Off with Earthquake as the highest BP move, its Knock Off will have (65 + 100)/2 = 87 BP (rounded to the smallest).
The calculation occurs for moves with defined BP, so "---" BP moves don't change ; and takes account of the moves with the highest BP in the moveslots, even if they're identical (to take the previous example back, Knock Off still becomes 87 BP even if Iron-Treads has Earthquake AND Stone Edge).
Clauses :
Evasion Clause : moves and abilities involving accuracy reduction or evasion incrementation are banned ;
Freeze Clause : Pokemon can freeze one opponent per game at most ;
OHKO Clause : OHKO moves are banned ;
Sleep Clause : sleep moves are banned ;
Species Clause : only one Pokemon of their species is allowed per teams.
Potential Bans and Threats :
The metagame might take the current OU Banlist, alongside some additions related to the following points :
Multi-hit moves need to be checked. Population Bomb can jump to 85 BP if coupled with Giga Impact (so 850 max with all ten hits). Maushold could potentially 2HKO a Regirock even without EV invested in Attack. If not, the Loaded Dice and Skill Link would be banned ;
Explosion and Destruction are too convenient for fast sweepers, spinners or leaders. Damp wouldn't change anything, as they don't even have to use one of these moves during battle to maintain the pressure ;
Contrary users get even better kill power. Enamorus in particular has enough speed and covering options, all its physical moves with 60 BP or lower now pair well with Superpower ;
Protosynthesis and Quark Drive users, especially Raging Bolt and Iron Valiant since they have a +1 priority STAB move. These could lead to bans of Drought, Electric Surge, or the use of Booster Energy ;
Some signature moves and abilities become especially more dangerous, even against stall teams. Rage Fist can grow up to 100 BP + 50BP per received hit (so from 100 to 350), Salt Cure can have passive AND active power. Choice Band-ed Sharpness Hisuian-Samurott and Kleavor with +252 Attack EVs get to around 50% (or a little more) chance to 2HKO bulky Unaware users on switch-in, respectively thanks to Ceaseless Edge and Stone Axe (yes, even against Dondozo) ;
Priority moves become hard to deal with, reaching more than 60 BP. Some Pokemon can go so far as to use priority moves, as their only STAB, because they do enough damages, preventing revenge sweep and comeback setup ;
Lastly, moves with a power multiplier. Weather-based teams are already pretty viable, but Weather Ball just does stupid damages now. Toarkoal can spam the move with up to 200 BP and 3HKO a +252 SpD Blissey, 2HKO with max SpA and Choice Specs ; Ursaking's Facade becomes the ultimate definition of "kick ass" power, easily 2HKO +252 Def Regirock after being boosted once with Sword Dance. Knock Off, Power Trip and Stored Power could be banned ; while Expanding Force and Rising Voltage need to be checked as they're more niche than the others.
Q&A :
Are BP increases fixed or can they change mid-battle ?
They are fixed. For example, if one chooses to pair Weather Ball with below-50 BP moves, the latter will always increase as closely as 50 BP, even if a weather is activated.
Are BP increases determined before STAB or after ?
They are calculated before STAB. Any type change can't affect the result.
What happens if a Pokemon copy a move with a higher BP than their own ones ?
Same answer than the first question. Whether by using Copycat or Mimic, the other moves keep the same BP increase (Imposter and Transform users are the exceptions that confirm the rule, as they replace their own moves by others, and so for BP increase), while the copied move has its original BP.
Questions for the community :
Is this metagame too simple ?
Are there other things I should mention in the Q&A ?
Have you ever told to yourself "I wish my favourite Pokemon would shine in battle, too bad it doesn't have enough power" ? Well, you finally have a chance to prove its offensive potential thanks to this new format :
CLOSE THE DISTANCE
Premise :
Moves Base Power increases according to the strongest one in a Pokemon moveset.
Rules :
Players fight in a regular Single Battle 6 vs 6. This metagame revolves around making any moves as strong as possible.
To put it simply, each offensive moves now accomodate to the one with the highest BP by this formula :
BP(Xnew) = (BP(X)+BP(Highest))/2
As an example, if you give a View attachment 845197Iron-Treads Knock Off with Earthquake as the highest BP move, its Knock Off will have (65 + 100)/2 = 87 BP (rounded to the smallest).
The calculation occurs for moves with constant BP, so "---" BP moves don't change ; and takes account of the moves with the highest BP in the moveslots, even if they're identical (to take the previous example back, Knock Off still becomes 87 BP even if Iron-Treads has Earthquake AND Stone Edge).
Clauses :
Evasion Clause : moves and abilities involving accuracy reduction or evasion incrementation are banned ;
Freeze Clause : Pokemon can freeze one opponent per game at most ;
OHKO Clause : OHKO moves are banned ;
Sleep Clause : sleep moves are banned ;
Species Clause : only one Pokemon of their species is allowed per teams.
Potential Bans and Threats :
The metagame might take the current OU Banlist, alongside some additions related to the following points :
View attachment 845143View attachment 845144View attachment 845146View attachment 845148Multi-hit moves need to be checked. Population Bomb can jump to 85 BP if coupled with Giga Impact (so 850 max with all ten hits). Maushold could potentially 2HKO a Regirock even without EV invested in Attack. If not, the Loaded Dice and Skill Link would be banned ;
View attachment 845169View attachment 845170View attachment 845171View attachment 845172View attachment 845173View attachment 845174Lastly, some signature moves and abilities become especially more dangerous, even against stall teams. Rage Fist can grow up to 100 BP + 50BP per received hit (so from 100 to 350), Salt Cure can have passive AND active power. Choice Band-ed Sharpness Hisuian-Samurott and Kleavor with +252 Attack EVs get to around 50% (or a little more) chance to 2HKO bulky Unaware users on switch-in, respectively thanks to Ceaseless Edge and Stone Axe (yes, even against Dondozo).
Q&A :
Are BP increases fixed or can they change mid-battle ?
They are fixed. For example, if one chooses to pair Weather Ball with below-50 BP moves, the latter will always increase as closely as 50 BP, even if a weather is activated.
Are BP increases determined before STAB or after ?
They are calculated before STAB. Any type change can't affect the result.
What happens if a Pokemon copy a move with a higher BP than their own ones ?
Same answer than the first question. Whether by using Copycat or Mimic, the other moves keep the same BP increase (Imposter and Transform users are the exceptions that confirm the rule, as they replace their own moves by others, and so for BP increase), while the copied move has its original BP.
Questions for the community :
Is this metagame too simple ?
Are there other things I should mention in the Q&A ?
You have to mention priority moves as threats of their own, not just a footnote in the Protosynthesis/Quark Drive section. It's too easy to raise the BP of a mere Aqua Jet to a Water-type Extreme Speed - stronger than Jet Punch's 60 BP:
New Aqua Jet BP = (40 + 120 (Close Combat)) / 2 = 160 / 2 = 80 BP
Have you ever told to yourself "I wish my favourite Pokemon would shine in battle, too bad it doesn't have enough power" ? Well, you finally have a chance to prove its offensive potential thanks to this new format :
CLOSE THE DISTANCE
Premise :
Moves Base Power increases according to the strongest one in a Pokemon moveset.
Rules :
Players fight in a regular Single Battle 6 vs 6. This metagame revolves around making any moves as strong as possible.
To put it simply, each offensive moves now accomodate to the one with the highest BP by this formula :
BP(Xnew) = (BP(X)+BP(Highest))/2
As an example, if you give a View attachment 845197Iron-Treads Knock Off with Earthquake as the highest BP move, its Knock Off will have (65 + 100)/2 = 87 BP (rounded to the smallest).
The calculation occurs for moves with constant BP, so "---" BP moves don't change ; and takes account of the moves with the highest BP in the moveslots, even if they're identical (to take the previous example back, Knock Off still becomes 87 BP even if Iron-Treads has Earthquake AND Stone Edge).
Clauses :
Evasion Clause : moves and abilities involving accuracy reduction or evasion incrementation are banned ;
Freeze Clause : Pokemon can freeze one opponent per game at most ;
OHKO Clause : OHKO moves are banned ;
Sleep Clause : sleep moves are banned ;
Species Clause : only one Pokemon of their species is allowed per teams.
Potential Bans and Threats :
The metagame might take the current OU Banlist, alongside some additions related to the following points :
View attachment 845143View attachment 845144View attachment 845146View attachment 845148Multi-hit moves need to be checked. Population Bomb can jump to 85 BP if coupled with Giga Impact (so 850 max with all ten hits). Maushold could potentially 2HKO a Regirock even without EV invested in Attack. If not, the Loaded Dice and Skill Link would be banned ;
View attachment 845169View attachment 845170View attachment 845171View attachment 845172View attachment 845173View attachment 845174Lastly, some signature moves and abilities become especially more dangerous, even against stall teams. Rage Fist can grow up to 100 BP + 50BP per received hit (so from 100 to 350), Salt Cure can have passive AND active power. Choice Band-ed Sharpness Hisuian-Samurott and Kleavor with +252 Attack EVs get to around 50% (or a little more) chance to 2HKO bulky Unaware users on switch-in, respectively thanks to Ceaseless Edge and Stone Axe (yes, even against Dondozo).
Q&A :
Are BP increases fixed or can they change mid-battle ?
They are fixed. For example, if one chooses to pair Weather Ball with below-50 BP moves, the latter will always increase as closely as 50 BP, even if a weather is activated.
Are BP increases determined before STAB or after ?
They are calculated before STAB. Any type change can't affect the result.
What happens if a Pokemon copy a move with a higher BP than their own ones ?
Same answer than the first question. Whether by using Copycat or Mimic, the other moves keep the same BP increase (Imposter and Transform users are the exceptions that confirm the rule, as they replace their own moves by others, and so for BP increase), while the copied move has its original BP.
Questions for the community :
Is this metagame too simple ?
Are there other things I should mention in the Q&A ?
You have to mention priority moves as threats of their own, not just a footnote in the Protosynthesis/Quark Drive section. It's too easy to raise the BP of a mere Aqua Jet to a Water-type Extreme Speed - stronger than Jet Punch's 60 BP:
New Aqua Jet BP = (40 + 120 (Close Combat)) / 2 = 160 / 2 = 80 BP
Thanks, I've updated the OM suggestion, even used chartung17 's example. Giga Impact and Hyper Beam could be just seen as "move amplifiers", so I can't tell if they're worth mentioning or not.
Premise: Whether a move hits, misses, or has its secondary effect on the opponent activated depends on the difference of the initial order of the Pokemon which is switched out and that of the one switched in, and the chance of the effect appearing.
If the miss chance is 0% - 13%, the move never misses.
For 13% - 26%, the move only misses if the opponent switches into the previous Pokemon in a cyclical order (if the switched out Pokemon is the lead, that would be switching into the 6th).
For 26% - 39%, the move misses if the opponent switches into one of the previous two Pokemon.
For 39% - 52%, the move misses if the opponent switches into one of the previous three Pokemon.
For 52% - 65%, the move misses unless the opponent switches into the next Pokemon or doesn't switch.
For 65% - 78%, the move misses if the opponent switches.
For >%78, the move never hits.
Added effects are treated similarly. As in, a 10% chance (90% "miss") will never materialize, a 30% chance (70% miss) only will if the opponent doesn't switch, and a 50% chance will if the opponent doesn't switch into one of the previous three Pokemon.
If both a miss and an added effect are possible, both the miss rate and the "status miss" rate (1 - accuracy * effect chance) are taken into account. The status miss conditions not covered by the normal miss scenario will lead to an accurate hit without the effect.
Example: If there's a move with 50% accuracy and 50% added effect chance when it hits, the total miss scenario is that the move misses if the opponent switches into one of the previous three Pokemon. The perfect hit chance is 50% * 30% = 25%, so the imperfect hit chance is 75%, meaning the move will hit if the opponent switches into one of the next two or doesn't switch at all, but the effect will only trigger if the opponent doesn't switch.
Possible Threats and Concerns:
Pokemon with fast VoltTurn and similar moves on <85% accuracy moves. Switching out would also work, which would hurt Rock and Psychic types.
Normal critical hits will be too common if exploited, so crits should only be possible with boosts.
Premise: Whether a move hits, misses, or has its secondary effect on the opponent activated depends on the difference of the initial order of the Pokemon which is switched out and that of the one switched in, and the chance of the effect appearing.
If the miss chance is 0% - 13%, the move never misses.
For 13% - 26%, the move only misses if the opponent switches into the previous Pokemon in a cyclical order (if the switched out Pokemon is the lead, that would be switching into the 6th).
For 26% - 39%, the move misses if the opponent switches into one of the previous two Pokemon.
For 39% - 52%, the move misses if the opponent switches into one of the previous three Pokemon.
For 52% - 65%, the move misses unless the opponent switches into the next Pokemon or doesn't switch.
For 65% - 78%, the move misses if the opponent switches.
For >%78, the move never hits.
Added effects are treated similarly. As in, a 10% chance (90% "miss") will never materialize, a 30% chance (70% miss) only will if the opponent doesn't switch, and a 50% chance will if the opponent doesn't switch into one of the previous three Pokemon.
If both a miss and an added effect are possible, both the miss rate and the "status miss" rate (1 - accuracy * effect chance) are taken into account. The status miss conditions not covered by the normal miss scenario will lead to an accurate hit without the effect.
Example: If there's a move with 50% accuracy and 50% added effect chance when it hits, the total miss scenario is that the move misses if the opponent switches into one of the previous three Pokemon. The perfect hit chance is 50% * 30% = 25%, so the imperfect hit chance is 75%, meaning the move will hit if the opponent switches into one of the next two or doesn't switch at all, but the effect will only trigger if the opponent doesn't switch.
Possible Threats and Concerns:
Pokemon with fast VoltTurn and similar moves on <85% accuracy moves. Switching out would also work, which would hurt Rock and Psychic types.
Normal critical hits will be too common if exploited, so crits should only be possible with boosts.