• 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!
  • Our weekly protagonist poll is now up! Vote for your favorite Trading Card Game 2 protagonist in the poll by clicking here.
  • 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] Problem with TMs compatibility?

  • 107
    Posts
    4
    Years
    • Seen Apr 27, 2023
    How do I add compatible TMs like Tutor Moves in PBS from Essentials v19.1 to Essentials v18.1?

    I created, for example, a second charmander in PBS/pokemon.txt, but it is not compatible with these TMs because it has another name in its internal name. Different from what is in tm.txt

    I would like to migrate to v19.1 but I couldn't find anyone to help me with a problem converting saves from v18.1 to v19.1, so could anyone help me solve this problem with TMs compatibility?

    Sorry for my english
     
    So for version 19.1, new forms should be kept in the pokemonform.txt PBS. When you do new forms like this, it will automatically use the original Pokemon's stats/moves/sprite position etc. if you do not add it to the form's PBS. This way, if you miss something, like say Moves, it will default to Kantoian Charmander's moves. It also means you don't have to define everything. The Pokemon Essentials Wiki has a page on adding forms, as well as defining new Pokemon in the PBS.

    To add TM moves to a Pokemon's learnset, add it to that Pokemon's Tutor moves. If that move is a TM, the Pokemon will be able to learn it from the TM. I believe version 19.1 doesn't use/require tm.txt.
     
    So for version 19.1, new forms should be kept in the pokemonform.txt PBS. When you do new forms like this, it will automatically use the original Pokemon's stats/moves/sprite position etc. if you do not add it to the form's PBS. This way, if you miss something, like say Moves, it will default to Kantoian Charmander's moves. It also means you don't have to define everything. The Pokemon Essentials Wiki has a page on adding forms, as well as defining new Pokemon in the PBS.

    To add TM moves to a Pokemon's learnset, add it to that Pokemon's Tutor moves. If that move is a TM, the Pokemon will be able to learn it from the TM. I believe version 19.1 doesn't use/require tm.txt.

    Sorry for the English, I'm using a translator and my message may have been displayed incorrectly. That's exactly it, I love the fact that Essentials v19.1 no longer uses TM.txt. But I couldn't get the save file to be converted for me to migrate to this version.

    About Charmander, I could create a new shape and it would have solved this problem in Essentials v18.1.
    But the problem is, I couldn't create a different Mega Evolution for this form, how to create a mega for a different form? That would solve the problem too.
    I just created a different Charmander so I could Mega Evolution it to another one, because it has an outfit/skin, if I make a new, common shape, it turns into Mega without the graphic I want, the default.
     
    From what I understand, you are having trouble Mega evolving a specific form Charmander into a Mega, correct? To do so, you go to the pokemonforms.txt, then make a mega as you normally would. However, you need to add the line "UnmegaForm = x" where x is the form number of the Pokemon you are mega evolving.

    An example using Wormadam (which has 3 forms)
    Spoiler:


    Note that the first one doesn't have an Unmega Form listed, so it Mega Evolves from and returns to default Wormadam (Grass). The second one Mega evolves from and returns to Ground-Wormadam because it is sent to unmega to form 1. And the same for the third example, since Wormadam-Trash is form 2.

    If you want your new form to turn into the default mega, simply copy the default mega's form data, change the number to the next number in sequence, and put your form number into the Unmega Form line.

    For graphics, you have to make a new graphic for each mega form you want saved, and the name has to be in the format of "WORMADAM_3", using the respective Pokemon and form number. It has to be all caps, and it has to be an _ not a comma. If you want to use the same picture, you can copy the file and rename it the appropriate name for each form.
     
    I would like to migrate to v19.1 but I couldn't find anyone to help me with a problem converting saves from v18.1 to v19.1, so could anyone help me solve this problem with TMs compatibility?
    You cannot.
    To migrate a savefile from v18.1 to v19.1, you need to have the same classes stored in the v18 savefile, in the scripts of v19.
    Seeing the amount of changes from v18 to v19, it's most likely impossible.

    I have two solutions for your problem.
    • I assume you're still developing your game. Go to v19, and start a new game. You don't need your savegame. You have all the debug tools to get to the point where you're testing (you can manipulate switches, variables, teleport to a certain map, and all).
    • Don't migrate to v19. However, I did what you want actually, because I realised how painstaking it was to add a new form with similar but different moves. It's actually a few lines in the compiler pbCompilePokemonData / pbCompilePokemonForms. If you know about Ruby you will find out what to do. Or I can help you with that.
     
    Last edited:
    From what I understand, you are having trouble Mega evolving a specific form Charmander into a Mega, correct? To do so, you go to the pokemonforms.txt, then make a mega as you normally would. However, you need to add the line "UnmegaForm = x" where x is the form number of the Pokemon you are mega evolving.

    An example using Wormadam (which has 3 forms)
    Spoiler:


    Note that the first one doesn't have an Unmega Form listed, so it Mega Evolves from and returns to default Wormadam (Grass). The second one Mega evolves from and returns to Ground-Wormadam because it is sent to unmega to form 1. And the same for the third example, since Wormadam-Trash is form 2.

    If you want your new form to turn into the default mega, simply copy the default mega's form data, change the number to the next number in sequence, and put your form number into the Unmega Form line.

    For graphics, you have to make a new graphic for each mega form you want saved, and the name has to be in the format of "WORMADAM_3", using the respective Pokemon and form number. It has to be all caps, and it has to be an _ not a comma. If you want to use the same picture, you can copy the file and rename it the appropriate name for each form.

    I achieved!
    Just defining in pokemonform.txt was not enough, I had to define in the scripts something like the example of Slowbro that has Multiple forms.

    In Pokemon_MegaEvolution:
    MultipleForms.register(:CHARIZARD,{
    "getSpecificMegaForm" => proc { |pkmn|
    next 1 if (pkmn.form == 0 && pkmn.hasItem?(:CHARIZARDITEX))
    next
    },
    "getSpecificMegaForm" => proc { |pkmn|
    next 2 if (pkmn.form == 0 && pkmn.hasItem?(:CHARIZARDITEY))
    next
    },
    "getSpecificMegaForm" => proc { |pkmn|
    next 5 if (pkmn.form == 4 && pkmn.hasItem?(:CHARIZARDITEX))
    next
    },
    "getSpecificUnmegaForm" => proc { |pkmn|
    next 4 if pkmn.form == 5
    next
    }

    Thus, form 4 Mega evolves into form 5, and returns form 4 at the end of the battle! Thanks! This in Essentials v18.1, I don't know how it is in v19.1.
     
    You cannot.
    To migrate a savefile from v18.1 to v19.1, you need to have the same classes stored in the v18 savefile, in the scripts of v19.
    Seeing the amount of changes from v18 to v19, it's most likely impossible.

    I have two solutions for your problem.
    • I assume you're still developing your game. Go to v19, and start a new game. You don't need your savegame. You have all the debug tools to get to the point where you're testing (you can manipulate switches, variables, teleport to a certain map, and all).
    • Don't migrate to v19. However, I did what you want actually, because I realised how painstaking it was to add a new form with similar but different moves. It's actually a few lines in the compiler pbCompilePokemonData / pbCompilePokemonForms. If you know about Ruby you will find out what to do. Or I can help you with that.

    When I saw that save conversion I thought this was what would make it compatible, because I managed from v16 to v18 to upgrade saves because of several players in my project.
    Well, I defined several classes in Essentials v19.1 that required, I just defined them, I didn't put any content.
    When I converted a clean v18.1 save, the system worked perfectly!
    Well, if you want to take a look, if possible, I put the error that came after this.
    https://www.pokecommunity.com/threads/465167
     
    From what I understand, you are having trouble Mega evolving a specific form Charmander into a Mega, correct? To do so, you go to the pokemonforms.txt, then make a mega as you normally would. However, you need to add the line "UnmegaForm = x" where x is the form number of the Pokemon you are mega evolving.

    An example using Wormadam (which has 3 forms)
    Spoiler:


    Note that the first one doesn't have an Unmega Form listed, so it Mega Evolves from and returns to default Wormadam (Grass). The second one Mega evolves from and returns to Ground-Wormadam because it is sent to unmega to form 1. And the same for the third example, since Wormadam-Trash is form 2.

    If you want your new form to turn into the default mega, simply copy the default mega's form data, change the number to the next number in sequence, and put your form number into the Unmega Form line.

    For graphics, you have to make a new graphic for each mega form you want saved, and the name has to be in the format of "WORMADAM_3", using the respective Pokemon and form number. It has to be all caps, and it has to be an _ not a comma. If you want to use the same picture, you can copy the file and rename it the appropriate name for each form.

    I thought that Charmander for being a shape of a Charmander, would have compatibility with the TMs that Charmander learns, but I realized that no, in v18.1 even the shapes must be defined in TM.TXT, sad, St. Cooler, you Would you know how to make it more compatible? I tried and failed by script
     
    I thought that Charmander for being a shape of a Charmander, would have compatibility with the TMs that Charmander learns, but I realized that no, in v18.1 even the shapes must be defined in TM.TXT, sad, St. Cooler, you Would you know how to make it more compatible? I tried and failed by script

    Got it, I used refactoring. I opened Microsoft Visual Studio and managed to change all the instances in TM.txt that had Charmander, I selected Charmander and added the form, CHARMANDER,CHARMANDER_4, so it changed all the movements that charmander learns at once
     
    Back
    Top