• 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.
  • Our friends from the Johto Times are hosting a favorite Pokémon poll - and we'd love for you to participate! Click here for information on how to vote for your favorites!
  • 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.

Evolution Methods

  • 51
    Posts
    13
    Years
    I've added Sliggoo's data to Pokemon.txt
    I've created Rain as an evolution method in the script so that Goomy can evolve while in the rain.
    My Problem is that i cannot have the Evolution method as

    Evolution=SLIGGOO,Level,40,Rain or SLIGGOO,Rain,Level,40

    without any errors.

    I want both conditions to make it so Goomy evolves around level 40 in the rain.
    How would i go about this?
     
    You said you created rain as an evolution method... Show us your code.
     
    You said you created rain as an evolution method... Show us your code.

    when 26 # Evolves if raining
    return poke if $game_screen && $game_screen.weather==1


    Also keep getting error of

    Exception: RuntimeError
    Message: Field is not a positive integer
    File PBS/pokemon.txt, section 0, key Evolutions


    Compiler:219:in `csvPosInt!'
    Compiler:2445:in `pbCompilePokemonData'
    Compiler:2424:in `each'
    Compiler:2424:in `pbCompilePokemonData'
    Compiler:2421:in `each'
    Compiler:2421:in `pbCompilePokemonData'
    Compiler:3971:in `pbCompileAllData'
    Compiler:4095
     
    Code:
         "Evolutions"=>[0,"*ses",nil,["Unknown",
            "Happiness","HappinessDay","HappinessNight","Level","Trade",
            "TradeItem","Item","AttackGreater","AtkDefEqual","DefenseGreater",
            "Silcoon","Cascoon","Ninjask","Shedinja","Beauty",
            "ItemMale","ItemFemale","DayHoldItem","NightHoldItem","HasMove",
            "HasInParty","LevelMale","LevelFemale","Location","TradeSpecies",
            "[COLOR="Red"]Custom1[/COLOR]","Custom2","Custom3","Custom4","Custom5","Custom6","Custom7"]],
    Did you change the part in red to "Rain"?
    You also need to check whether the Pokémon has reached it's evolution level.
    Code:
    when 26 # Evolves if raining
    return poke if pokemon.level>=level && $game_screen.weather==1
     
    Code:
         "Evolutions"=>[0,"*ses",nil,["Unknown",
            "Happiness","HappinessDay","HappinessNight","Level","Trade",
            "TradeItem","Item","AttackGreater","AtkDefEqual","DefenseGreater",
            "Silcoon","Cascoon","Ninjask","Shedinja","Beauty",
            "ItemMale","ItemFemale","DayHoldItem","NightHoldItem","HasMove",
            "HasInParty","LevelMale","LevelFemale","Location","TradeSpecies",
            "[COLOR=Red]Custom1[/COLOR]","Custom2","Custom3","Custom4","Custom5","Custom6","Custom7"]],
    Did you change the part in red to "Rain"?
    You also need to check whether the Pokémon has reached it's evolution level.
    Code:
    when 26 # Evolves if raining
    return poke if pokemon.level>=level && $game_screen.weather==1

    This is what my script says. I already had Custom1 changed to "Rain" as can be seen here:

    "Evolutions"=>[0,"*ses",nil,["Unknown",
    "Happiness","HappinessDay","HappinessNight","Level","Trade",
    "TradeItem","Item","AttackGreater","AtkDefEqual","DefenseGreater",
    "Silcoon","Cascoon","Ninjask","Shedinja","Beauty",
    "ItemMale","ItemFemale","DayHoldItem","NightHoldItem","HasMove",
    "HasInParty","LevelMale","LevelFemale","Location","TradeSpecies",
    "Rain","Custom2","Custom3","Custom4","Custom5","Custom6","Custom7"]],

    I'm still getting the

    "Exception: RuntimeError
    Message: Field is not a positive integer
    File PBS/pokemon.txt, section 0, key Evolutions


    Compiler:219:in `csvPosInt!'
    Compiler:2445:in `pbCompilePokemonData'
    Compiler:2424:in `each'
    Compiler:2424:in `pbCompilePokemonData'
    Compiler:2421:in `each'
    Compiler:2421:in `pbCompilePokemonData'
    Compiler:3971:in `pbCompileAllData'
    Compiler:4095"

    Error when i start up the game.
     
    Evolution=SLIGGOO,Level,40,Rain

    or

    SLIGGOO,Rain,Level,40
    The fundamental problem here is that you've got one too many parameters for an evolution. An evolution is a set of three things, as follows:

    1) Species to evolve into.
    2) Method of evolution.
    3) Some value used by the evolution method.

    You've repeated thing 2 ("...,Rain,Level,...") which is just incorrect. Get rid of one of them.
     
    The fundamental problem here is that you've got one too many parameters for an evolution. An evolution is a set of three things, as follows:

    1) Species to evolve into.
    2) Method of evolution.
    3) Some value used by the evolution method.

    You've repeated thing 2 ("...,Rain,Level,...") which is just incorrect. Get rid of one of them.

    It worked fine, the game started up but when i went to evolve Goomy, i got the error:
    Exception: ArgumentError
    Message: wrong number of arguments(0 for 3)
    PokemonEvolution:590:in `weather'
    PokemonEvolution:590:in `pbMiniCheckEvolution'
    PokemonEvolution:638:in `pbCheckEvolution'
    PokemonEvolution:637:in `pbCheckEvolutionEx'
    PokemonEvolution:626:in `each'
    PokemonEvolution:626:in `pbCheckEvolutionEx'
    PokemonEvolution:637:in `pbCheckEvolution'
    PokemonItemEffects:671:in `pbChangeLevel'
    PokemonItemEffects:688
    PokemonItemEffects:683:in `call'

    I searched online to see if i could find any solution before asking any questions again. Not sure what the arguments are.
     
    Last edited:
    try using this as the evo method
    poke if $game_screen && ($game_screen.weather==1 || $game_screen.weather==2) && pokemon.level>=level

    and then in the pokemon txt
    SLIGGOO,Rain,40
     
    try using this as the evo method
    poke if $game_screen && ($game_screen.weather==1 || $game_screen.weather==2) && pokemon.level>=level

    and then in the pokemon txt
    SLIGGOO,Rain,40

    Did you try looking at the wiki? It has an example of how to implement exactly this kind of evolution method.

    Tried both of these things, keep getting the Argument Error that i posted above when trying to evolve the goomy.
     
    I have done this exactly as Maruno and p.claydon have done it, and it works fine. It seems that "Rain,Level," is the problem. Also, as a sidenote, Sliggoo evolves into Goodra at level 50, not 40.
     
    I have done this exactly as Maruno and p.claydon have done it, and it works fine. It seems that "Rain,Level," is the problem. Also, as a sidenote, Sliggoo evolves into Goodra at level 50, not 40.
    It just DOES not want to work for me >.< It doesn't say "Rain,Level," It says "Rain,40" Now. The game starts up fine but i cannot evolve goomy without getting the argument error.
    I set goomy to evolve into sliggoo in the rain to test out the evolution method because I haven't programmed Goodra into the game yet.

    Did you start a new game?
    It didn't make a difference.
     
    What does your PBS Pokemon.txt look like?
    An argument error usually tells you wether you have the right amount of "arguments" or things after a comma, in your case, 0 out of 3... Which is wrong in any case
     
    What does your PBS Pokemon.txt look like?
    An argument error usually tells you wether you have the right amount of "arguments" or things after a comma, in your case, 0 out of 3... Which is wrong in any case

    [704]
    Name=Goomy
    InternalName=GOOMY
    Type1=DRAGON
    BaseStats=45,50,35,55,75,40
    GenderRate=Female50Percent
    GrowthRate=Slow
    BaseEXP=60
    EffortPoints=0,0,0,0,1,0
    Rareness=20
    Happiness=35
    Abilities=SAPSIPPER,HYDRATION
    Moves=1,TACKLE,1,BUBBLE,5,ABSORB,9,PROTECT,13,BIDE,18,DRAGONBREATH,25,RAINDANCE,28,FLAIL,32,BODYSLAM,38,MUDDYWATER,42,DRAGONPULSE
    EggMoves=ACIDARMOR,COUNTER,CURSE,ENDURE,IRONTAIL,POISONTAIL
    Compatibility=14,14
    StepsToHatch=10240
    Height=0.3
    Weight=2.8
    Color=Purple
    Habitat=Forest
    RegionalNumbers=0,46
    Kind=Soft Tissue
    Pokedex=It's covered in a slimy membrane that makes any punches or kicks slide off it harmlessly.
    BattlerPlayerY=0
    BattlerEnemyY=27
    BattlerAltitude=0
    Evolutions=SLIGGOO,Rain,40
    [705]
    Name=Sliggoo
    InternalName=SLIGGOO
    Type1=DRAGON
    BaseStats=45,50,35,55,75,40
    GenderRate=Female50Percent
    GrowthRate=Slow
    BaseEXP=60
    EffortPoints=0,0,0,0,1,0
    Rareness=20
    Happiness=35
    Abilities=SAPSIPPER,HYDRATION
    Moves=1,TACKLE,1,BUBBLE,5,ABSORB,9,PROTECT,13,BIDE,18,DRAGONBREATH,25,RAINDANCE,28,FLAIL,32,BODYSLAM,38,MUDDYWATER,42,DRAGONPULSE
    EggMoves=ACIDARMOR,COUNTER,CURSE,ENDURE,IRONTAIL,POISONTAIL
    Compatibility=14,14
    StepsToHatch=10240
    Height=0.3
    Weight=2.8
    Color=Purple
    Habitat=Forest
    RegionalNumbers=0,46
    Kind=Soft Tissue
    Pokedex=It's covered in a slimy membrane that makes any punches or kicks slide off it harmlessly.
    BattlerPlayerY=0
    BattlerEnemyY=27
    BattlerAltitude=0
    Evolutions=
     
    So...
    1) I copied your Pokémon info, to my pokemon.txt.
    2) Created my Rain evolution script.
    3) Gave my new Pokémon graphics.
    4) Changed my metadata for the map I'm on (my bedroom) so it's raining 100% of the time.
    5) Made an event that gives me a Level 39 Goomy and a Rare Candy.
    6) I used my Rare Candy on Goomy and she evolved.
    I did all this in a fresh Essentials v13.

    You've done something wrong... So unfortunately, I doubt anyone here can help you.
    The steps taken are as simple as 1,2,3... But you've messed up somewhere.

    There is nothing wrong with your pokemon.txt, with those 2 Pokémon.
    The script you should have in PokemonEvolution script section, should be:
    Code:
        when 24 # Evolves on a certain map
          return poke if $game_map.map_id==level
        when 25 # Evolves if traded for a certain species
          return -1
    [COLOR="Red"]    when 26 # Custom 1
          return poke if pokemon.level>=level && $game_screen.weather_type==1# Add code for custom evolution type 1[/COLOR]
        when 27 # Custom 2
          # Add code for custom evolution type 2
    Although, there is another type of rain, so don't forget that one.
    Your Compiler and not PokemonEditor script, should look like this:
    Code:
         "Evolutions"=>[0,"*ses",nil,["Unknown",
            "Happiness","HappinessDay","HappinessNight","Level","Trade",
            "TradeItem","Item","AttackGreater","AtkDefEqual","DefenseGreater",
            "Silcoon","Cascoon","Ninjask","Shedinja","Beauty",
            "ItemMale","ItemFemale","DayHoldItem","NightHoldItem","HasMove",
            "HasInParty","LevelMale","LevelFemale","Location","TradeSpecies",
            [COLOR="Red"]"Rain"[/COLOR],"Custom2","Custom3","Custom4","Custom5","Custom6","Custom7"]],
    If it doesn't, make it so it does.

    Another problem you might have, one of the few Pokémon you've created before these may have the same format as you had originally (...,Rain,Level,40), which is wrong.
     
    So...
    1) I copied your Pokémon info, to my pokemon.txt.
    2) Created my Rain evolution script.
    3) Gave my new Pokémon graphics.
    4) Changed my metadata for the map I'm on (my bedroom) so it's raining 100% of the time.
    5) Made an event that gives me a Level 39 Goomy and a Rare Candy.
    6) I used my Rare Candy on Goomy and she evolved.
    I did all this in a fresh Essentials v13.

    You've done something wrong... So unfortunately, I doubt anyone here can help you.
    The steps taken are as simple as 1,2,3... But you've messed up somewhere.

    There is nothing wrong with your pokemon.txt, with those 2 Pokémon.
    The script you should have in PokemonEvolution script section, should be:
    Code:
        when 24 # Evolves on a certain map
          return poke if $game_map.map_id==level
        when 25 # Evolves if traded for a certain species
          return -1
    [COLOR=Red]    when 26 # Custom 1
          return poke if pokemon.level>=level && $game_screen.weather_type==1# Add code for custom evolution type 1[/COLOR]
        when 27 # Custom 2
          # Add code for custom evolution type 2
    Although, there is another type of rain, so don't forget that one.
    Your Compiler and not PokemonEditor script, should look like this:
    Code:
         "Evolutions"=>[0,"*ses",nil,["Unknown",
            "Happiness","HappinessDay","HappinessNight","Level","Trade",
            "TradeItem","Item","AttackGreater","AtkDefEqual","DefenseGreater",
            "Silcoon","Cascoon","Ninjask","Shedinja","Beauty",
            "ItemMale","ItemFemale","DayHoldItem","NightHoldItem","HasMove",
            "HasInParty","LevelMale","LevelFemale","Location","TradeSpecies",
            [COLOR=Red]"Rain"[/COLOR],"Custom2","Custom3","Custom4","Custom5","Custom6","Custom7"]],
    If it doesn't, make it so it does.

    Another problem you might have, one of the few Pokémon you've created before these may have the same format as you had originally (...,Rain,Level,40), which is wrong.


    It worked! Thank you so much :D
     
    Glad I could help. Maybe next time you give us the required information so we can help better ;)
     
    I have the same problem!

    ---------------------------
    Pokemon Essentials
    ---------------------------
    Exception: RuntimeError

    Message: Field is not a positive integer

    File PBS/pokemon.txt, section 3, key Evolutions





    Compiler:219:in `csvPosInt!'

    Compiler:2445:in `pbCompilePokemonData'

    Compiler:2424:in `each'

    Compiler:2424:in `pbCompilePokemonData'

    Compiler:2421:in `each'

    Compiler:2421:in `pbCompilePokemonData'

    Compiler:3971:in `pbCompileAllData'

    Compiler:4095




    WHAT IS THIS ERROR CODE SUPPOSED TO MEAN!?!?!?!?
     
    Back
    Top