Enchanted Items [Now Multibility]

Lcass4919

The Xatu Warrior
Apparently Poison Point counts as a secondary effect for the purposes of Shield Dust. Surely that would mean that it counts as a secondary effect for the purposes of Sheer Force. So now all Poison Point users (or indeed Sheer Force users, if they have nothing better) can get a 30% boost on all of their moves, not just the ones with secondary effects. No longer does Nidoking have to suffer the indignity of not having a boosted Earthquake!
i think you mean poison touch. otherwise yeah, sounds about right.
 
Nidoking still has more power on every other move on the Special side, last I checked. Sludge Wave out-damages Poison Jab, right?
 
Here are some more sets, in case anyone wants them.

Regigigas @ Toxic Orb
Ability: Poison Heal
EVs: 92 HP / 240 Atk / 176 Spe
Adamant Nature
- Facade
- Earthquake
- Ice Punch / Stone Edge
- Rock Polish / Iron Head

Heliolisk @ Shuca Berry
Ability: Prankster
EVs: 252 SpA / 4 Def / 252 Spe
Timid Nature
- Electrify
- Thunderbolt
- Hidden Power Ice / Hidden Power Ground
- Focus Blast

Zekrom @ Zoom Lens
Ability: Teravolt
EVs: 252 HP / 144 Def / 112 Spe
Impish Nature
- Roost
- Dragon Tail
- Toxic / Thunder Wave
- Haze / Volt Switch
 
Last edited:

MacChaeger

Go ahead, I’m bulletproof!
is a Programmeris a Battle Simulator Moderator
Apparently Poison Point counts as a secondary effect for the purposes of Shield Dust. Surely that would mean that it counts as a secondary effect for the purposes of Sheer Force. So now all Poison Point users (or indeed Sheer Force users, if they have nothing better) can get a 30% boost on all of their moves, not just the ones with secondary effects. No longer does Nidoking have to suffer the indignity of not having a boosted Earthquake!
Poison Point is, in fact, negated by Sheer Force, but only when the triggering move already has a secondary effect to begin with, and it's the same story with Life Orb's recoil. Moves without their own secondary effect are never boosted by Sheer Force, even if an effect is added, such as with King's Rock. This should likely extend to abilities like Stench and Poison Touch (which I assume you meant).
 
Last edited:
Summer (Sunkern) @ Snowball/Mail
Ability: Sturdy (+Magic Guard/Prankster)
EVs: 248 HP / 8 Def / 252 SpD
Calm Nature
- Leech Seed
- Endeavor
- Morning Sun
- Protect

ENJOY. THE. FEAR.
 
Gale Wings applies first, meaning that it's still a normal move by the time flying moves get boosted by +1 in priority.

If you had a flying move that was becoming a fire move (for example), it would get the Gale Wings bonus though.
 
Gale Wings applies first, meaning that it's still a normal move by the time flying moves get boosted by +1 in priority.

If you had a flying move that was becoming a fire move (for example), it would get the Gale Wings bonus though.
The Item Ability activates second, so if using Aerilate(Ability) + GW(Item), it should activate, but if using GW(Ability) + Aerilate(Item) then it shouldn't.
 
Apparently Poison Point counts as a secondary effect for the purposes of Shield Dust. Surely that would mean that it counts as a secondary effect for the purposes of Sheer Force. So now all Poison Point users (or indeed Sheer Force users, if they have nothing better) can get a 30% boost on all of their moves, not just the ones with secondary effects. No longer does Nidoking have to suffer the indignity of not having a boosted Earthquake!
I'm assuming you mean Poison Touch, and: no.

Poison Touch only applies if the move makes contact. Even if this Poison Point+Sheer Force logic actually applies, Earthquake doesn't get the boost, because it doesn't make contact.

If you actually do mean Poison Point, that still doesn't make sense. Preventing Poison Point from Poisoning you via Sheer Force demands the target have Poison Point, not the attacker.

