• The Eevee Expo Game Jam #10 has concluded, congratulations to all participants! Now it's time for the judges to play through the games, and you can play along to vote who deserves the community choice spotlight.
    You can check out the submitted games here!
    Play through the games and provide some feedback to the devs while you're at it!
  • Hi, Guest!
    Some images might be missing as we move away from using embedded images, sorry for the mess!
    From now on, you'll be required to use a third party to host images. You can learn how to add images here, and if your thread is missing images you can request them here.
    Do not use Discord to host any images you post, these links expire quickly!
Innate Abilities (Yet Another "All Abilities Mutation" mod)

Resource Innate Abilities (Yet Another "All Abilities Mutation" mod) 1.5.2

Thomwell

Trainer
Member
Joined
Mar 8, 2024
Posts
63
Does this random feature have a switch? I don't like random features, I want to turn them off. How do I operate? Can you add a level unlock function, such as unlocking the first feature at a certain level and unlocking the second feature at the next level. It can also be manually unlocked, for example, after completing a certain task, the unlocking function can be activated. Wow, I'm really crazy, imagining things.
 

Tsoukinator

Novice
Member
Joined
Mar 12, 2024
Posts
30
Does this random feature have a switch? I don't like random features, I want to turn them off. How do I operate? Can you add a level unlock function, such as unlocking the first feature at a certain level and unlocking the second feature at the next level. It can also be manually unlocked, for example, after completing a certain task, the unlocking function can be activated. Wow, I'm really crazy, imagining things.
Hey Thomwell, check the documentation, Sonicover has all these features implemented, and your questions covered.

Now I'll take a bit of a rest of adding new features because I said I was going to release the first beta of my project this 19th and I've been too bussy with this script lol.

I'll still take time to fix any bugs and errors of course, but as for new stuff first let me release the Beta that I promised to my friends.

The suggestion box is still open tho! If you have any fancy ideas I'll try to get to them ASAP
Thanks Sonic, looking forward to giving the new version a try.

Thanks for your hard work - definitely didn't expect how quick the turnaround would be when I first posted, though your promptness has been greatly appreciated.

Take a break from helping out others, and it's time to help out yourself ~ all the best with your project.
 

Thomwell

Trainer
Member
Joined
Mar 8, 2024
Posts
63
Hey Thomwell, check the documentation, Sonicover has all these features implemented, and your questions covered.


Thanks Sonic, looking forward to giving the new version a try.

Thanks for your hard work - definitely didn't expect how quick the turnaround would be when I first posted, though your promptness has been greatly appreciated.

Take a break from helping out others, and it's time to help out yourself ~ all the best with your project.
My goodness, I'm too careless. I will study how to operate it well. Thank you for your reply!
 

Thomwell

Trainer
Member
Joined
Mar 8, 2024
Posts
63
Hello, I have a small question that I would like to inquire about. When I set INNATePrGRESSVNet=true in AAM Settings, cannot NPC's Pok é mon use Innates? If so, would it be unbalanced if the player's Pok é mon were strengthened while the NPC Pok é mon were weakened significantly?
 

Thomwell

Trainer
Member
Joined
Mar 8, 2024
Posts
63
Hello, I have a small question that I would like to inquire about. When I set INNATePrGRESSVNet=true in AAM Settings, cannot NPC's Pok é mon use Innates? If so, would it be unbalanced if the player's Pok é mon were strengthened while the NPC Pok é mon were weakened significantly?
INNATE_PROGRESS_WITH_VARIABLE = true
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
112
Hello, I have a small question that I would like to inquire about. When I set INNATePrGRESSVNet=true in AAM Settings, cannot NPC's Pok é mon use Innates? If so, would it be unbalanced if the player's Pok é mon were strengthened while the NPC Pok é mon were weakened significantly?
When you set any of the progress innate settings they affects all pokemons globally, so no pokemon can have advantage of innates over other, unless you are using the innate progress with level and specifically set a pokemon to have its innates earlier.

With the variable that's no problem. All of the wild and boc trainer pokemon will be as limited as the player's. Just remember to adjust the variable to the amount of innates you want active globally
 

Bguy7

Pokémon Sol Version Creator
Member
Joined
Jul 1, 2024
Posts
19
Hope I'm not bothering you, but while I was working with this plugin today, it occurred to me that if Innate Abilities aren't always the same for each individual in a species if you're using the random Innate feature, then you're going to need some way of controlling the Innates that an opponent trainer's Pokémon has. Both to give opponents an extra layer of strategy, but also to make sure that, for example, a rival's Pokémon doesn't have one Innate in the first battle and a different one in the second and so on.

