• 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.
  • Eevee Expo's webhost has been having technical issues since Nov. 20th and you might be unable to connect to our site. Staff are also facing issues connecting, so please send a DM to Cat on-site or through Discord directly for faster service!
Innate Abilities (Yet Another "All Abilities Mutation" mod)

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

Bguy7

Pokémon Sol Version Creator
Member
Joined
Jul 1, 2024
Posts
32
Since you're trying to make this plugin compatible with the Gen IX Plugin, I wanted to bring up a compatibility issue I came across. It seems that both plugins are using their own version of "ability_triggered?" that do not align in usage.

Here's the version found in the AAM Battler script:

Ruby:
Expand Collapse Copy
  def ability_triggered?(check_ability) # honestly, this method is not necessary
    return @battle.pbAbilityTriggered?(self, check_ability)
  end

And here's the version in the Gen IX plugin's Battle_Battler script:

Ruby:
Expand Collapse Copy
  def ability_triggered?
    return @battle.pbAbilityTriggered?(self)
  end

And, for reference, here's the Gen IX plugin using it in Supersweet Syrup, which is what gave me an error when a Pokémon with the ability appeared:

Ruby:
Expand Collapse Copy
Battle::AbilityEffects::OnSwitchIn.add(:SUPERSWEETSYRUP,
  proc { |ability, battler, battle, switch_in|
    next if battler.ability_triggered?
    battle.pbShowAbilitySplash(battler)
    battle.pbDisplay(_INTL("A supersweet aroma is wafting from the syrup covering {1}!", battler.pbThis))
    battle.allOtherSideBattlers(battler.index).each do |b|
      next if !b.near?(battler) || b.fainted?
      if b.itemActive? && !b.hasActiveAbility?(:CONTRARY) && b.effects[PBEffects::Substitute] == 0
        next if Battle::ItemEffects.triggerStatLossImmunity(b.item, b, :EVASION, battle, true)
      end
      b.pbLowerStatStageByAbility(:EVASION, 1, battler, false)
    end
    battle.pbHideAbilitySplash(battler)
    battle.pbSetAbilityTrigger(battler)
  }
)

Now, the note attached to the AAM Battler usage says that the method is not necessary, and I am unable to find any instance of the plugin as a whole using the method, so I'm tempted to just delete it to fix the contradiction, but I'm unsure if there's any kind of interplay that I'm not understanding, so I wanted to bring it up here.
 

Penelope

Trainer
Member
Joined
Sep 15, 2023
Posts
94
Since you're trying to make this plugin compatible with the Gen IX Plugin, I wanted to bring up a compatibility issue I came across. It seems that both plugins are using their own version of "ability_triggered?" that do not align in usage.

Here's the version found in the AAM Battler script:

Ruby:
Expand Collapse Copy
  def ability_triggered?(check_ability) # honestly, this method is not necessary
    return @battle.pbAbilityTriggered?(self, check_ability)
  end

And here's the version in the Gen IX plugin's Battle_Battler script:

Ruby:
Expand Collapse Copy
  def ability_triggered?
    return @battle.pbAbilityTriggered?(self)
  end

And, for reference, here's the Gen IX plugin using it in Supersweet Syrup, which is what gave me an error when a Pokémon with the ability appeared:

Ruby:
Expand Collapse Copy
Battle::AbilityEffects::OnSwitchIn.add(:SUPERSWEETSYRUP,
  proc { |ability, battler, battle, switch_in|
    next if battler.ability_triggered?
    battle.pbShowAbilitySplash(battler)
    battle.pbDisplay(_INTL("A supersweet aroma is wafting from the syrup covering {1}!", battler.pbThis))
    battle.allOtherSideBattlers(battler.index).each do |b|
      next if !b.near?(battler) || b.fainted?
      if b.itemActive? && !b.hasActiveAbility?(:CONTRARY) && b.effects[PBEffects::Substitute] == 0
        next if Battle::ItemEffects.triggerStatLossImmunity(b.item, b, :EVASION, battle, true)
      end
      b.pbLowerStatStageByAbility(:EVASION, 1, battler, false)
    end
    battle.pbHideAbilitySplash(battler)
    battle.pbSetAbilityTrigger(battler)
  }
)

