• 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.
Innate Abilities (Yet Another "All Abilities Mutation" mod)

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

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
Whenever I enter a battle I get this error

[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.9]

Script error in event 5 (coords 24,65), map 15 (Route 2)
Exception: NoMethodError
Message: undefined method `first' for 8:Integer

***Full script:
TrainerBattle.start(:CAMPER, "Adam")
Backtrace:
[Innate Abilities] AAM Battler.rb:84:in `block in pbInitPokemon'
[Innate Abilities] AAM Battler.rb:84:in `each'
[Innate Abilities] AAM Battler.rb:84:in `find'
[Innate Abilities] AAM Battler.rb:84:in `pbInitPokemon'
Battler_Initialize:61:in `pbInitialize'
Battle_StartAndEnd:117:in `pbCreateBattler'
Battle_StartAndEnd:153:in `block (3 levels) in pbSetUpSides'
Battle:412:in `block in eachInTeam'
Battle:412:in `each'
Battle:412:in
In the mean time, just to be sure, please make sure to recompile and start a new game while trying this update, as that seems to do the trick with most of my friends trying the code
 

CoderFreddy

Novice
Member
Joined
Feb 8, 2023
Posts
47
In the mean time, just to be sure, please make sure to recompile and start a new game while trying this update, as that seems to do the trick with most of my friends trying the code
I have recompiled and started a new game, but the problem persisted
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
LEVELS_TO_UNLOCK = [8, 32, 50]
That's your culprit. Try it like this:
[[8, 32, 50]]

Since the script was modified to search for the first array inside of an array, not having the double [] leaves it serching for the array inside of the level one.
If you don't intend to use the specific levels to unlock, you can leave it like this: [[8, 32, 50]].
Otherwise I suggest you to write it like this for more clarity:
LEVELS_TO_UNLOCK = [
[8, 32, 50]
]

I realized I didn't actually updated that file in the .rar. My bad, I'm going to update it inmediately, but that's basically why it gives that error.
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
Sonicover updated Innate Abilities (Yet Another "All Abilities Mutation" mod) with a new update entry:

I messed up

I've realized the .rar file didn't contained the new AAM Settings updated, so it caused some errors. Whoops.
* Re uploaded the .rar to include the proper way LEVELS_TO_UNLOCK it's handled in AAM Settings and avoid errors. If you donwloaded the v.1.3.1 that I've posted a couple of days back:
- Either re-download this version and change the AAM Settings file to this new one:
- Or simply, if your LEVELS_TO_UNLOCK setting looks like this : "LEVELS_TO_UNLOCK = [1, 15, 20]", add a new pair...

Read the rest of this update entry...
 

Bguy7

Pokémon Sol Version Creator
Member
Joined
Jul 1, 2024
Posts
21
First off, wanted to thank you for making the plugin. Having two abilities at once is a feature I've wanted for my game, but I've never been able to even begin to figure how I would make it work on my own.

First of all, thanks!
And second, yeah, sadly the EBDX does change the way that the ability splash works. I could try to give a look into how the EBDX port works but being an unofficial update I can't promise anything

Anyways, I'm having this same problem where the ability splash shows the name of the regular ability when the innate ability activates, but I am not using EBDX or anything else I can think of that affects ability splashes. The specific instance is a Geodude with Sturdy as an innate and Rock Head as a regular ability. It shows Rock Head as activating when the effect of Sturdy prevents it from fainting. I also replicated this with another Pokémon that also had Sturdy as an innate and Iron Fist as its regular ability.
 
Last edited:

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
First off, wanted to thank you for making the plugin. Having two abilities at once is a feature I've wanted for my game, but I've never been able to even begin to figure how I would make it work on my own.



Anyways, I'm having this same problem where the ability splash shows the name of the regular ability when the innate ability activates, but I am not using EBDX or anything else I can think of that affects ability splashes. The specific instance is a Geodude with Sturdy as an innate and Rock Head as a regular ability. It shows Rock Head as activating when the effect of Sturdy prevents it from fainting. I also replicated this with another Pokémon that also had Sturdy as an innate and Iron Fist as its regular ability.
Ah yes, that's a problem both the base plugins and this mod have with hard-coded abilities. Abilities that use handlers are defined in the plugin and have their name stored and recorded for display. Abilities that are hard-coded and don't have any handler (Like Sturdy or Ice face) don't have this.