I know you said you wanted to take a break from this to work on something else, and I certainly don't need this feature in the immediate future, so feel free to take your time (assuming that this is even something you want to work on). I just wanted to put it out there. Thanks.
 

leo_ranger

Keeper of Secrets
Member
Joined
Nov 16, 2022
Posts
11
I know someone brought it up before, but I was wondering if anyone has fiddled with the concept of Innate Abilites changing after evolution.
I've tried a little to see if i could do patch work something in to place but had no successwith my skills 😅
 

Tsoukinator

Novice
Member
Joined
Mar 12, 2024
Posts
30
I know someone brought it up before, but I was wondering if anyone has fiddled with the concept of Innate Abilites changing after evolution.
I've tried a little to see if i could do patch work something in to place but had no successwith my skills 😅
Have you tried giving the evolution form a different set of innate abilities to the pre-evolved form? Or are you suggesting that innates are reshuffled from the Pokemon's pool upon evolution?
 

leo_ranger

Keeper of Secrets
Member
Joined
Nov 16, 2022
Posts
11
Have you tried giving the evolution form a different set of innate abilities to the pre-evolved form? Or are you suggesting that innates are reshuffled from the Pokemon's pool upon evolution?
I have tried giving the evolution form a different set of innate abilities, however it retains the pre-evolved form's innate abilities. so in some cases it's retaining innate abilities that don't match up to the newly evolved form.
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
112
I have tried giving the evolution form a different set of innate abilities, however it retains the pre-evolved form's innate abilities. so in some cases it's retaining innate abilities that don't match up to the newly evolved form.
Ah my bad, once the pokemon has its innates set it stores them in a variable. I forgot to put the shuffling in the evolution process lol.
I'll fix it when I get home
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
112
Hope I'm not bothering you, but while I was working with this plugin today, it occurred to me that if Innate Abilities aren't always the same for each individual in a species if you're using the random Innate feature, then you're going to need some way of controlling the Innates that an opponent trainer's Pokémon has. Both to give opponents an extra layer of strategy, but also to make sure that, for example, a rival's Pokémon doesn't have one Innate in the first battle and a different one in the second and so on.

I know you said you wanted to take a break from this to work on something else, and I certainly don't need this feature in the immediate future, so feel free to take your time (assuming that this is even something you want to work on). I just wanted to put it out there. Thanks.
That's actually a feature I'm trying to implement, in doing so I'm also trying to fix the debug innate menu, it's just a bit of a headache
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
112
I said I was going to focus on my project but here we are. This update might take more than anticipated.

So far I've been able to fix and add:

  • The problem with the pokemon's innates not being correctly updated after evolving
  • The debug menu, not only no longer crashes, now you can define any ability as innate straight from there. Not from the battle one, no, that still requires some set up
  • You can use a property called Innates while creating/editing a pokemon to modify it's set of innates mid game. This ones can't be randomized and will persist unless you shuffle the innates or evolve the pokemon
  • You can also put this property on Trainers in their PBS to define specific innates for their pokemon, the same way you can give them any ability, move, etc etc. Again, this innates don't shuffle on the randomizer
  • When a Pokemon changes form in combat, it rolls for a new set of innates but keeps the old ones in the back for when it reverts back. So it keeps consistent. That being said, every time it transforms if it can randomize, it will
  • Also a bit of a QoL, if your pokemon has less innates than the maximum while using the randomizer, the randomizer won't bother to randomize them. That way if you are using any of the progress settings you can keep control of which get unlocked at what level. If you are using more... good luck.

What is left:
  • Fix the pokemon's not getting new Innates after changing forms in combat. They do get new ones they just dont update them untill you switch them out
  • Also I'm reworking the structure of the whole plugin, to make room for more customization. Basically everything was glued with bubble gum so hopefully it all works better now
 
Last edited:

Tsoukinator

Novice
Member
Joined
Mar 12, 2024
Posts
30
Sonicover, your dedication is admirable - as much as I'd love to see new changes and improvements, ensure you don't neglect your own goals outside of this plugin!

An idea to 'entertain' (or add to the backlog in the distant future) - I've been toying in my head with the idea of having an "Innate Ability Set".

Before I get into it ~ there is no hurry, or rush - my own project doesn't need it, it's just a cool concept to consider.

Let's take the assumption that I can create 'sets' of Innates. E.g.
  • Set 1 = ['LIMBER','OWNTEMPO','SPEEDBOOST','TRUANT']
  • Set 2 = ['WATERABSORB','VOLTABSORB','INTIMIDATE','LIMBER']
Lets set max innates per pokemon to 3, and turn on the randomiser.

We encounter Mr Machop down the road.
Upon encountering him, the game rolls a random chance to assign a set of innates to him.
He is assigned set 2.

