• 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
Sonicover submitted a new resource:

Innate Abilities (Yet Another "All Abilities Mutation" mod) - Unlock the true potential of a pokemon with more than one ability!

First and foremost: This plugin uses DemIce's All Abilities Mutation plugin as a base. My plugin just updates it a bit and adds some new values in the PBS to make this version work. All credits please go towards him, since I basically just made a copy-paste of what was already on essentials and changed some text, hence why it might be buggy at some places.
Needless to say that if...

Read more about this resource...
 

SomebodyRandom

Trainer
Member
Joined
Feb 13, 2022
Posts
79
This sounds like it's more of what Elite does rather than Exceeded, which has other types of bonus abilities than just innates. Do you think you could look into adding level-up abilities or tutor abilities?
 

Penelope

Trainer
Member
Joined
Sep 15, 2023
Posts
86
Ruby:
Expand Collapse Copy
  #=============================================================================
  #Gen 9 new Abilities
  def self.triggerOnStatusInflicted(ability, battler, user, status)
    OnInflictingStatus.trigger(:POISONPUPPETEER, user, battler, status) if user && user.hasActiveAbility?(:POISONPUPPETEER) # Poison Puppeteer
    for i in battler.abilityMutationList
      $aamName=GameData::Ability.get(i).name
      OnStatusInflicted.trigger(i, battler, user, status)
    end  
  end
This should meke Poison Puppeteer work (didnt test).
 
Last edited:

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
This sounds like it's more of what Elite does rather than Exceeded, which has other types of bonus abilities than just innates. Do you think you could look into adding level-up abilities or tutor abilities?
Yes, to be fair I've only played Elite, however I saw that Exceeded also included Innate abilities so I've wanted to mention it as well.

How do Level up or tutor abilities work? I might try to implement them as well
 

SomebodyRandom

Trainer
Member
Joined
Feb 13, 2022
Posts
79
Yes, to be fair I've only played Elite, however I saw that Exceeded also included Innate abilities so I've wanted to mention it as well.

How do Level up or tutor abilities work? I might try to implement them as well
They work exactly like moves, along with being able to replace your abilities. The abilities also stay after evolving, so you could have a truant vigoroth if you really wanted to. Also, you should try exceeded. Elite Redux feels like you're just playing competitive pokemon while exceeded feels more like a regular pokemon game
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
Ruby:
Expand Collapse Copy
  #=============================================================================
  #Gen 9 new Abilities
  def self.triggerOnStatusInflicted(ability, battler, user, status)
    OnInflictingStatus.trigger(:POISONPUPPETEER, user, battler, status) if user && user.hasActiveAbility?(:POISONPUPPETEER) # Poison Puppeteer
    for i in battler.abilityMutationList
      $aamName=GameData::Ability.get(i).name
      OnStatusInflicted.trigger(i, battler, user, status)
    end 
  end
This should meke Poison Puppeteer work (didnt test).
Your method does work! Thanks! I'll give you credit when I update the plugins.
However the only drawback making it this way has is that the handler only works with Poison Puppeteer, so I'll still be on the look for making all innates that use the handler work
 

Penelope

Trainer
Member
Joined
Sep 15, 2023
Posts
86
Your method does work! Thanks! I'll give you credit when I update the plugins.
However the only drawback making it this way has is that the handler only works with Poison Puppeteer, so I'll still be on the look for making all innates that use the handler work
Ruby:
Expand Collapse Copy
  #=============================================================================
  #Gen 9 new Abilities
  def self.triggerOnStatusInflicted(ability, battler, user, status)
    #OnInflictingStatus.trigger(:POISONPUPPETEER, user, battler, status) if user && user.hasActiveAbility?(:POISONPUPPETEER) # Poison Puppeteer
    if user
      for i in user.abilityMutationList
        $aamName = GameData::Ability.get(i).name
        OnInflictingStatus.trigger(i, user, battler, status)
      end
    end
    for i in battler.abilityMutationList
      $aamName = GameData::Ability.get(i).name
      OnStatusInflicted.trigger(i, battler, user, status)
    end
  end
This should be fine.
And have you been fixed the hasActiveAbility? problem? Check it out.
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
They work exactly like moves, along with being able to replace your abilities. The abilities also stay after evolving, so you could have a truant vigoroth if you really wanted to. Also, you should try exceeded. Elite Redux feels like you're just playing competitive pokemon while exceeded feels more like a regular pokemon game
I think thats out of the scope of this project. At least by now, since it'll imply making another property for pokemon to add compatible abilities and a method to know when a pokemon should learn a new one, and then making the AAM plugin read only the active abilities and not the whole property (Like it's doing for the innates)

It's an interesting idea tho, but I feel it will requiere it's own version.

And thanks for the suggestion, I'll play Exceeded. If I like the implementation I'll probably try to make it but can't promise anything rn
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
Ruby:
Expand Collapse Copy
  #=============================================================================
  #Gen 9 new Abilities
  def self.triggerOnStatusInflicted(ability, battler, user, status)
    #OnInflictingStatus.trigger(:POISONPUPPETEER, user, battler, status) if user && user.hasActiveAbility?(:POISONPUPPETEER) # Poison Puppeteer
    if user
      for i in user.abilityMutationList
        $aamName = GameData::Ability.get(i).name
        OnInflictingStatus.trigger(i, user, battler, status)
      end
    end
    for i in battler.abilityMutationList
      $aamName = GameData::Ability.get(i).name
      OnStatusInflicted.trigger(i, battler, user, status)
    end
  end