Furthermore, since Poison Touch only works on moves that make contact, that means Tough Claws+Sheer Force or Tough Claws+Poison Touch is largely better. It's not like you're using Sheer Force to negate Life Orb recoil, since you're eating your Item slot to provide the second Ability.
 

Lcass4919

The Xatu Warrior
The Item Ability activates second, so if using Aerilate(Ability) + GW(Item), it should activate, but if using GW(Ability) + Aerilate(Item) then it shouldn't.
gale wings checks for flying type at the VERY start of the turn, when speed calculations are determined, and aerialate applies after you mega evolve, when the attack is being used(this is proven via mega evolution, as if this rule didnt exist, aerialate WOULDNT change pinsirs attack typing upon mega evolution since it wouldnt exist until after mega evolution, which also is checked after speed tiers), which similarly to mega evolution, is too late to determine its priority/type/speed change. if it was normalize and aerialate-which DO activate at the same time, then yeah, the item activates second, but not for something like this, which has two completely different speed tiers of which they activate.

pokemon can be super complicated sometimes.

edit: and if this rule is ignored, then that means gale wings NEVER gives priority, since it wouldnt activate until the speed tier determination already happened.
 
Last edited:

Imperator Romanum

formerly Grains of Salt
Hey, I just wanted to let everyone know that EI is a template, you can freely grab the code and use it for your own metagame. So if you want to merge Stabmons + EI, that's fine you wont need to contact me and I don't want any co-ownership! I'm going to post the code below here, I encourage you to use it since two abilities at once can be rather difficult! Thank you to urkerab and AWailOfATail for the code!

Code:
 {
name: "Enchanted Items",
desc: [
"Enchanted Items is a metagame where you sacrifice your item slot for a secondary ability.",
"&bullet; <a href=\"https://www.smogon.com/forums/threads/3570431/\">Enchanted Items</a>",
],
section: "Other Metagames",

searchShow: false,
mod: 'enchanteditems',
ruleset: ['OU', 'Ability Clause'],
banlist: ['Shedinja', 'Kyurem-Black', 'Bug Gem', 'Dark Gem', 'Dragon Gem', 'Electric Gem', 'Fairy Gem', 'Fire Gem', 'Ice Gem', 'Poison Gem', 'Psychic Gem', 'Steel Gem', 'Poke Ball', 'Chatter'],
overrides: ['Soul Dew'],
onValidateSet: function (set) {
let ability = this.getAbility(set.ability);
let item = this.getItem(set.item);
if (ability.item && ability.item == item.id) return ["You are not allowed to have " + ability.name +  " and " + item.name + " on the same Pokemon."];
},
onFaint: function (pokemon) {
this.singleEvent('End', this.getItem(pokemon.item), pokemon.itemData, pokemon);
},
onSwitchOut: function (pokemon) {
this.singleEvent('End', this.getItem(pokemon.item), pokemon.itemData, pokemon);
},
},
Code:
'use strict';