Now, the note attached to the AAM Battler usage says that the method is not necessary, and I am unable to find any instance of the plugin as a whole using the method, so I'm tempted to just delete it to fix the contradiction, but I'm unsure if there's any kind of interplay that I'm not understanding, so I wanted to bring it up here.
Oh, thats my bad. I should make it more clear.
The plugin needs to be fixed for some Gen 9 abillities.

Regarding multi-abilities, it should record which one-battle ability was triggered, so the def ability_triggered?(check_ability) has an argument check_ability.

you could experiment yourself if you give a mon two (or more) one-battle abilities, for example, Supersweet Syrupand and Dauntless Shield.
One of them never be triggered.
 

Saten

Rookie
Member
Joined
Jan 20, 2025
Posts
2
Hello!, first of all thanks for your work!
I want to report that I have issues with the ability Shadow Tag, and a custom ability that also traps, they didnt work but no error messages appears on screen.
Both abilities works as normal when I remove the Innate Abilities plugin from the plugins folder. I didnt check Magnet Pull or Arena Trap yet.
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
155
Hello!, first of all thanks for your work!
I want to report that I have issues with the ability Shadow Tag, and a custom ability that also traps, they didnt work but no error messages appears on screen.
Both abilities works as normal when I remove the Innate Abilities plugin from the plugins folder. I didnt check Magnet Pull or Arena Trap yet.
Thats odd, I'm trying to recreate that error with both cases of the ability (being regular and innate) but had no issues so far. Perhaps another plugin is modifying your code? Or are you using them in a pokemon uncapable of being trapped?
 

Saten

Rookie
Member
Joined
Jan 20, 2025
Posts
2
Thats odd, I'm trying to recreate that error with both cases of the ability (being regular and innate) but had no issues so far. Perhaps another plugin is modifying your code? Or are you using them in a pokemon uncapable of being trapped?
Thanks for your answer!
So far wild battles against a pokemon with Shadow Tag always let me escape, with no pokemon immune to beign trapped as the leader (this was the reason of my report),
But after doing more tests... if I try to switch between my party the ability message shows up and both abilities starts to work as normal... So I will keep doing more tests.
 

Sonicover

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

Another bunch of fixes

YOU HAVE TO RE-COMPILE AND START A NEW GAME AFTER THIS UPDATE, AS IT CHANGES ANOTHER CHUNK OF STUFF
*FIXED OPPORTUNIST'S ABILITY AND INNATE AT LONG LAST. Huge thanks to Komeiji for suggesting update the bit of code that made the trick.
*Reworked how the innates are stored in a Pokemon. Now instead of saving them and reverting them at the end of battle, it saves them per species and form, so any given pokemon can have a unique set of innnates per form no...

Read the rest of this update entry...
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
155
I hope this update fixes some of the problems reported. Sorry if it took so long, work is very demanding at the moment.

For the next update I think I'll try to fix the abilities that use "pokemon.ability ==" for their main check. However if thats the case I'm afraid this will be the last update that doesnt require the Gen 9 pack. I said that because I remember Tsoukinator not using it in his project so I wouldn't want anyone to be restricted of a plugin. I'll try and make it not dependant on it since the less dependencies the plugin has, the better. Specially for keeping things updated since I will requiere to alias some stuff.

Also I'm considering merging the Innate Summary and the Innate Abilities folders into one since I don't think it goes unused by many people.
 

Yurisei

Rookie
Member
Joined
Feb 1, 2025
Posts
3
Both of these errors will be solved next patch. I've solved them a while ago but hadn't updated the file and I'm not in my home due vacations. But for the first method you just need to go to the Utilities section of the plugin and delete all aliases for all of the pbAddPokemon methods, since those are no longer needed.

The second one I can't exactly remember the method, but I remember a similar error trying to call empty in something that was not an array, wich I fixed right away. I think it was about the innate restore system. I'll give it a closer look once I get back, wich should be this Saturday

Hi, I've downloaded 1.5.4 today onto the unofficial EBDX 21.1 base, and I'm getting the exact same .empty? for nil:NilClass error on Battlers line 87 when trying to enter a battle. Did this fix not make it into 1.5.4, or is it a compatibility problem with EBDX maybe?

Also while I'm here, how have abilities like Trace and Mummy been implemented? If a Pokemon has Trace as an Innate, I'd guess it copies the opponent's personal ability into Trace's innate slot until switched out, and I'd guess Mummy as an innate only copies itself into the personal ability slot?
 
