- Pokémon Essentials Version
- v20.1 ➖
This script overhauls the way EVs are gained and distributed to Pokémon. As you gain EVs, you can manually choose which stats to apply them to, removing the grind associated with EV training. This script works by storing accumulated EVs in an EV "Buffer," and allows the player to manually allocate accumulated EVs to a Pokémon's statistics.
This script has two versions; one for V19 and one for V20.
Features:
- Ability to manually allocate each EV to an individual Pokémon's stats.
- Configurable methods for gaining EVs.
- Options for wild and trainer Pokémon to generate with EVs.
- Options for how to distribute EVs on generation.
- Extra debug menu options to configure the EV Buffer.
On the stats page of the summary screen (Page Three by default) press the Z/ACTION button to toggle between Stat view and EV view. While viewing the EVs, you can press the C/USE button to begin allocating EVs. This cannot be done if the Pokémon doesn't have any free EVs in its buffer, or if you are in a battle. Press X/BACK to cancel EV allocation, and C/USE again to confirm it. Once confirmed, you cannot change the EV allocation.
Included is a method
pbResetAllEffortValues(pkmn)
which can be used to reset the EVs of a selected Pokémon, removing all allocated EVs from its stats and returning them to the EV buffer. Below is an example event of how to use this method. Typically, you will want to call pbChoosePokemon
to select the Pokémon. Calling pbResetAllEffortValues(pkmn)
in a conditional branch will allow you to display a message if it won't affect the Pokémon. pbResetAllEffortValues(pkmn)
WILL NOT work on any Pokémon that doesn't have any EVs allocated.Configuration:
At the top of the script are a handful of configuration options.
- EV_GAIN_MODE
- The manner in which Pokémon gain EVs.
- Two options: "Standard" and "Level."
- "Standard" mode is a slight modification to the regular method of gaining EVs. When you defeat an enemy Pokémon, your Pokémon gains a number of EVs that can be later allocated. The number is the sum of how many EVs it would have given out normally.
- E.G: Venusaur normally gives out 2 Sp.Atk EVs and 1 Sp.Def EVs. With this setting, it gives out 3 when defeated.
- "Level" mode causes your Pokémon to gain EVs when it levels up. The number gained is configurable.
- Default is "Level."
- EV_PER_LEVEL
- The number of EVs gained per level when EV_GAIN_MODE is set to "Level."
- Default is 5.
- EV_ON_CREATION
- Whether Pokémon are given EVs by default when they are created.
- Three options: "None," Level," and "IV"
- "None" makes Pokémon gain no EVs by default when they are created.
- "Level" makes the Pokémon gain a number of EVs equal to their Level times EV_PER_LEVEL.
- "IV" mode means a Pokémon starts with a number of IVs dictated by their IVs and Level when created.
- Specifically, they gain a number of EVs equal to a percentage the sum of their IVs, where the percentage is equal to their level.
- E.G: A level 5 Pokémon gains 5% of the sum of their IVs as starting EVs, and a level 100 would gain 100% of the sum of their IVs as starting EVs.
- SCATTER_EVS_ON_CREATION
- Whether a Pokémon generating with default EVs has their EVs assigned to stats or left in the buffer.
- Two options:
true
orfalse
- Default is
true
- EV_SCATTER_MODE
- Three options: "Standard," "Biased," and "Balanced."
- "Standard" mode allocates the starting EVs to stats completely randomly.
- "Biased" mode is also random, but has a bias towards allocating EVs to the Pokémon's higher base stats.
- "Balanced" mode tries to allocate the EVs to each stat as equally as possible.
- Default is "Biased."
The script replaces the following methods:
def evYield
inclass Pokemon
def pbGainEVsOne
inclass Battle
(class PokeBattle_Battle
in v19)def pbChangeLevel
(The code used for EXP Candies & Rare Candiesdef drawPageThree
inclass PokemonSummary_Scene
def pbScene
inclass PokemonSummary_Scene
- And the
MenuHandler :pokemon_debug_menu, :hidden_values
Installation:
The ZIP download contains folders for both v19 and v20. Place the appropriate folder into the root folder of your project. Take any necessary precautions with any edits you have made to the methods mentioned above.
I recommend starting a new save file after installation, as this script does make some changes to the Pokémon class, and could result in a crash otherwise. However, this isn't strictly necessary - opening the EV menu in the summary should be enough to prevent this issue, as the method
evBuffer
used in the UI has the added effect of creating the @ev_buffer
variable if it doesn't exist, which should hopefully avoid a crash.- Credits
- CregALeg