exports.BattleFormats = {
abilityclause: {
effectType: 'Rule',
onStart: function () {
this.add('rule', 'Ability Clause: Limit two of each ability');
},
onValidateTeam: function (team, format) {
let abilityTable = {};
for (let i = 0; i < team.length; i++) {
let ability = this.getAbility(team[i].ability);
if (!abilityTable[ability.id]) abilityTable[ability.id] = 0;
if (++abilityTable[ability.id] > 2) {
return ["You are limited to two of each ability by Ability Clause.", "(You have more than two of " + ability.name + " or " + this.getItem(ability.item).name + ")"];
}
let item = toId(team[i].item);
if (!item) continue;
item = this.getItem(item);
ability = item.ability;
if (!ability) continue;
if (!abilityTable[ability]) abilityTable[ability] = 0;
if (++abilityTable[ability] > 2) {
return ["You are limited to two of each ability by Ability Clause.", "(You have more than two of " + this.getAbility(ability).name + " or " + item.name + ")"];
}
}
},
},
batonpassclause: {
effectType: 'Banlist',
name: 'Baton Pass Clause',
onStart: function () {
this.add('rule', 'Baton Pass Clause: Limit one Baton Passer, can\'t pass Spe and other stats simultaneously');
},
onValidateTeam: function (team, format) {
let BPcount = 0;
for (let i = 0; i < team.length; i++) {
if (team[i].moves.indexOf('Baton Pass') >= 0) {
BPcount++;
}
if (BPcount > 1) {
return [(team[i].name || team[i].species) + " has Baton Pass, but you are limited to one Baton Pass user by Baton Pass Clause."];
}
}
},
onValidateSet: function (set, format, setHas) {
if (!('batonpass' in setHas)) return;

// check if Speed is boosted
let speedBoosted = false;
for (let i = 0; i < set.moves.length; i++) {
let move = this.getMove(set.moves[i]);
if (move.boosts && move.boosts.spe > 0) {
speedBoosted = true;
break;
}
}
let boostSpeed = ['flamecharge', 'geomancy', 'motordrive', 'rattled', 'speedboost', 'steadfast', 'weakarmor', 'cheriberry', 'duskball', 'friendball', 'skullfossil', 'weaknesspolicy'];
if (!speedBoosted) {
for (let i = 0; i < boostSpeed.length; i++) {
if (boostSpeed[i] in setHas) {
speedBoosted = true;
break;
}
}
}
if (!speedBoosted) return;

// check if non-Speed boosted
let nonSpeedBoosted = false;
for (let i = 0; i < set.moves.length; i++) {
let move = this.getMove(set.moves[i]);
if (move.boosts && (move.boosts.atk > 0 || move.boosts.def > 0 || move.boosts.spa > 0 || move.boosts.spd > 0)) {
nonSpeedBoosted = true;
break;
}
}
let boostNonSpeed = ['acupressure', 'curse', 'metalclaw', 'meteormash', 'poweruppunch', 'rage', 'rototiller', 'fellstinger', 'bellydrum', 'download', 'justified', 'moxie', 'sapsipper', 'defiant', 'angerpoint', 'diamondstorm', 'flowershield', 'skullbash', 'steelwing', 'stockpile', 'cottonguard', 'chargebeam', 'fierydance', 'geomancy', 'lightningrod', 'stormdrain', 'competitive', 'charge', 'habanberry', 'salacberry', 'whiteherb', 'rawstberry', 'ganlonberry', 'shucaberry', 'heavyball', 'damprock'];
if (!nonSpeedBoosted) {
for (let i = 0; i < boostNonSpeed.length; i++) {
if (boostNonSpeed[i] in setHas) {
nonSpeedBoosted = true;
break;
}
}
}
if (!nonSpeedBoosted) return;

return [(set.name || set.species) + " can Baton Pass both Speed and a different stat, which is banned by Baton Pass Clause."];
},
},
evasionabilitiesclause: {
effectType: 'Banlist',
name: 'Evasion Abilities Clause',
banlist: ['Sand Veil', 'Snow Cloak', 'Persim Berry', 'Cover Fossil'],
onStart: function () {
this.add('rule', 'Evasion Abilities Clause: Evasion abilities are banned');
},
},
moodyclause: {
effectType: 'Banlist',
name: 'Moody Clause',
banlist: ['Moody', 'Wave Incense'],
onStart: function () {
this.add('rule', 'Moody Clause: Moody is banned');
},
},
};
Code:
'use strict';