Last edited:

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
155
Hi, I've downloaded 1.5.4 today onto the unofficial EBDX 21.1 base, and I'm getting the exact same .empty? for nil:NilClass error on Battlers line 87 when trying to enter a battle. Did this fix not make it into 1.5.4, or is it a compatibility problem with EBDX maybe?

Also while I'm here, how have abilities like Trace and Mummy been implemented? If a Pokemon has Trace as an Innate, I'd guess it copies the opponent's personal ability into Trace's innate slot until switched out, and I'd guess Mummy as an innate only copies itself into the personal ability slot?
I havent tested the unofficial EBDX but it should work, could you send the error message please?
 

Yurisei

Rookie
Member
Joined
Feb 1, 2025
Posts
3
I havent tested the unofficial EBDX but it should work, could you send the error message please?
Ruby:
Expand Collapse Copy
[Pokémon Essentials version 21.1]
[v21 Hotfixes 1.0.1]
[v21.1 Hotfixes 1.0.9]
[EBDX v1.4.7.1 (E21)]

Script error in event 18 (coords 28,6), map 3 (Manu's house)
Exception: NoMethodError
Message: undefined method `empty?' for nil:NilClass

***Full script:
TrainerBattle.start(:BEAUTY, "Bridget")
Backtrace:
[Innate Abilities] AAM Battler.rb:87:in `pbInitPokemon'
Battler_Initialize:61:in `pbInitialize'
Battle_StartAndEnd:117:in `pbCreateBattler'
Battle_StartAndEnd:153:in `block (3 levels) in pbSetUpSides'
Battle:411:in `block in eachInTeam'
Battle:411:in `each'
Battle:411:in `each_with_index'
Battle:411:in `eachInTeam'
Battle_StartAndEnd:150:in `block (2 levels) in pbSetUpSides'
Battle_StartAndEnd:148:in `each'

I just tried it without EBDX too and it's the same error, which seems good.
 

Nova Ozuka

Novice
Member
Joined
Apr 15, 2022
Posts
36
I've been getting errors whenever I try to use the ability Tera Form Zero. Nothing happens when I tera Terapagos with DBK, but if I switch in a mon with the ability or use Mega Evolution, I run into one of these two.
[2025-02-01 11:02:40 -0600]
[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.9]

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

Backtrace:
[Innate Abilities] AAM Battle.rb:52:in `pbAbilityTriggered?'
[Generation 9 Pack] [002] Battle_Battler.rb:44:in `ability_triggered?'
[Generation 9 Pack] [002] DLC Abilities.rb:156:in `block in <main>'
Event_Handlers:195:in `trigger'
[Innate Abilities] AAM Ability Effects.rb:519:in `block in triggerOnSwitchIn'
[Innate Abilities] AAM Ability Effects.rb:517:in `each'
[Innate Abilities] AAM Ability Effects.rb:517:in `triggerOnSwitchIn'
Battler_AbilityAndItem:192:in `pbTriggerAbilityOnGainingIt'
[Deluxe Battle Kit] [005] Mega Evolution.rb:145:in `pbMegaEvolve'
[Deluxe Battle Kit] [005] Mega Evolution.rb:84:in `block in pbAttackPhaseMegaEvolution'

=================

[2025-02-01 11:08:08 -0600]
[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.9]

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

Backtrace:
[Innate Abilities] AAM Battle.rb:52:in `pbAbilityTriggered?'
[Generation 9 Pack] [002] Battle_Battler.rb:44:in `ability_triggered?'
[Generation 9 Pack] [002] DLC Abilities.rb:156:in `block in <main>'
Event_Handlers:195:in `trigger'
[Innate Abilities] AAM Ability Effects.rb:519:in `block in triggerOnSwitchIn'
[Innate Abilities] AAM Ability Effects.rb:517:in `each'
[Innate Abilities] AAM Ability Effects.rb:517:in `triggerOnSwitchIn'
Battle_ActionSwitching:353:in `block in pbOnBattlerEnteringBattle'
Battle_ActionSwitching:332:in `each'
Battle_ActionSwitching:332:in `pbOnBattlerEnteringBattle'
 

komeiji514

Elite Trainer
Member
Joined
Oct 28, 2023
Posts
282
I've been getting errors whenever I try to use the ability Tera Form Zero. Nothing happens when I tera Terapagos with DBK, but if I switch in a mon with the ability or use Mega Evolution, I run into one of these two.
pbAbilityTriggered? and pbSetAbilityTrigger have been rewritten by this plugin to be compatible with the innate system. Once-per-battle abilities in gen9 should also be edited.
 

THEGLEEPER

Rookie
Member
Joined
Feb 5, 2025
Posts
4
Ok, so I keep getting this error message at the start of a battle
[Pokémon Essentials version 21.1]
[v21.1 Hotfixes 1.0.9]

Exception: RuntimeError
Message: Unknown ID COMMANDER.

Backtrace:
GameData:103:in `get'
[Innate Abilities] AAM Battler.rb:138:in `hasActiveAbility?'
[Innate Abilities] AAM Battler.rb:231:in `pbContinualAbilityChecks'
Battle_ActionSwitching:350:in `block in pbOnBattlerEnteringBattle'
Battle_ActionSwitching:332:in `each'
Battle_ActionSwitching:332:in `pbOnBattlerEnteringBattle'
Battle_ActionSwitching:307:in `pbOnAllBattlersEnteringBattle'
Battle_StartAndEnd:314:in `pbStartBattleCore'
Battle_StartAndEnd:271:in `pbStartBattle'
Overworld_BattleStarting:401:in `block (2 levels) in start_core'
I'm not very smart when it comes to code and stuff and I'm very unfamiliar with Pkmn Essentials, so the issue could be as simple as putting the files in the wrong places. I have Innates, MUI, and 21.1 hotfixes as plugins. I have modified a lot of data to remove the vast majority of Pokemon since I'm adding my own originals. I left the gen 1 starters in for testing. I have made sure that the encounter I'm trying to initiate is with one of the Pokemon that still exist, and everyone's innates are defined as just Speed Boost (no others) with proper formatting.
I have NOT touched data for moves or abilities, or any of the AAM files. I made sure to do the recompile shortcut. Everything else works, like the Innates displaying in the summary page.
 

komeiji514

Elite Trainer
Member
Joined
Oct 28, 2023
Posts
282
Ok, so I keep getting this error message at the start of a battle

I'm not very smart when it comes to code and stuff and I'm very unfamiliar with Pkmn Essentials, so the issue could be as simple as putting the files in the wrong places. I have Innates, MUI, and 21.1 hotfixes as plugins. I have modified a lot of data to remove the vast majority of Pokemon since I'm adding my own originals. I left the gen 1 starters in for testing. I have made sure that the encounter I'm trying to initiate is with one of the Pokemon that still exist, and everyone's innates are defined as just Speed Boost (no others) with proper formatting.
I have NOT touched data for moves or abilities, or any of the AAM files. I made sure to do the recompile shortcut. Everything else works, like the Innates displaying in the summary page.
$aamName2 will get the ability name when checking active ability. And this happens when the ability doesn't exist in the game.
 

THEGLEEPER

Rookie
Member
Joined
Feb 5, 2025
Posts
4
$aamName2 will get the ability name when checking active ability. And this happens when the ability doesn't exist in the game.
So does that mean I need to run or insert $aamName2 somewhere? Or maybe I need the AAM plugin as well?
Also ty for responding
 

Acmester

Rookie
Member
Joined
Sep 2, 2020
Posts
2
IS THERE A POSSIBILITY OR INTEREST IN DEVELOPING THE INNATURES OF POKEMON REDUX? OR AS CODE OR PLUGIN, AND POST HERE? SINCE THE GAME ITSELF IS OPEN SOURCE <GIVING CREDITS>
 

Nova Ozuka

Novice
Member
Joined
Apr 15, 2022
Posts
36
pbAbilityTriggered? and pbSetAbilityTrigger have been rewritten by this plugin to be compatible with the innate system. Once-per-battle abilities in gen9 should also be edited.
Telling me this is about as helpful as applying a coat of white paint to a white rock. In fact, it could be interpreted a few ways, one of them being "go edit the Gen 9 plugin," another being "here's a fun fact," or even "there shouldn't be a problem." Of course, none of those are at all helpful.

I'm already using the latest version of this plugin. As for Gen 9, that one is at 3.2.8, and the latest doesn't even mention anything about this plug-in. Of course, that's assuming the problem lies within the Gen 9 plugin. You also seem to be ignoring the part where it didn't even procc on form change like it was supposed to. Granted, Tera is a different mechanic than Mega Evolution, but that doesn't mean Pokemon can't be setup to change forms mid battle. I would also like to point out that the error says "wrong number of arguments" while also pointing toward the AAM Battle script.

I would like to use this plugin to make one of my ideas work, but I can't do that if Teraform Zero causes errors with this plugin simply because Terapagos is plot relevant.
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
155
Telling me this is about as helpful as applying a coat of white paint to a white rock. In fact, it could be interpreted a few ways, one of them being "go edit the Gen 9 plugin," another being "here's a fun fact," or even "there shouldn't be a problem." Of course, none of those are at all helpful.

I'm already using the latest version of this plugin. As for Gen 9, that one is at 3.2.8, and the latest doesn't even mention anything about this plug-in. Of course, that's assuming the problem lies within the Gen 9 plugin. You also seem to be ignoring the part where it didn't even procc on form change like it was supposed to. Granted, Tera is a different mechanic than Mega Evolution, but that doesn't mean Pokemon can't be setup to change forms mid battle. I would also like to point out that the error says "wrong number of arguments" while also pointing toward the AAM Battle script.

I would like to use this plugin to make one of my ideas work, but I can't do that if Teraform Zero causes errors with this plugin simply because Terapagos is plot relevant.
What komeji was trying to say is that the method that checks if an ability was activated was repurposed for this plugin, and a such the ability handlers need to be re made to include this new methods.

This includes Tera formZero, Super Sweet Syrup, Zero to Hero, even Intrepid Sword and Dauntless shield if using the updated versions. Mega Evolution on its own does not have that unless the Mega pokemon gains one of those abilities that use the original method.

The plugin does include methods to check and only trigger an ability once or more times per battle, however I haven't actually added any ability handler that modifies those codes since I was testing if it was possible to fix them without having to modify any ability directly since I don't want players that already modify those abilities to have then overwriten, but to no avail.

So for the next update it will be focused on that, including new ability scripts with the updated methods to those abilities, and also abilities that change the pokemon's regular ability like Mummy or Trace. My only concern is what if the gen 9 pack still takes priority but if anything I can just include a mod like I did with the Pokedex Data Page.

Tldr, thanks for the report, I'm aware of the error and I know the solution, and it's being worked on
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
155
IS THERE A POSSIBILITY OR INTEREST IN DEVELOPING THE INNATURES OF POKEMON REDUX? OR AS CODE OR PLUGIN, AND POST HERE? SINCE THE GAME ITSELF IS OPEN SOURCE <GIVING CREDITS>
You mean post a pack of the abilities present in Elite Redux? If so yes, there is some interest since I really like that game (otherwise this plugin wouldn't exist lol) and I even added some of them to my game already.

I however probably won't get around to do all of them anytime soon since like I said I'm focusing mostly on my personal project and bug fixing this plugin, both of then already squeezed among my personal struggles.

If it helps, most if not all abilities present in Elite Redux can be easily adapted to Essentials with the usage of already existing abilities and methods. If anything the only 2 that did gave me trouble where Color Change and the abilities that trigger a move after an action, but even so those could be adapted as well.
 

THEGLEEPER

Rookie
Member
Joined
Feb 5, 2025
Posts
4
Ok, so I keep getting this error message at the start of a battle

I'm not very smart when it comes to code and stuff and I'm very unfamiliar with Pkmn Essentials, so the issue could be as simple as putting the files in the wrong places. I have Innates, MUI, and 21.1 hotfixes as plugins. I have modified a lot of data to remove the vast majority of Pokemon since I'm adding my own originals. I left the gen 1 starters in for testing. I have made sure that the encounter I'm trying to initiate is with one of the Pokemon that still exist, and everyone's innates are defined as just Speed Boost (no others) with proper formatting.
I have NOT touched data for moves or abilities, or any of the AAM files. I made sure to do the recompile shortcut. Everything else works, like the Innates displaying in the summary page.
Could someone get me a followup on this? I have no clue what to do, and I can't really keep working on things until it's fixed.
 
Back
Top