Skip to main content

Stats

A stat refers to any of several parameters pertaining to Pokémon that can affect turn order, move success, and damage output during a battle. With exception to the HP stat, a Pokémon's stat can also be temporarily raised or lowered in stages during battle through various effects.

info

See more on Bulbapedia.

Methods

getStatValue()

Returns the Pokémon's final stat value regarding parameters sent.

Signature

getStatValue(params: GetStatValueParams) => number
ParameterTypeRequiredDescription
paramsGetStatValueParamsYes

The general parameters used for Pokémon's stat calculation.

params.basenumberYes

The Pokémon's base stat value (HP, Attack, Defense, Special Attack, Special Defense, or Speed).

params.evnumberNo

The Pokémon's Effort Value (EV) for given stat.

params.ivnumberNo

The Pokémon's Individual Value (IV) for given stat.

params.isHpbooleanNo

True if evaluating HP stat value for given Pokémon.

params.levelnumberNo

The Pokémon's level.

params.natureNatureStatTypeNo

If the Pokémon has a hindering, neutral, or enhancing nature.

params.isShedinjabooleanNo

True if evaluating a stat for Shedinja.

Returns

A number with the Pokémon's final stat value.

Examples

getStatValue({
base: 100,
ev: 255,
}); // returns 328

getStatValue({
base: 100,
ev: 255,
isHp: true,
}); // returns 404

getStatValue({
base: 100,
iv: 0,
isHp: true,
}); // returns 310

getStatValue({
base: 100,
isHp: true,
isShedinja: true,
}); // returns 1

getMaxStatValue()

Returns the Pokémon's final maximum possible stat value regarding parameters sent.

Signature

getMaxStatValue(params: Omit<GetStatValueParams, 'iv' | 'ev' | 'nature'>) => number
ParameterTypeRequiredDescription
paramsOmit<GetStatValueParams, 'iv' | 'ev' | 'nature'>Yes

The general parameters used for Pokémon's maximum possible stat calculation.

params.basenumberYes

The Pokémon's base stat value (HP, Attack, Defense, Special Attack, Special Defense, or Speed).

params.isHpbooleanNo

True if evaluating HP stat value for given Pokémon.

params.levelnumberNo

The Pokémon's level.

params.isShedinjabooleanNo

True if evaluating a stat for Shedinja.

Returns

A number with the Pokémon's final maximum possible stat value.

Example

getMaxStatValue({
base: 100,
}); // returns 328

getMaxStatValue({
base: 100,
isHp: true,
}); // returns 404

getMinStatValue()

Returns the Pokémon's final minimum possible stat value regarding parameters sent.

Signature

getMinStatValue(params: Omit<GetStatValueParams, 'iv' | 'ev' | 'nature'>) => number
ParameterTypeRequiredDescription
paramsOmit<GetStatValueParams, 'iv' | 'ev' | 'nature'>Yes

The general parameters used for Pokémon's maximum possible stat calculation.

params.basenumberYes

The Pokémon's base stat value (HP, Attack, Defense, Special Attack, Special Defense, or Speed).

params.isHpbooleanNo

True if evaluating HP stat value for given Pokémon.

params.levelnumberNo

The Pokémon's level.

params.isShedinjabooleanNo

True if evaluating a stat for Shedinja.

Returns

A number with the Pokémon's final minimum possible stat value.

Example

getMinStatValue({
base: 100,
}); // returns 184

getMinStatValue({
base: 100,
isHp: true,
}); // returns 310

getPriorGenIIIStatValue()

Returns the Pokémon's final stat value regarding parameters sent for Pokémon Red, Blue, Yellow, Gold, Silver, and Crystal games.

Signature

getPriorGenIIIStatValue(params: Omit<GetStatValueParams, 'nature' | 'isShedinja'>) => number
ParameterTypeRequiredDescription
paramsOmit<GetStatValueParams, 'nature' | 'isShedinja'>Yes

The general parameters used for Pokémon's stat calculation.

params.basenumberYes

The Pokémon's base stat value (HP, Attack, Defense, Special Attack, Special Defense, or Speed).

params.evnumberYes

The Pokémon's Effort Value (EV) for given stat.

params.ivnumberYes

The Pokémon's Individual Value (IV) for given stat.

params.isHpbooleanNo

True if evaluating HP stat value for given Pokémon.

params.levelnumberNo

The Pokémon's level.

Returns

A number with the Pokémon's final stat value.

Example

getPriorGenIIIStatValue({
isHp: true,
level: 81,
base: 35,
iv: 7,
ev: 22850,
}); // returns 189

getLegendsArceusStatValue()

Returns the Pokémon's final stat value regarding parameters sent for Pokémon Legends Arceus game.

Signature

getLegendsArceusStatValue(params: GetLegendsArceusStatValueParams) => number
ParameterTypeRequiredDescription
paramsGetLegendsArceusStatValueParamsYesThe general parameters used for Pokémon's stat calculation.
params.basenumberYes

The Pokémon's base stat value (HP, Attack, Defense, Special Attack, Special Defense, or Speed).

params.effortLevelnumberYes

The Pokémon's Effort Level for given stat.

params.natureNatureStatTypeYes

If the Pokémon has a hindering, neutral, or enhancing nature.

params.isHpbooleanNo

True if evaluating HP stat value for given Pokémon.

params.levelnumberNo

The Pokémon's level.

Returns

A number with the Pokémon's final stat value.

Example

getLegendsArceusStatValue({
isHp: true,
level: 100,
base: 120,
effortLevel: 10,
}); // returns 490