exports.BattleScripts = {
init: function() {
let abilityToItem = {
aerilate: 'airballoon',
adaptability: 'apicotberry',
anticipation: 'blackbelt',
arenatrap: 'buggem',
aromaveil: 'blackglasses',
aurabreak: 'blacksludge',
baddreams: 'brightpowder',
battlearmor: 'cellbattery',
bigpecks: 'charcoal',
blaze: 'chartiberry',
bulletproof: 'chestoberry',
cheekpouch: 'chilanberry',
chlorophyll: 'chopleberry',
clearbody: 'cobaberry',
cloudnine: 'colburberry',
colorchange: 'custapberry',
competitive: 'damprock',
compoundeyes: 'dragonfang',
contrary: 'darkgem',
cursedbody: 'ejectbutton',
cutecharm: 'expertbelt',
damp: 'flameorb',
darkaura: 'focusband',
defeatist: 'fullincense',
defiant: 'ganlonberry',
deltastream: 'grepaberry',
desolateland: 'gripclaw',
download: 'habanberry',
drizzle: 'hardstone',
drought: 'heatrock',
dryskin: 'iapapaberry',
earlybird: 'icyrock',
effectspore: 'kasibberry',
fairyaura: 'kebiaberry',
filter: 'keeberry',
flamebody: 'kelpsyberry',
flareboost: 'kingsrock',
flashfire: 'laggingtail',
flowergift: 'lansatberry',
flowerveil: 'laxincense',
forecast: 'leppaberry',
forewarn: 'liechiberry',
friendguard: 'luminousmoss',
frisk: 'magnet',
furcoat: 'dragongem',
galewings: 'marangaberry',
gluttony: 'metalcoat',
gooey: 'metronome',
grasspelt: 'micleberry',
guts: 'miracleseed',
harvest: 'muscleband',
healer: 'mysticwater',
heatproof: 'nevermeltice',
heavymetal: 'occaberry',
honeygather: 'oddincense',
hugepower: 'electricgem',
hustle: 'passhoberry',
hydration: 'payapaberry',
hypercutter: 'petayaberry',
icebody: 'poisonbarb',
illuminate: 'quickclaw',
illusion: 'razorclaw',
immunity: 'razorfang',
imposter: 'fairygem',
infiltrator: 'rindoberry',
innerfocus: 'rockincense',
insomnia: 'roseincense',
intimidate: 'redcard',
ironbarbs: 'roseliberry',
ironfist: 'safetygoggles',
justified: 'salacberry',
keeneye: 'scopelens',
klutz: 'seaincense',
leafguard: 'sharpbeak',
levitate: 'shedshell',
lightmetal: 'shellbell',
lightningrod: 'shucaberry',
limber: 'silkscarf',
liquidooze: 'silverpowder',
magicbounce: 'smoothrock',
magicguard: 'snowball',
magician: 'softsand',
magmaarmor: 'spelltag',
magnetpull: 'starfberry',
marvelscale: 'stickybarb',
megalauncher: 'tangaberry',
minus: 'twistedspoon',
moldbreaker: 'wacanberry',
moody: 'waveincense',
motordrive: 'weaknesspolicy',
moxie: 'whiteherb',
multiscale: 'widelens',
multitype: 'wiseglasses',
mummy: 'yacheberry',
naturalcure: 'zoomlens',
noguard: 'adamantorb',
normalize: 'burndrive',
oblivious: 'chilldrive',
overcoat: 'deepseascale',
overgrow: 'deepseatooth',
owntempo: 'dousedrive',
parentalbond: 'firegem',
pickpocket: 'lightball',
pickup: 'luckypunch',
pixilate: 'griseousorb',
plus: 'lustrousorb',
poisonheal: 'metalpowder',
poisonpoint: 'quickpowder',
poisontouch: 'shockdrive',
prankster: 'souldew',
pressure: 'stick',
primordialsea: 'thickclub',
protean: 'aguavberry',
purepower: 'icegem',
quickfeet: 'aspearberry',
raindish: 'bindingband',
rattled: 'cheriberry',
reckless: 'destinyknot',
refrigerate: 'enigmaberry',
regenerator: 'figyberry',
rivalry: 'floatstone',
rockhead: 'ironball',
roughskin: 'jabocaberry',
runaway: 'machobrace',
sandforce: 'magoberry',
sandrush: 'oranberry',
sandstream: 'pechaberry',
sandveil: 'persimberry',
sapsipper: 'rawstberry',
scrappy: 'ringtarget',
serenegrace: 'rowapberry',
shadowtag: 'poisongem',
shedskin: 'wikiberry',
sheerforce: 'armorfossil',
shellarmor: 'belueberry',
shielddust: 'blukberry',
simple: 'psychicgem',
skilllink: 'cherishball',
slowstart: 'clawfossil',
sniper: 'cornnberry',
snowcloak: 'coverfossil',
snowwarning: 'diveball',
solarpower: 'domefossil',
solidrock: 'dreamball',
soundproof: 'durinberry',
speedboost: 'duskball',
stall: 'electirizer',
stancechange: 'energypowder',
static: 'fastball',
steadfast: 'friendball',
stench: 'greatball',
stickyhold: 'healball',
stormdrain: 'heavyball',
strongjaw: 'helixfossil',
sturdy: 'hondewberry',
suctioncups: 'levelball',
superluck: 'loveball',
swarm: 'lureball',
sweetveil: 'luxuryball',
swiftswim: 'magostberry',
symbiosis: 'masterball',
synchronize: 'moonball',
tangledfeet: 'nanabberry',
technician: 'nestball',
telepathy: 'netball',
teravolt: 'nomelberry',
thickfat: 'oldamber',
tintedlens: 'pamtreberry',
torrent: 'parkball',
toughclaws: 'pinapberry',
toxicboost: 'plumefossil',
trace: 'pokeball',
truant: 'pomegberry',
turboblaze: 'premierball',
unaware: 'qualotberry',
unburden: 'quickball',
unnerve: 'rabutaberry',
victorystar: 'rarebone',
vitalspirit: 'razzberry',
voltabsorb: 'repeatball',
waterabsorb: 'rootfossil',
waterveil: 'safariball',
weakarmor: 'skullfossil',
whitesmoke: 'spelonberry',
wonderguard: 'steelgem',
wonderskin: 'sportball',
zenmode: 'tamatoberry',
}
Object.keys(abilityToItem).map(ability => {
this.modData("Abilities", ability).item = abilityToItem[ability];
let item = this.data.Items[abilityToItem[ability]];
this.data.Items[abilityToItem[ability]] = Object.assign({}, this.getAbility(ability), {
id: item.id,
name: item.name,
spritenum: item.spritenum,
num: item.num,
gen: item.gen,
desc: item.desc,
onTakeItem: false,
ability: ability,
});
});
},
suppressingAttackEvents: function () {
return (this.activePokemon && this.activePokemon.isActive && (!this.activePokemon.ignoringAbility() && this.activePokemon.getAbility().stopAttackEvents || !this.activePokemon.ignoringItem() && this.activePokemon.getItem().stopAttackEvents));
},
pokemon: {
hasItem: function (item) {
if (Tools.getItem(this.item).ability) return false;
if (this.ignoringItem()) return false;
if (!Array.isArray(item)) return this.item == toId(item);
return item.map(toId).contains(this.item);
},
hasAbility: function (ability) {
if (this.ignoringAbility()) return false;
if (!Array.isArray(ability)) {
ability = toId(ability);
if (this.ability === ability) return true;
} else {
ability = ability.map(toId);
if (ability.includes(this.ability)) return true;
}
if (ability === "klutz") return false;
if (!this.item || this.ignoringItem()) return false;
let item = this.battle.getItem(this.item);
if (!Array.isArray(ability)) return ability === item.ability;
return ability.includes(item.ability);
},
isGrounded: function (negateImmunity) {
if ('gravity' in this.battle.pseudoWeather) return true;
if ('ingrain' in this.volatiles) return true;
if ('smackdown' in this.volatiles) return true;
// if (this.hasItem('ironball')) return true;
if (!negateImmunity && this.hasType('Flying')) return false;
if (this.hasAbility('levitate') && !this.battle.suppressingAttackEvents()) return null;
if ('magnetrise' in this.volatiles) return false;
if ('telekinesis' in this.volatiles) return false;
return true; // !this.hasItem('airballoon');
},
},
};
 
