Approved by Hollywood.
Hi, there!
This thread intends to collect the code required to play the approved Other Metas, including Pet Mods.
How to contribute?
You may provide a Github Gist, Pastebin, or link to a similar site, containing either the code itself required to implement the OM or the diffs involved in its implementation (so a link to a dedicated commit or pull request would be cool).
This is the way to go for Pet Mods code, as well as for OMs that dynamically change (e.g. Theorymon, OM Mashup, Pokémon Throwback, etc.) Pet Mods must only show their current version. Past versions of periodical OMs can be published though.
For small, simple (code-wise) OMs, you may just post it fully, using the format showcased below.
XY OMs
Old Gen OMs
Also, useful references:
Hi, there!
This thread intends to collect the code required to play the approved Other Metas, including Pet Mods.
How to contribute?
You may provide a Github Gist, Pastebin, or link to a similar site, containing either the code itself required to implement the OM or the diffs involved in its implementation (so a link to a dedicated commit or pull request would be cool).
This is the way to go for Pet Mods code, as well as for OMs that dynamically change (e.g. Theorymon, OM Mashup, Pokémon Throwback, etc.) Pet Mods must only show their current version. Past versions of periodical OMs can be published though.
For small, simple (code-wise) OMs, you may just post it fully, using the format showcased below.
XY OMs
Metagamiate
config/formats.js
config/formats.js
Code:
{
name: "Metagamiate",
ruleset: ['Pokemon', 'Standard', 'Baton Pass Clause', 'Swagger Clause', 'Team Preview'],
banlist: ['Gengarite', 'Kangaskhanite', 'Lucarionite', 'Soul Dew',
'Arceus', 'Blaziken', 'Darkrai', 'Deoxys', 'Deoxys-Attack', 'Deoxys-Defense', 'Deoxys-Speed', 'Dialga', 'Genesect', 'Giratina',
'Giratina-Origin', 'Groudon', 'Kyogre', 'Ho-Oh', 'Kyurem-White', 'Lugia', 'Mewtwo', 'Palkia', 'Rayquaza', 'Reshiram',
'Shaymin-Sky', 'Kyurem-White', 'Xerneas', 'Yveltal', 'Zekrom'
],
onModifyMove: function(move, pokemon) {
if (move.type === 'Normal' && move.id !== 'hiddenpower' && !pokemon.hasAbility(['aerilate', 'pixilate', 'refrigerate'])) {
var types = pokemon.getTypes();
if (!types[0] || types[0] === '???') return;
move.type = types[0];
move.isMetagamiate = true;
}
},
onBasePowerPriority: 9,
onBasePower: function(basePower, attacker, defender, move) {
if (!move.isMetagamiate) return;
return this.chainModify([0x14CD, 0x1000]);
}
}
No Ability
config/formats.js
mods/noability/abilities.js
mods/noability/scripts.js
mods/noability/formats-data.js
config/formats.js
Code:
{
name: "No Ability",
mod: 'noability',
ruleset: ['Pokemon', 'Standard', 'Team Preview', 'Swagger Clause', 'Baton Pass Clause'],
banlist: ['Uber', 'Ignore Illegal Abilities'],
validateSet: function (pokemon) {
pokemon.ability = 'None';
}
}
mods/noability/abilities.js
Code:
exports.BattleAbilities = {
"None": {
desc: "This Pokemon has no ability.",
shortDesc: "This Pokemon has no ability.",
id: "none",
name: "None",
rating: 1,
num: 1
}
};
mods/noability/scripts.js
Code:
exports.BattleScripts = {
init: function() {
for (var i in this.data.Pokedex) {
// Needed because of forme changes
this.modData('Pokedex', i).abilities['0'] = 'None';
}
}
};
mods/noability/formats-data.js
Code:
exports.BattleFormatsData = {
blaziken: {
inherit: true,
tier: "OU"
},
slaking: {
inherit: true,
tier: "Uber"
},
regigigas: {
inherit: true,
tier: "Uber"
},
shayminsky: {
inherit: true,
tier: "OU"
},
genesect: {
inherit: true,
tier: "OU"
},
aegislash: {
inherit: true,
tier: "OU"
},
gengarmega: {
inherit: true,
tier: "OU"
},
kangaskhanmega: {
inherit: true,
tier: "OU"
},
lucariomega: {
inherit: true,
tier: "OU"
}
};
Pacifistmons
config/formats.js
config/formats.js
Code:
{
name: "PacifistMons",
ruleset: ['Pokemon', 'Standard', 'Team Preview'],
banlist: ['Heatran', 'Gengarite', 'Taunt', 'Magic Guard'],
validateSet: function(set) {
var problems = [];
for (var i in set.moves) {
var move = this.getMove(set.moves[i]);
if (move.heal) problems.push(move.name + ' is banned as it is a healing move.');
if (move.category !== 'Status') problems.push(move.name + ' is banned as it is an attacking move.');
}
return problems;
}
}
Protean Palace
config/formats.js
config/formats.js
Code:
{
name: "Protean Palace",
ruleset: ['Pokemon', 'Standard', 'Team Preview'],
banlist: ['Uber', 'Soul Dew', 'Gengarite', 'Kangaskhanite', 'Lucarionite'],
onPrepareHit: function (source, target, move) {
var type = move.type;
if (type && type !== '???' && source.getTypes().join() !== type) {
if (!source.setType(type)) return;
this.add('-start', source, 'typechange', type);
}
}
}
Same Type Stealth Rock
config/formats.js
mods/stsr/moves.js
config/formats.js
Code:
{
name: "Same Type Stealth Rock",
mod: 'stsr',
ruleset: ['OU']
}
mods/stsr/moves.js
Code:
exports.BattleMovedex = {
stealthrock: {
inherit: true,
effect: {
onStart: function (side, source) {
this.add('-sidestart', side, 'move: Stealth Rock');
this.effectData.type = source.getTypes()[0];
this.add('-message', '(' + this.effectData.type + '-type)');
},
onSwitchIn: function (pokemon) {
if (pokemon.hasAbility('voltabsorb') && this.effectData.type === 'Electric') {
pokemon.side.removeSideCondition('stealthrock');
this.add('-sideend', pokemon.side, 'move: Stealth Rock', '[of] ' + pokemon);
} else if (pokemon.hasAbility('waterabsorb') && this.effectData.type === 'Water') {
pokemon.side.removeSideCondition('stealthrock');
this.add('-sideend', pokemon.side, 'move: Stealth Rock', '[of] ' + pokemon);
} else if (pokemon.runImmunity(this.effectData.type)) {
var typeMod = this.getEffectiveness(this.effectData.type, pokemon);
var factor = 8;
if (typeMod === 1) factor = 4;
if (typeMod >= 2) factor = 2;
if (typeMod === -1) factor = 16;
if (typeMod <= -2) factor = 32;
var damage = this.damage(pokemon.maxhp / factor);
}
}
}
}
};
Wonkymons
config/formats.js
mods/wonkymons/pokedex.js
Pokedex file.
config/formats.js
Code:
{
name: "Wonkymons",
mod: 'wonkymons',
ruleset: ['OU'],
banlist: ['Tyranitar', 'Charizard', 'Mantyke']
}
mods/wonkymons/pokedex.js
Pokedex file.
Old Gen OMs
Nothing to see here... (yet)
Nothing to see here... (yet)
Also, useful references:
Last edited: