I did a small code to scale pokémon levels. Requires at least version 1.3.5. To install, put it above main and after PokemonSelection. It can be right after script end:
Ruby:
# Instead of calling 'PokemonSelection.choose', call
# 'PokemonSelection.chooseChangingLevels'.
# The party will be cloned, allowing level adjustment settings, and it will be
# restored when 'PokemonSelection.restore' is called.
# Example for level 50:
# challenge = PokemonChallengeRules.new
# challenge.setLevelAdjustment(FixedLevelAdjustment.new(50))
# pr = PokemonSelection::Parameters.new
# pr.setBaseChallenge(challenge)
# PokemonSelection.chooseChangingLevels(pr)
module PokemonSelection
def self.chooseChangingLevels(*args)
if $PokemonGlobal.pokemonSelectionOriginalParty
raise "Can't choose a new party until restore the old one!"
end
params = Parameters.factory(*args)
if !hasValidTeam?(params)
raise "Player doesn't have a valid team!"
end
validPartyChosen=false
pbBattleChallenge.setSimple(params.challenge)
loop do
pbEntryScreen
validPartyChosen = pbBattleChallenge.getParty!=nil
break if (params.canCancel || pbBattleChallenge.getParty)
pbMessage(_INTL("Choose a Pokémon."))
end
if validPartyChosen
$PokemonGlobal.pokemonSelectionOriginalParty=$player.party
$player.party=pbBattleChallenge.getParty.map{|pk| pk.clone}
params.challenge.adjustLevels($player.party, $player.party)
end
pbBattleChallenge.pbCancel
return validPartyChosen
end
end