That's an old version which still has Soul Dew for Prankster...
Oh yeah it's the code that you had posted in the code threade
Here's the updated scripts.js:
Code:
'use strict';
exports.BattleScripts = {
    init: function() {
        let abilityToItem = {
            aerilate: 'airballoon',
            adaptability: 'apicotberry',
            analytic: 'watergem',
            anticipation: 'blackbelt',
            arenatrap: 'buggem',
            aromaveil: 'blackglasses',
            aurabreak: 'blacksludge',
            baddreams: 'brightpowder',
            battlearmor: 'cellbattery',
            bigpecks: 'charcoal',
            blaze: 'chartiberry',
            bulletproof: 'chestoberry',
            cheekpouch: 'chilanberry',
            chlorophyll: 'chopleberry',
            clearbody: 'cobaberry',
            cloudnine: 'colburberry',
            colorchange: 'custapberry',
            competitive: 'damprock',
            compoundeyes: 'dragonfang',
            contrary: 'darkgem',
            cursedbody: 'ejectbutton',
            cutecharm: 'expertbelt',
            damp: 'flameorb',
            darkaura: 'focusband',
            defeatist: 'fullincense',
            defiant: 'ganlonberry',
            deltastream: 'grepaberry',
            desolateland: 'gripclaw',
            download: 'habanberry',
            drizzle: 'hardstone',
            drought: 'heatrock',
            dryskin: 'iapapaberry',
            earlybird: 'icyrock',
            effectspore: 'kasibberry',
            fairyaura: 'kebiaberry',
            filter: 'keeberry',
            flamebody: 'kelpsyberry',
            flareboost: 'kingsrock',
            flashfire: 'laggingtail',
            flowergift: 'lansatberry',
            flowerveil: 'laxincense',
            forecast: 'leppaberry',
            forewarn: 'liechiberry',
            friendguard: 'luminousmoss',
            frisk: 'magnet',
            furcoat: 'dragongem',
            galewings: 'marangaberry',
            gluttony: 'metalcoat',
            gooey: 'metronome',
            grasspelt: 'micleberry',
            guts: 'miracleseed',
            harvest: 'muscleband',
            healer: 'mysticwater',
            heatproof: 'nevermeltice',
            heavymetal: 'occaberry',
            honeygather: 'oddincense',
            hugepower: 'electricgem',
            hustle: 'passhoberry',
            hydration: 'payapaberry',
            hypercutter: 'petayaberry',
            icebody: 'poisonbarb',
            illuminate: 'quickclaw',
            illusion: 'razorclaw',
            immunity: 'razorfang',
            imposter: 'fairygem',
            infiltrator: 'rindoberry',
            innerfocus: 'rockincense',
            insomnia: 'roseincense',
            intimidate: 'redcard',
            ironbarbs: 'roseliberry',
            ironfist: 'safetygoggles',
            justified: 'salacberry',
            keeneye: 'scopelens',
            klutz: 'seaincense',
            leafguard: 'sharpbeak',
            levitate: 'shedshell',
            lightmetal: 'shellbell',
            lightningrod: 'shucaberry',
            limber: 'silkscarf',
            liquidooze: 'silverpowder',
            magicbounce: 'smoothrock',
            magicguard: 'snowball',
            magician: 'softsand',
            magmaarmor: 'spelltag',
            magnetpull: 'starfberry',
            marvelscale: 'stickybarb',
            megalauncher: 'tangaberry',
            minus: 'twistedspoon',
            moldbreaker: 'wacanberry',
            moody: 'waveincense',
            motordrive: 'weaknesspolicy',
            moxie: 'whiteherb',
            multiscale: 'widelens',
            multitype: 'wiseglasses',
            mummy: 'yacheberry',
            naturalcure: 'zoomlens',
            noguard: 'adamantorb',
            normalize: 'burndrive',
            oblivious: 'chilldrive',
            overcoat: 'deepseascale',
            overgrow: 'deepseatooth',
            owntempo: 'dousedrive',
            parentalbond: 'firegem',
            pickpocket: 'lightball',
            pickup: 'luckypunch',
            pixilate: 'griseousorb',
            plus: 'lustrousorb',
            poisonheal: 'metalpowder',
            poisonpoint: 'quickpowder',
            poisontouch: 'shockdrive',
            prankster: 'mail',
            pressure: 'stick',
            primordialsea: 'thickclub',
            protean: 'aguavberry',
            purepower: 'icegem',
            quickfeet: 'aspearberry',
            raindish: 'bindingband',
            rattled: 'cheriberry',
            reckless: 'destinyknot',
            refrigerate: 'enigmaberry',
            regenerator: 'figyberry',
            rivalry: 'floatstone',
            rockhead: 'ironball',
            roughskin: 'jabocaberry',
            runaway: 'machobrace',
            sandforce: 'magoberry',
            sandrush: 'oranberry',
            sandstream: 'pechaberry',
            sandveil: 'persimberry',
            sapsipper: 'rawstberry',
            scrappy: 'ringtarget',
            serenegrace: 'rowapberry',
            shadowtag: 'poisongem',
            shedskin: 'wikiberry',
            sheerforce: 'armorfossil',
            shellarmor: 'belueberry',
            shielddust: 'blukberry',
            simple: 'psychicgem',
            skilllink: 'cherishball',
            slowstart: 'clawfossil',
            sniper: 'cornnberry',
            snowcloak: 'coverfossil',
            snowwarning: 'diveball',
            solarpower: 'domefossil',
            solidrock: 'dreamball',
            soundproof: 'durinberry',
            speedboost: 'duskball',
            stall: 'electirizer',
            stancechange: 'energypowder',
            static: 'fastball',
            steadfast: 'friendball',
            stench: 'greatball',
            stickyhold: 'healball',
            stormdrain: 'heavyball',
            strongjaw: 'helixfossil',
            sturdy: 'hondewberry',
            suctioncups: 'levelball',
            superluck: 'loveball',
            swarm: 'lureball',
            sweetveil: 'luxuryball',
            swiftswim: 'magostberry',
            symbiosis: 'masterball',
            synchronize: 'moonball',
            tangledfeet: 'nanabberry',
            technician: 'nestball',
            telepathy: 'netball',
            teravolt: 'nomelberry',
            thickfat: 'oldamber',
            tintedlens: 'pamtreberry',
            torrent: 'parkball',
            toughclaws: 'pinapberry',
            toxicboost: 'plumefossil',
            trace: 'pokeball',
            truant: 'pomegberry',
            turboblaze: 'premierball',
            unaware: 'qualotberry',
            unburden: 'quickball',
            unnerve: 'rabutaberry',
            victorystar: 'rarebone',
            vitalspirit: 'razzberry',
            voltabsorb: 'repeatball',
            waterabsorb: 'rootfossil',
            waterveil: 'safariball',
            weakarmor: 'skullfossil',
            whitesmoke: 'spelonberry',
            wonderguard: 'steelgem',
            wonderskin: 'sportball',
            zenmode: 'tamatoberry',
        };
        Object.keys(abilityToItem).forEach(ability => {
            this.modData("Abilities", ability).item = abilityToItem[ability];
            let item = this.data.Items[abilityToItem[ability]];
            this.data.Items[abilityToItem[ability]] = Object.assign({}, this.getAbility(ability), {
                id: item.id,
                name: item.name,
                num: item.num,
                gen: item.gen,
                onTakeItem: false,
                ability: ability,
            });
        });
    },
    suppressingAttackEvents: function() {
        return (this.activePokemon && this.activePokemon.isActive && (!this.activePokemon.ignoringAbility() && this.activePokemon.getAbility().stopAttackEvents || !this.activePokemon.ignoringItem() && this.activePokemon.getItem().stopAttackEvents));
    },
    pokemon: {
        hasItem: function(item) {
            if (Tools.getItem(this.item).ability) return false;
            if (this.ignoringItem()) return false;
            if (!Array.isArray(item)) return this.item === toId(item);
            return item.map(toId).contains(this.item);
        },
        hasAbility: function(ability) {
            if (this.ignoringAbility()) return false;
            if (!Array.isArray(ability)) {
                ability = toId(ability);
                if (this.ability === ability) return true;
            } else {
                ability = ability.map(toId);
                if (ability.includes(this.ability)) return true;
            }
            if (ability === "klutz") return false;
            if (!this.item || this.ignoringItem()) return false;
            let item = this.battle.getItem(this.item);
            if (!Array.isArray(ability)) return ability === item.ability;
            return ability.includes(item.ability);
        },
        isGrounded: function(negateImmunity) {
            if ('gravity' in this.battle.pseudoWeather) return true;
            if ('ingrain' in this.volatiles) return true;
            if ('smackdown' in this.volatiles) return true;
            if (!negateImmunity && this.hasType('Flying')) return false;
            if (this.hasAbility('levitate') && !this.battle.suppressingAttackEvents()) return null;
            if ('magnetrise' in this.volatiles) return false;
            if ('telekinesis' in this.volatiles) return false;
            return true;
        },
    },
};