I'm still working on a fix for these but it's being a bit of a mess. I'll update as soon as I fix it
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
First off, wanted to thank you for making the plugin. Having two abilities at once is a feature I've wanted for my game, but I've never been able to even begin to figure how I would make it work on my own.



Anyways, I'm having this same problem where the ability splash shows the name of the regular ability when the innate ability activates, but I am not using EBDX or anything else I can think of that affects ability splashes. The specific instance is a Geodude with Sturdy as an innate and Rock Head as a regular ability. It shows Rock Head as activating when the effect of Sturdy prevents it from fainting. I also replicated this with another Pokémon that also had Sturdy as an innate and Iron Fist as its regular ability.
In the mean time one thing you can do to solve this is hard-storing the name of that ability in $aamName just before the abilitySplash it's called. For example for Sturdy, go into 002_Move_Usage and find this:
Ruby:
Expand Collapse Copy
elsif target.damageState.sturdy
      @battle.pbShowAbilitySplash(target)
      if Battle::Scene::USE_ABILITY_SPLASH
        @battle.pbDisplay(_INTL("{1} endured the hit!", target.pbThis))
      else
        @battle.pbDisplay(_INTL("{1} hung on with Sturdy!", target.pbThis))
      end
      @battle.pbHideAbilitySplash(target)

Simply add $aamName = GameData::Ability.get(:STURDY).name Before the pbShowAbilitySplash

Fixed Sturdy, and only Sturdy's display:
Expand Collapse Copy
elsif target.damageState.sturdy
      $aamName = GameData::Ability.get(:STURDY).name
      @battle.pbShowAbilitySplash(target)
      if Battle::Scene::USE_ABILITY_SPLASH
        @battle.pbDisplay(_INTL("{1} endured the hit!", target.pbThis))
      else
        @battle.pbDisplay(_INTL("{1} hung on with Sturdy!", target.pbThis))
      end
      @battle.pbHideAbilitySplash(target)

You need to do this for every ability that does not have a handler and it's displayed.
Thats what I was reffering in my previous comment. The handlers that AAM Abilities add do this automatically. For hard-coded ones you need to go each and store the name. I'm working on a way to do this automatically but I fear it might not be as easy, specially for a plug and play plugin. Still, for now, that helps

This method should work for all cases where you call the abilitySplash but the incorrect ability gets displayed. It's very manual, but that's what I'm trying to automate
 

Penelope

Trainer
Member
Joined
Sep 15, 2023
Posts
86
In the mean time one thing you can do to solve this is hard-storing the name of that ability in $aamName just before the abilitySplash it's called. For example for Sturdy, go into 002_Move_Usage and find this:
Ruby:
Expand Collapse Copy
elsif target.damageState.sturdy
      @battle.pbShowAbilitySplash(target)
      if Battle::Scene::USE_ABILITY_SPLASH
        @battle.pbDisplay(_INTL("{1} endured the hit!", target.pbThis))
      else
        @battle.pbDisplay(_INTL("{1} hung on with Sturdy!", target.pbThis))
      end
      @battle.pbHideAbilitySplash(target)

Simply add $aamName = GameData::Ability.get(:STURDY).name Before the pbShowAbilitySplash

Fixed Sturdy, and only Sturdy's display's display:
Expand Collapse Copy
elsif target.damageState.sturdy
      $aamName = GameData::Ability.get(:STURDY).name
      @battle.pbShowAbilitySplash(target)
      if Battle::Scene::USE_ABILITY_SPLASH
        @battle.pbDisplay(_INTL("{1} endured the hit!", target.pbThis))
      else
        @battle.pbDisplay(_INTL("{1} hung on with Sturdy!", target.pbThis))
      end
      @battle.pbHideAbilitySplash(target)