This should be fine.
And have you been fixed the hasActiveAbility? problem? Check it out.
It works wonderfully, thanks a lot!

I haven't got any problems with the "hasActiveAbility?" def but I was aware there was a problem when I saw your port. I've tried implementing your code but that causes some abilities like Guard Dog not working completely (It blocks Intimidate but doesn't raise attack). I'll chek it out
 

Penelope

Trainer
Member
Joined
Sep 15, 2023
Posts
86
It works wonderfully, thanks a lot!

I haven't got any problems with the "hasActiveAbility?" def but I was aware there was a problem when I saw your port. I've tried implementing your code but that causes some abilities like Guard Dog not working completely (It blocks Intimidate but doesn't raise attack). I'll chek it out
When hasActiveAbility? checks an array, it can't work. Try Protean and Libero, one of them doesn't work.
I havent touched gen 9 yet, but I remember that Guard Dog checks that ability is Intimidate or not, you may need to change it to check abilityMutationList.include?(:INTIMIDATE).
In ER, players can press a button to open a foe's summary screen, are you going to implement this function?
Nice script! I steal the Innate Summary Page. Lol
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
When hasActiveAbility? checks an array, it can't work. Try Protean and Libero, one of them doesn't work.
I havent touched gen 9 yet, but I remember that Guard Dog checks that ability is Intimidate or not, you may need to change it to check abilityMutationList.include?(:INTIMIDATE).
In ER, players can press a button to open a foe's summary screen, are you going to implement this function?
Nice script! I steal the Innate Summary Page. Lol
I will give it a second look. If it's OK with you I'll use the code you fixed in your port, at least for comparison.
Feel free to take from this one whatever you want.

On the ER summary part I don't think I'll implement that because that would be giving the player the entire information about the opponent and I feel it could break some balance.
However, innate abilities are like types, a non variable for the pokemon because all of them are always active, so I can try and show only the innates. Maybe using something like the Enhanced Battle UI plugin to show only the foe's innates, because the player can always check the summary of its own team so for one self its not necessary. But doing so with that plugin will require 2 additional more so I'll see. Maybe yeah an option for a quick look at the Innate page specifically can work. I'll tinker with it, thanks for the suggestion!
 

Sonicover

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

Small bunch of fixes

This update just fixes some of the faulty code of the previous version, and fixes a couple of handlers:
  • Updated the "hasActiveAbility?" defition (Credits to Penelope for the suggestion and code)
  • Protean and Libero now work as Innates because of this
  • Fixed the handler "ModifyMoveBaseType" so abilities that use it(Like Galvanize or Pixilate) now properly work as Innates
  • Solved Poison Puppeteer working as an Innate now (Credits to...

Read the rest of this update entry...
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
Does this play nicely with Decoupled Abilities?
Sorry for the late response, I didn't get the notification.

I haven't tested it myself but it should work, since I belive the way that plugin works is making "new" abilities using the same name but with different code.

If they don't add any new handlers they should work as innates by themselves. If they do then those handlers should be added to the code. You can always try and tell me if any problem arises
 

milanvm

Rookie
Member
Joined
Jun 13, 2024
Posts
1
Hi, great plugin! Is there a way to make the name of the Innate abilities display in the ability splash in battle? Currently when an innate ability triggers in battle, the ability splash displays the name of the regular ability. (I'm using EBDX, so i don't know if that affects anything)
 

Sonicover

Cooltrainer
Member
Joined
Jan 14, 2022
Posts
129
Hi, great plugin! Is there a way to make the name of the Innate abilities display in the ability splash in battle? Currently when an innate ability triggers in battle, the ability splash displays the name of the regular ability. (I'm using EBDX, so i don't know if that affects anything)
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
 

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 Progress System and Methods added

This update focues on adding ways to "Lock" and "Unlock" innates for a more dynamic progression. Similar on how Elite Redux handles unlocking the Innates in higher difficulties.

*Added two ways of make the Innate system progress, either by a variable and make it affect all pokemon,
*or via each pokemon level, and make them affect each one individually
*Added text in case of a pokemon doesn't have an Innate to show in the summary.
*I haven't managed to find a solution for Guard Dog nor...

Read the rest of this update entry...
 

Sonicover

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

Customize the level progress even further!

If you are using INNATE_PROGRESS_WITH_LEVEL, now you can give specific pokemon their own level's to unlock their innates! You can use this to make them get their full potential sooner or later than the rest.
Instructions given in the "Overview" page and in the "instructions.txt" file that comes with the .rar

  • Updated the way the "INNATE_PROGRESS_WITH_LEVEL" works, so now you can give specific pokemon' species custom levels to which they can unlock their innates
  • Updated the...

Read the rest of this update entry...
 

CoderFreddy

Novice
Member
Joined
Feb 8, 2023
Posts
47
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 `each_with_index'
 

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 `each_with_index'
It appears I've update some files wrongly. I'll re upload the file once I get back home. Sorry foe the inconvenience
 
Back
Top