getLegendsArceusStatValue({
level: 100,
base: 120,
effortLevel: 10,
}) // returns 390

getPLAEfforLevelMultiplier()

Returns the Pokémon's Effort Level Multiplier for Pokémon Legends Arceus game.

Signature

getPLAEfforLevelMultiplier(effortLevel: number) => number
ParameterTypeRequiredDescription
effortLevelnumberYesThe Pokémon's Effort Level (a number between 0 and 10).

Returns

A number with the multiplier for given effort level.

Example

getPLAEfforLevelMultiplier(0); // returns 0
getPLAEfforLevelMultiplier(10); // returns 25

getLetsGoPikachuStatValue()

Returns the Pokémon's final stat value regarding parameters sent for Pokémon: Let's Go, Pikachu! and Let's Go, Eevee! games.

Signature

getLetsGoPikachuStatValue(params: GetLetsGoPikachuStatValueParams) => number
ParameterTypeRequiredDescription
paramsGetLetsGoPikachuStatValueParamsYesThe general parameters used for Pokémon's stat calculation.
params.basenumberYesThe Pokémon's base stat value (HP, Attack, Defense, Special Attack, Special Defense, or Speed).
params.isHpbooleanNoTrue if evaluating HP stat value for given Pokémon.
params.av`numberNoThe Pokémon's Awakening Value (AV), also known as Go Power bonus, for given stat.
params.ivnumberNoThe Pokémon's Individual Vale (IV) for given stat.
params.levelnumberNoThe Pokémon's level.
params.friendshipnumberNoThe Pokémon's friendship level.
params.natureNatureStatTypeNoIf the Pokémon has a hindering, neutral, or enhancing nature.

Returns

A number with the Pokemon's final stat value.

Example

getLetsGoPikachuStatValue({
isHp: true,
level: 100,
base: 100,
}); // returns 341

getLGPFriendshipMultiplier()

Returns the Pokémon's Effort Level Multiplier in Pokémon: Let's Go, Pikachu! and Let's Go, Eevee! games.

Signature

getLGPFriendshipMultiplier(friendship: number) => number
ParameterTypeRequiredDescription
friendshipnumberYesThe Pokémon's friendship Level.

Returns

A number with the Pokémon's friendship level.

Example

getLGPFriendshipMultiplier(0); // returns 1
getLGPFriendshipMultiplier(255); // returns 1.1

getCPValue()

Returns the Pokémon's Combat Power in Pokémon: Let's Go, Pikachu! and Let's Go, Eevee! games.

Signature

getCPValue(params: GetCPValueParams) => number
ParameterTypeRequiredDescription
paramsobjectYesThe general parameters used for Pokémon's stat calculation.
params.statnumberYesThe Pokémon's base stats.
params.stat.hpnumberYesThe Pokémon's HP stat value.
params.stat.attacknumberYesThe Pokémon's Attack stat value.
params.stat.defensenumberYesThe Pokémon's Defense stat value.
params.stat.specialAttacknumberYesThe Pokémon's Special Attack stat value.
params.stat.specialDefensenumberYesThe Pokémon's Special Defense stat value.
params.stat.speednumberYesThe Pokémon's Speed stat value.
params.totalAvnumberNoThe Pokémon's total Awakening Values.
params.levelnumberNoThe Pokémon's level.

Returns

A number representing the Pokémon's Combat Power.

Example

getCPValue({
level: 50,
totalAv: 0,
stat: {
hp: 110,
attack: 75,
defense: 60,
specialAttack: 70,
specialDefense: 70,
speed: 110,
},
}); // returns 1485

getStatWithStage()

Returns the final Pokémon's stat value after applying a scale of stage multipliers.

info

See more on Bulbapedia.

Signature

getStatWithStage(statValue: number, multiplier: StageMultiplier) => number
ParameterTypeRequiredDescription
statValuenumberYesThe Pokémon stat value to apply stage multiplier.
multiplierStageMultiplierYesThe stage multiplier to apply on Pokémon stat.

Returns

A number with the stat after stage multiplier applied.

Example

getStatWithStage(300, 1); // returns 450
getStatWithStage(300, -2); // returns 75

Type Definitions

GetStatValueParams

An interface to determine the Pokémon's final stat value with getStatValue().

Type
Interface

Properties

NameRequiredType
base Yes number
iv No number
ev No number
level No number
isHp No boolean
isShedinja No boolean
nature No NatureStatType

GetLegendsArceusStatValueParams

An interface to determine the Pokémon's final stat value with getLegendsArceusStatValue().

Type
Interface

Properties

NameRequiredType
base Yes number
level No number
effortLevel No number
isHp No boolean
nature No NatureStatType

GetLetsGoPikachuStatValueParams

An interface to determine the Pokémon's final stat value with getLetsGoPikachuStatValue().

Type
Interface

Properties

NameRequiredType
base Yes number
level No number
iv No number
av No number
friendship No number
isHp No boolean
nature No NatureStatType

GetCPValueParams

An interface to determine the Pokémon's Combat Power value with getCPValue().

Type
Interface

Properties

NameRequiredType
stat Yes object
stat.hp Yes number
stat.attack Yes number
stat.defense Yes number
stat.specialAttack Yes number
stat.specialDefense Yes number
stat.speed Yes number
level No number
totalAv No number

NatureStatType

A string value describing how the Nature affects the stat.

Type
enum('enhancing', 'hindering', 'neutral')

StageMultiplier

A number value representing the stat stage multiplier.

Type
enum(-6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6)