After being assigned set 2, the innate randomiser starts as per normal.
It assigns Machop 'LIMBER', 'WATERABSORB' and 'INTIMIDATE' (this guy is a scary Machop indeed).

--
A more contained approach to make this work, would be setting up an additional PBS.txt file - perhaps called "innate_sets.txt" - where similar to assigning "INNATES" to a pokemon, we'd define the INNATE abilities, for an INNATE set (and then assign that INNATE set to a Pokemon).

Curious to your thoughts on this - again, not something I am desperate for, just food for thought for some quirky functionality.
 
Last edited:

Penelope

Trainer
Member
Joined
Sep 15, 2023
Posts
82
Sonicover, your dedication is admirable - as much as I'd love to see new changes and improvements, ensure you don't neglect your own goals outside of this plugin!

An idea to 'entertain' (or add to the backlog in the distant future) - I've been toying in my head with the idea of having an "Innate Ability Set".

Before I get into it ~ there is no hurry, or rush - my own project doesn't need it, it's just a cool concept to consider.

Let's take the assumption that I can create 'sets' of Innates. E.g.
  • Set 1 = ['LIMBER','OWNTEMPO','SPEEDBOOST','TRUANT']
  • Set 2 = ['WATERABSORB','VOLTABSORB','INTIMIDATE','LIMBER']
Lets set max innates per pokemon to 3, and turn on the randomiser.

We encounter Mr Machop down the road.
Upon encountering him, the game rolls a random chance to assign a set of innates to him.
He is assigned set 2.

After being assigned set 2, the innate randomiser starts as per normal.
It assigns Machop 'LIMBER', 'WATERABSORB' and 'INTIMIDATE' (this guy is a scary Machop indeed).

--
A more contained approach to make this work, would be setting up an additional PBS.txt file - perhaps called "innate_sets.txt" - where similar to assigning "INNATES" to a pokemon, we'd define the INNATE abilities, for an INNATE set (and then assign that INNATE set to a Pokemon).

Curious to your thoughts on this - again, not something I am desperate for, just food for thought for some quirky functionality.
i like this "set" concept, but i do not like the randomization thing.
ill apply this concept in my own game, thank you sir.
thses sets could easily define in pokemon.txt, or use a hash to record all sets of every mon.
 

Tsoukinator

Novice
Member
Joined
Mar 12, 2024
Posts
30
i like this "set" concept, but i do not like the randomization thing.
ill apply this concept in my own game, thank you sir.
thses sets could easily define in pokemon.txt, or use a hash to record all sets of every mon.
Randomisation is an option currently available in the plugin.
My assumption is a full implementation of this approach would be based off how it currently works, allowing you to turn on/off the randomisation as you please.
 

Penelope

Trainer
Member
Joined
Sep 15, 2023
Posts
82
Randomisation is an option currently available in the plugin.
My assumption is a full implementation of this approach would be based off how it currently works, allowing you to turn on/off the randomisation as you please.
Randomization messes up everything, when things become complex it is a total headache.
The best way to achieve the set concept is to rewrite the current innate system since everything is saved in "set".
This way could simplify way more codes and make uninstall this plugin possible.
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
112
Randomization messes up everything, when things become complex it is a total headache.
The best way to achieve the set concept is to rewrite the current innate system since everything is saved in "set".
This way could simplify way more codes and make uninstall this plugin possible.
Even then randomization is not much of a problem. The problem is when you want to controll it and keep it consistent once it has been randomized once.

Sonicover, your dedication is admirable - as much as I'd love to see new changes and improvements, ensure you don't neglect your own goals outside of this plugin!

An idea to 'entertain' (or add to the backlog in the distant future) - I've been toying in my head with the idea of having an "Innate Ability Set".

Before I get into it ~ there is no hurry, or rush - my own project doesn't need it, it's just a cool concept to consider.

Let's take the assumption that I can create 'sets' of Innates. E.g.
  • Set 1 = ['LIMBER','OWNTEMPO','SPEEDBOOST','TRUANT']
  • Set 2 = ['WATERABSORB','VOLTABSORB','INTIMIDATE','LIMBER']
Lets set max innates per pokemon to 3, and turn on the randomiser.

We encounter Mr Machop down the road.
Upon encountering him, the game rolls a random chance to assign a set of innates to him.
He is assigned set 2.

After being assigned set 2, the innate randomiser starts as per normal.
It assigns Machop 'LIMBER', 'WATERABSORB' and 'INTIMIDATE' (this guy is a scary Machop indeed).

--
A more contained approach to make this work, would be setting up an additional PBS.txt file - perhaps called "innate_sets.txt" - where similar to assigning "INNATES" to a pokemon, we'd define the INNATE abilities, for an INNATE set (and then assign that INNATE set to a Pokemon).

