• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • It's time to vote for your favorite Pokémon Battle Revolution protagonist in our new weekly protagonist poll! Click here to cast your vote and let us know which PBR protagonist you like most.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Scripting Question] A spawned Pokemon will not know a level-up move that they should know if that move is also set to level 0.

  • 3
    Posts
    5
    Years
    • Seen Dec 16, 2021
    If you have a move set to level 0 (i.e. an evolution move), as well as having that same move set at a later level, then when the game spawns a Pokemon, the later level is ignored and the move is treated as if it is only learnt at level 0. This isn't a problem when learning a move via level-up that also gets learned as an evolution move for some reason, but it is when a Pokemon is spawned in the wild/hatched from an egg etc. I don't think this is meant to be the case.

    I've attached of my PBS files to illustrate this. I've set Magikarp to learn Splash at level 0 (as an evolution move), but also at level 1. Magikarp has five other moves at level 1: Tackle and Flail, which are both positioned before the level 1 Splash; and Take Down, Thunder, and Ice Beam, which are all positioned after the level 1 Splash. Look at the attached image and you'll see that this makes the last four moves in its level-up learnset Splash, Take Down, Thunder and Ice Beam. A wild level 1 Magikarp should therefore theoretically have these four moves.

    However, the second attached picture demonstrates that this does not occur. This freshly-caught level 1 Magikarp has Flail instead of Splash. However, it will have Splash in the place of Flail if I were to remove "0,SPLASH" from its moves.

    I'm not sure I've explained this very well, but hopefully the images will demonstrate the issue here ok. Does anyone know how this might be able to be changed via script editing?
     

    Attachments

    • [PokeCommunity.com] A spawned Pokemon will not know a level-up move that they should know if that move is also set to level 0.
      magikarpmoves.png
      65.8 KB · Views: 13
    • [PokeCommunity.com] A spawned Pokemon will not know a level-up move that they should know if that move is also set to level 0.
      Magikarpingame.png
      25.6 KB · Views: 14
    So at level 0 your Magikarp only has Splash.
    Attack 1 - Splash
    Attack 2 -
    Attack 3 -
    Attack 4 -


    At Level 1 it will learn Tackle.
    Attack 1 - Splash
    Attack 2 - Tackle
    Attack 3 -
    Attack 4 -

    Then it will learn Flail.
    Attack 1 - Splash
    Attack 2 - Tackle
    Attack 3 - Flail
    Attack 4 -

    Now it wants to learn Splash again, but it already knows Splash so it will skip this attack.

    Then it learns Takedown.
    Attack 1 - Splash
    Attack 2 - Tackle
    Attack 3 - Flail
    Attack 4 - Takedown

    Now it wants to learn Thunder, but it already knows 4 moves so it will delete the first attack and add the new attack to the bottom.
    Attack 1 - Tackle
    Attack 2 - Flail
    Attack 3 - Takedown
    Attack 4 - Thunder

    And finally it will learn Icebeam, like Thunder it already knows 4 moves so the first one will be removed.
    Attack 1 - Flail
    Attack 2 - Takedown
    Attack 3 - Thunder
    Attack 4 - Icebeam

    The two solutions I have for you are:
    1) In script editor go to PField_EncounterModifiers and change
    Code:
    Events.onWildPokemonCreate+=proc {|sender,e|
       pokemon=e[0]
       if $game_switches[SHINY_WILD_POKEMON_SWITCH]
         pokemon.makeShiny
       end
    }

    into
    Code:
    Events.onWildPokemonCreate+=proc {|sender,e|
       pokemon=e[0]
       if $game_switches[SHINY_WILD_POKEMON_SWITCH]
         pokemon.makeShiny
       end
       if pokemon.species==PBSpecies::MAGIKARP && pokemon.level==1
         pokemon.pbLearnMove(:TACKLE)
         pokemon.pbLearnMove(:SPLASH)
         pokemon.pbLearnMove(:TAKEDOWN)
         pokemon.pbLearnMove(:THUNDER)
         pokemon.pbLearnMove(:ICEBEAM)
       end
    }

    This will manually change all wild Magikarp attacks to Splash, Takedown, Thunder, Icebeam in that order. If the order of the attacks don't matter then you can remove the lines for everything other than Splash.

    2) Remove 0,SPLASH from the list of attacks. unless you plan on a Pokemon evolving into Magikarp or catching a level 0 Magikarp it shouldn't be needed.
    If it is needed and you don't care if the attacks are out of order, just move 1,SPLASH to the end of the listed attacks.
     
    Last edited:
    Back
    Top