In other news, Abyssal Not is now open source! (My code sucks as always)
 
Last edited:
Hopefully no one has posted these already, but here are some ideas I came up with for EI+:
Ho-Oh @ Magic Guard (Snowball)
Ability: Regenerator
EVs: 252 Atk / 4 SpA / 252 Spe
Jolly/Adamant Nature
- Brave Bird
- Sacred Fire
- Earthquake
- Thunder Wave
What even are stealth rocks? This set basically lets Ho Oh spam brave bird to it's hearts content and switch in and out freely without fear of rocks, abusing regenerator as much as possible.

Rayquaza @ Gale Wings
Ability: Multiscale
EVs: 252 Atk / 4 SpD / 252 Spe
Jolly Nature
- Dragon Dance
- Extreme Speed
- Earthquake
- Dragon Ascent
Basically, the aim of this set is to setup a DD or two while multiscale is still intact, and then mega evolve and sweep with dragon ascent.

Lugia @ Multiscale / Unaware
Ability: Regenerator
EVs: 248 HP / 252 Def / 8 SpD
Bold Nature
IVs: 0 Atk
- Aeroblast
- Toxic
- Roost
- Whirlwind
This seems like a pretty cool wall. Not entirely sure about the moves, but the gist of it is to basically toxic shit and wall it until it dies. Multiscale pairs nicely with regen, however unaware is useful if you're worried about setup.