Curious to your thoughts on this - again, not something I am desperate for, just food for thought for some quirky functionality.
As for your idea, honestly separating the innate property in its own pbs file its something I actually want to do because other plugins that mod ir reset the innates all the time and I hate it.

Thing is, I don't know how to do it lol. It shouldn't be too difficult is just I have no clue where to start. But once I get it done I could try an add your suggestion.
However, in my opinion that's a lot, A LOT of innates. Perhaps a bit too much but you do you, just, good luck on the documentation of each pokemon with that.

What's funny is that my project uses the most basic version, no progress and no randomizer so it really has deviated of the original intend, but in a good way. It also let me add features useful for debug and clean the mess that it was the original code so it's a win win. I'll probably update all of this in a couple of days
 

Tsoukinator

Novice
Member
Joined
Mar 12, 2024
Posts
30
Even then randomization is not much of a problem. The problem is when you want to controll it and keep it consistent once it has been randomized once.


As for your idea, honestly separating the innate property in its own pbs file its something I actually want to do because other plugins that mod ir reset the innates all the time and I hate it.

Thing is, I don't know how to do it lol. It shouldn't be too difficult is just I have no clue where to start. But once I get it done I could try an add your suggestion.
However, in my opinion that's a lot, A LOT of innates. Perhaps a bit too much but you do you, just, good luck on the documentation of each pokemon with that.

What's funny is that my project uses the most basic version, no progress and no randomizer so it really has deviated of the original intend, but in a good way. It also let me add features useful for debug and clean the mess that it was the original code so it's a win win. I'll probably update all of this in a couple of days
You're right to say it's a lot of innates! It's more than I require too, though felt it could be great as a future idea.

For my project, I've already written myself a script that populates the same set of innates for 99% of Pokemon - otherwise I'd probably have gone insane by now.

It wouldn't take much for me to change my script to instead populate a set of innate groups names, and assign each one to all my Pokemon.
Allows me to populate each group separately, and then encounter a Pokemon with their own unique ability set (think of if you were to assign an innate set as 'Cleric' and that Pokemon having all healing based abilities/bonuses).

As always, I love your work. The first version you released with the randomiser does basically all I need, and I'm happy to continue using it as is.
 
Last edited:

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
112
Sorry for the radio silence everyone. At long last, after suffering like a maniac with this, I've finally been able to both implement the innate sets
An idea to 'entertain' (or add to the backlog in the distant future) - I've been toying in my head with the idea of having an "Innate Ability Set".

Before I get into it ~ there is no hurry, or rush - my own project doesn't need it, it's just a cool concept to consider.

Let's take the assumption that I can create 'sets' of Innates. E.g.
  • Set 1 = ['LIMBER','OWNTEMPO','SPEEDBOOST','TRUANT']
  • Set 2 = ['WATERABSORB','VOLTABSORB','INTIMIDATE','LIMBER']
and the sepparated pbs file innate_sets.txt to handle all of the Innate ability stuff per pokemon

Here's a snippet in how it's structured:

Innate_sets.txt:
Expand Collapse Copy
[ARIADOS]
Innates = SPEEDBOOST,GRASSYSURGE,TORRENT
#----------------------------------------
[AGGRON]
Innates = FILTER,CLEARBODY
#----------------------------------------
[AGGRON_1] #<- Mega Aggron
Innates = STURDY,WHITESMOKE
#----------------------------------------
[METAGROSS]
Innates1 = SANDVEIL,STURDY,CLEARBODY
Innates2 = FILTER,CLEARBODY
Innates3 = PLUS,MINUS,ELECTRICSURGE

First example is basically the main function, you can define a Pokemon's ID and then a line for its innates. The structure is basically the same as it was in the Pokemon.txt

Second and third examples are the same, but to show how do you handle different forms. In this example, base Aggron has Filter and Clear body as Innates, and Mega Aggron Sturdy and White smoke. In order to modify different forms, just use the ID of the pokemon + it's form number. Basically in the same way ass you would with adding a pokemon

And finally, you can give a Pokemon multiple innate sets with the use of a number right at the end and then the corresponding lines. Each set has an equal chance of being picked, so for pokemon with 2 sets its a 50/50, for 4 its 25/25/25/25, and so on and so forth.

Needless to say, this is all entirely optional per pokemon, so even if there's nothing in here your game shouldn't crash... although at that point why install anything lol.

The update should be up tomorrow at night, since I have to change all of the main documentation or at least check it to take all of this into consideration.

And yes, since the sets load before the randomizer and the progress settings, you can randomize innates in each set and give them limits either by the variable or level.
 
Back
Top