• Do not use Discord to host any images you post, these links expire quickly! You can learn how to add images to your posts here.
  • The Eevee Expo Game Jam has concluded! 🎉 Head on over to the game jam forum to play through the games.
    Don't forget to come back September 21st to vote for your favorites!
  • Reminder: AI-generated content is not allowed on the forums per the Rules and Regulations. Please contact us if you have any questions!

Pokemon Evolve Into Shiny Version

Katelyn888

Novice
Member
Joined
Apr 7, 2025
Posts
33
I'm in the process of recreating the first two games into one as far as the storyline goes with some of my own personal tweaks to freshen it up. I had an idea, but I'm not sure how to go about it or if it's even possible. The part in the game where Team Rocket has the radio signals being sent towards TLOR, forcing the Magikarp there to evolve early, hence the Red Gyarados. My question is, when your Pokemon reach their evolution level, stone, etc during that event, instead of evolving into their regular form, they're shiny instead. Ideas? Thank you in advance.

Katelyn
 
Yeah, this should be possible. I'm going to recommend a few things without testing myself, so take this with a grain of salt, but...

So, every pokemon has a variable called @shiny that marks whether or not they are shiny. You can find this in Pokemon under [[Pokemon]] in the script editor. However, the variable as defined is attr_reader. Basically, variables are private usually. attr_reader lets other things read a variable, but not set them. We could make this attr_accessor, which lets outside things set it. But, we can also just write a function for Pokemon that lets you turn their shininess on.

Put this somewhere in Pokemon in the scripts with the other def things (e.g., after the def form section)
Code:
Expand Collapse Copy
  def makeshiny #kwat add for help
    @shiny = true 
  end
A pokemone object can now do this function to make itself shiny.

Now, you can find the [[Non-interactive UI]] section and scroll down to UI_Evolution. There, in def pbEvolutionSuccess, you have this segment:
Code:
Expand Collapse Copy
    # Modify Pokémon to make it evolved
    @pokemon.species = @newspecies
    @pokemon.calc_stats
    @pokemon.ready_to_evolve = false
So basically, after the Pokemon evolves, this sets the stats for the pokemon.

Slip in here the following:
Code:
Expand Collapse Copy
if $game_switches[XXXXX] == true
      @pokemon.makeshiny
      $game_switches[XXXXX] = false #turns switch off since used
end
When you make the Magikarp evolve, set a switch beforehand and replace XXXXXX with its number. This means that whenever you set this switch to true, the next pokemon will evolve into a shiny.

Now, there are a few issues with this- if you go into a battle, another pokemon could feasibly evolve first. But, if you do an overworld evolution, this should work fine.

ALSO, another issue with this is that as it stands the Pokemon will evolve into the normal form and then TURN shiny only afterwards. You might need to put the last code section I gave you immediately after def pbEvolutionSuccess to avoid this. But, that might not work either. I would have to tweak it to find the right spot to work, but, that's all the pieces, you just need to figure out how to fit them.
 
This is great information. I'll be looking into it this week since as I'm getting closer to that area in the game. Thank you 😊
 
Back
Top