You need to do this for every ability that does not have a handler and it's displayed.
Thats what I was reffering in my previous comment. The handlers that AAM Abilities add do this automatically. For hard-coded ones you need to go each and store the name. I'm working on a way to do this automatically but I fear it might not be as easy, specially for a plug and play plugin. Still, for now, that helps

This method should work for all cases where you call the abilitySplash but the incorrect ability gets displayed. It's very manual, but that's what I'm trying to automate
Technically you do not need to.
The abilities that checked through hasActiveAbility? already have updated $aamName.(or check another multi-ability plugin here)
It doesn't display Sturdy means that $aamName has been changed again later.
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
Technically you do not need to.
The abilities that checked through hasActiveAbility? already have updated $aamName.(or check another multi-ability plugin here)
It doesn't display Sturdy means that $aamName has been changed again later.
It does change it, debugging the ability shows that the name is correctly stored but somewhere in between that and the splash it gets replaced by the first name in the array.
I need to check the whole process for this
 

Bguy7

Pokémon Sol Version Creator
Member
Joined
Jul 1, 2024
Posts
21
Thanks for the tip on the last problem. Another thing that's come up is that it seems the plugin is not compatible with Pokémon that have no abilities, even though base Pokémon Essentials does allow for a Pokémon to have no ability. I do have some special cases of non-obtainable Pokémon that have no abilities.

Technically, I can fix this by making a filler ability called "None" that has no effect, but that is a little sloppy. Not a big deal, but I figured I'd bring it up.
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
Thanks for the tip on the last problem. Another thing that's come up is that it seems the plugin is not compatible with Pokémon that have no abilities, even though base Pokémon Essentials does allow for a Pokémon to have no ability. I do have some special cases of non-obtainable Pokémon that have no abilities.

Technically, I can fix this by making a filler ability called "None" that has no effect, but that is a little sloppy. Not a big deal, but I figured I'd bring it up.
Lol, good catch. The idea of pokemon having no ability at all never crossed my mind. I'll update the plugin later for such cases.

For the incorrect display of the name I'm still trying to figure out the reason. I'm sorry it's taking so long
 

Thomwell

Trainer
Member
Joined
Mar 8, 2024
Posts
63
Lol, good catch. The idea of pokemon having no ability at all never crossed my mind. I'll update the plugin later for such cases.

For the incorrect display of the name I'm still trying to figure out the reason. I'm sorry it's taking so long
Hello, I really like your plugin and it has been used in the game, but it seems to be incompatible with the latest version of Deluxe Battle Kit. What should I do? Looking forward to your reply and resolution. Thank you very much.

[Pokémon Essentials version 21.1]
[v21.1Hotfixes 1.0.9]

Exception: ArgumentError
Message: wrong number of arguments (given 1, expected 0)

Backtrace:
[Innate Abilities] Innate Abilities - Species.rb:274:in `shows_shadow?'
[[DBK] Animated Pokémon System] [006] Battler Sprites.rb:329:in`pbChangePokemon'
Scene_Initialize:86:in `block in pblnitSprites'
Scene Initialize:84:in`each'
Scene_Initialize:84:in`each_with index'
Scene_Initialize:84:in`pblnitSprites'
BugContestBattle:8:in`pblnitSprites'
[Deluxe Battle Kit] [000] Midbattle Animations.rb:10:in`pblnitSprites'
[[DBK] Wonder Launcher] [008] Battle Scene.rb:10:in`pblnitSprites'
[[DBK] Enhanced Battle UI] [000] Main.rb:54:in`pblnitSprites'
 

Lucidious89

Champion
Member
Joined
Nov 12, 2020
Posts
1,222
Hello, I really like your plugin and it has been used in the game, but it seems to be incompatible with the latest version of Deluxe Battle Kit. What should I do? Looking forward to your reply and resolution. Thank you very much.

[Pokémon Essentials version 21.1]
[v21.1Hotfixes 1.0.9]

Exception: ArgumentError
Message: wrong number of arguments (given 1, expected 0)