Smeargle @ Prankster
Ability: Mold Breaker
EVs: 252 HP / 4 SpD / 252 Spe
Timid Nature
IVs: 0 Atk
- Spore
- Spikes
- Sticky Web
- Stealth Rock
Suicide Lead 101. Yes, it's probably ass, but it looks good on paper.
 

Hilomilo

High-low My-low
is a Smogon Social Media Contributoris a Top Contributor
Okay, this thread is pretty dead, but why isn't aerilate gale wings talonflame a thing on the vr? Sounds pretty viable to me, unless it was banned or something.
 

Imperator Romanum

formerly Grains of Salt
Hey guys! It's been a while...

Enchanted Items is not coming back for SuMo. It was overcomplicated and awkward in practise with the items. Although it was a concept that was well received by the OM community, it was a bit to difficult to get into for non OM players. I enjoyed running it, but Enchanted Items isn't coming back as it once was...

However, from Enchanted Items we learn and adapt.

Introducing Multibility

The new Enchanted Items, Multibility completely removes the need for items. It's being coded by Spandan and it will allow you to simply input your ability of choice into your Item slot. With this you'll be able to quickly and easily teambuild. Multibility is easier for new players to get into as well! The ban list is going to be identical to Enchanted items. It will be lead by me and Spandan. When it's coded I'll let you know!

Thank you for all the support!

 

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top