Backtrace:
[Innate Abilities] Innate Abilities - Species.rb:274:in `shows_shadow?'
[[DBK] Animated Pokémon System] [006] Battler Sprites.rb:329:in`pbChangePokemon'
Scene_Initialize:86:in `block in pblnitSprites'
Scene Initialize:84:in`each'
Scene_Initialize:84:in`each_with index'
Scene_Initialize:84:in`pblnitSprites'
BugContestBattle:8:in`pblnitSprites'
[Deluxe Battle Kit] [000] Midbattle Animations.rb:10:in`pblnitSprites'
[[DBK] Wonder Launcher] [008] Battle Scene.rb:10:in`pblnitSprites'
[[DBK] Enhanced Battle UI] [000] Main.rb:54:in`pblnitSprites'
Like I said in my thread, the issue is that this plugin overwrites the entirety of the Species class, even for things that this plugin doesn't otherwise need to edit. So there's going to be conflicts with other plugins that edit this class.

For this specific error, you just need to delete the shows_shadow? method in this plugin.
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
Hello, I really like your plugin and it has been used in the game, but it seems to be incompatible with the latest version of Deluxe Battle Kit. What should I do? Looking forward to your reply and resolution. Thank you very much.

[Pokémon Essentials version 21.1]
[v21.1Hotfixes 1.0.9]

Exception: ArgumentError
Message: wrong number of arguments (given 1, expected 0)

Backtrace:
[Innate Abilities] Innate Abilities - Species.rb:274:in `shows_shadow?'
[[DBK] Animated Pokémon System] [006] Battler Sprites.rb:329:in`pbChangePokemon'
Scene_Initialize:86:in `block in pblnitSprites'
Scene Initialize:84:in`each'
Scene_Initialize:84:in`each_with index'
Scene_Initialize:84:in`pblnitSprites'
BugContestBattle:8:in`pblnitSprites'
[Deluxe Battle Kit] [000] Midbattle Animations.rb:10:in`pblnitSprites'
[[DBK] Wonder Launcher] [008] Battle Scene.rb:10:in`pblnitSprites'
[[DBK] Enhanced Battle UI] [000] Main.rb:54:in`pblnitSprites'
Ah yes, like I said in the main page I've made this plugin with ductape and prays lol. I've already solved this and the issue with "No ability" that Bguy7 reported but I'm holding the update because I'm reworking the class edits to avoid compatibility issues. Those are remnants of when I was too afraid to write a code for myself.

Also if you are using Dynamax Plugin this plugin makes that no pokemon can Gigantamax. It's a mess.
If all goes right ill update it later or tomorrow night
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
Sonicover updated Innate Abilities (Yet Another "All Abilities Mutation" mod) with a new update entry:

"Innate Abilities - Species"file reworked and added support for pokemon with 0 abilities and innates

BE SURE TO RECOMPILE AND START A NEW SAVE FILE AFTER THIS UPDATE!

Finally fixed the "Innate Abilities - Species" file to only tackle stuff related to the "Innate Abilities", and to avoid any major compatibility issues with other plugins that modify the pokemon's Species file (Mainly Lucidious ones).

And also, suggested by user Bguy7, added support for pokemon that have 0 abilities and innates, by giving them a temporal "No ability" ability, which is...

Read the rest of this update entry...
 

Tsoukinator

Novice
Member
Joined
Mar 12, 2024
Posts
30
Love what this plugin allows me to do.
I'm one step achieving one unique aspect for my project.

Do you think it's possible to add an extra feature that when the pokemon is to choose their innate abilities at random?

E.g. If I give a Pokemon 6 possible innates, but only a maximum of 4. Upon capture, the pokemon randomly assigns itself 4 abilities, and thus, never gets the other 2.
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
Im glad this
Love what this plugin allows me to do.
I'm one step achieving one unique aspect for my project.

Do you think it's possible to add an extra feature that when the pokemon is to choose their innate abilities at random?

E.g. If I give a Pokemon 6 possible innates, but only a maximum of 4. Upon capture, the pokemon randomly assigns itself 4 abilities, and thus, never gets the other
I'm glad this is helping you with your project!

As for the suggestion, I can't promise much but I'll give it a try. It shouldn't be difficult to implement.
For reference, how is this variable value going to work?
I'll assume the value it's going to be global for all pokemon, unless you have something more specific in mind that I coukd try and add
 
Back
Top