• 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.
  • Our friends from the Johto Times are hosting a favorite Pokémon poll - and we'd love for you to participate! Click here for information on how to vote for your favorites!
  • 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.

Lucidious89's Custom Ability Thread [Essentials v18.1]

Any way to make a ability that regents 1/2 of the users health every turn?

Shouldn't be too hard, just copy an end of round healing effect like Leftovers or something, make it an Ability, and change the amount of HP it restores from 1/16 to 1/2.
 
Any way to make a ability that regents 1/2 of the users health every turn?
Shouldn't be too hard, just copy an end of round healing effect like Leftovers or something, make it an Ability, and change the amount of HP it restores from 1/16 to 1/2.

Either like lucidious said, or take rain dish etc. and make a new version but not needing a weather. that or poison heal and remove the poison part.
 
Hey guys I'm using Essentials v18 for a project of mine that I've been working on for a while.
I'm trying to script an Ability that doubles cash after a trainer's defeated. I tried scripting that on the Amulet Coin section cause the effect's the same as it but I don't think it's working out.
Please help me :c
 
Hey guys I'm using Essentials v18 for a project of mine that I've been working on for a while.
I'm trying to script an Ability that doubles cash after a trainer's defeated. I tried scripting that on the Amulet Coin section cause the effect's the same as it but I don't think it's working out.
Please help me :c

You can find it in def pbGainMoney
 
Update!

If anyone's interested, I've updated every Ability ive ever posted in this thread so that they are now compatible with Essentials v18.1. All of my custom abilities are now found in the main post, with all installation instructions found there. Abilities I made that ended up becoming real abilities in later gens, or very similar (Armor Piercer, High Pitched, etc), were removed, since you can just use their official equivalents.

Abilities I've made to work exclusively for Pokemon Birthsigns have not been included, since the Birthsign script has not yet been updated for Essentials v18.1.
In addition to updating old abilities, I've also included a slew of new ones I've never posted here before, bringing the total of custom abilities to 50.

Here are a glimpse of some of the new content:


Ability: Sharpshooter
Effect: The user's non-contact moves cannot miss, and cannot be redirected.

Ability: Cold Blooded
Effect: The user resists Fire moves, and its Speed increases by 1 stage when hit by a Fire move. Speed is also increased in sunshine. The opposite holds true for Ice moves and hail.

Ability: Pack Leader
Effect: Boosts damage when in the lead position of the party.

Ability: Wild Tantrum
Effect: Gains the Rage effect when entering battle, raising Attack by 1 stage whenever the user is struck.

Ability: Night Terrors
Effect: Thrashes while asleep & strikes all nearby Pokémon.

Ability: Grave Robber
Effect: Immediately steals a fainted battler's held item.

Ability: Midnight Curse
Effect: Changes the user's form and ability based on the time of day. This is designed as an exclusive ability for Lycanroc.

Ability: Daylight Rush
Effect: Boosts damage if the user is the first to move. Midnight Curse changes into this ability when Lycanroc changes into its Midday Form.

Ability: Twilight Shift
Effect: The user's stats change at the start of each turn. Midnight Curse changes into this ability when Lycanroc changes into its Dusk Form.

Ability: Moonlit Frenzy
Effect: Immediately retaliates when struck with an attack. Midnight Curse changes into this ability when Lycanroc changes into its Midnight Form.

Ability: Astral Plane
Effect: All Pokemon have the Ghost-type added to their typing when any Pokemon on the field has this ability.

Ability: Petrifying Gaze
Effect: Adds the Rock-type to nearby foes upon entry.

Ability: Pheromone Lure
Effect: Opposite-gendered Pokémon may not escape.

Ability: Seed Parasite
Effect: Applies Leech Seed to an attacker that KO's the user with a contact move.

Ability: Spike Burst
Effect: When the user is struck by a contact move, a layer of spikes is added to the attacker's side of the field. Applies Toxic Spikes instead of the user is Poison-type.

Ability: Color Aura
Effect: The user gains one of several different stat boosts or buffs depending on the "color" of the directly opposing Pokemon. A Pokemon's color is set in its PBS data.

Ability: Bounty Hunter
Effect: If a rare Pokemon is present on the opponent's side, the user marks that Pokemon as a bounty target. If the user KO's the bounty target, the user gains bonus exp and money from this battle. The user will also claim the bounty target's held item.

Ability: Hive Mind
Effect: Whenever the user is targeted by an attack, it commands a nearby ally to take the attack instead. This is designed as an ability to be used by Vespiquen, to command its Combee drones to shield it from harm.



You can find more in-depth details about each of these abilities in the main post.
 
How do you create a Truant-like ability except it forces you to use a status move for every second attack and an attacking move for every first attack?

So where Truant is normally "Attack, miss a turn, attack, miss a turn,"
This ability would be "Attack, use a status move, attack, use a status move".
 
How do you create a Truant-like ability except it forces you to use a status move for every second attack and an attacking move for every first attack?

So where Truant is normally "Attack, miss a turn, attack, miss a turn,"
This ability would be "Attack, use a status move, attack, use a status move".

Pretty simple. Just copy Assault Vest's code (prevents the selection of Status moves), and combine it with the way I implemented the Twilight Shift ability (changes different stats every other turn), except make it block damaging/status moves every other turn instead. Just paste it under where Assault Vest is handled so that the message displays upon move selection.

Something like this:
Code:
#===========================================================================
    # Custom Ability
    #===========================================================================
    if hasActiveAbility?(:CUSTOMABILITY)
      if commandPhase
        # Prevents status moves every even-numbered turn (starting with turn 0).
        if turnCount%2==0 
          if move.statusMove?
            if showMessages
              msg = _INTL("{1}'s {2} prevents status moves from being used this turn!",pbThis,abilityName)
              (commandPhase) ? @battle.pbDisplayPaused(msg) : @battle.pbDisplay(msg)
            end
            return false
          end
        # Prevents damaging moves every odd-numbered turn.
        else 
          if move.damagingMove?
            if showMessages
              msg = _INTL("{1}'s {2} prevents attacking moves from being used this turn!",pbThis,abilityName)
              (commandPhase) ? @battle.pbDisplayPaused(msg) : @battle.pbDisplay(msg)
            end
            return false
          end
        end
      end
    end
    #===========================================================================

If the Pokemon has no viable moves to select on a given turn, it will just use Struggle.
One really minor thing to take note of: This effect won't prevent the usage of status/damaging moves, it will only prevent their selection. This won't matter 99.9% of the time, but in some weird cases it might be something to keep in mind. For example, if you use Entrainment to give a Pokemon this ability before they've attacked, and they chose a status move that turn that happens to be an even-numbered turn for that Pokemon, they will not be prevented from executing that status move even though the ability should prevent it. However, the ability will function as it normally would from that turn on.

Like I said, this will almost never be an issue (and even the "issue" itself is extremely minor), but something to take note of either way.
 
Last edited:
I want to know, how would anyone here go about coding an ability that reverses the effects of stat-related abilities for the opposing Pokemon like Intimidate, Speed Boost, Stamina, Steadfast, etc.? Note that it would not affect abilities like Moxie that activate after KOing an opponent.
 
I want to know, how would anyone here go about coding an ability that reverses the effects of stat-related abilities for the opposing Pokemon like Intimidate, Speed Boost, Stamina, Steadfast, etc.? Note that it would not affect abilities like Moxie that activate after KOing an opponent.

You'd probably have to code the reverse stat effects into each of those individual abilities, and have them trigger if pbCheckOpposingAbility(:ABILITYNAME) returns true.
 
Also, what does the SOR in SOREffectAbility stand for?
EDIT: NVM
 
Last edited:
Fixed an error in step 3 of the additional installations for the Bounty Hunter ability. It was causing crashes if multiple Pokemon received exp after battle. It should function correctly now.

EDIT: Fixed a bunch of other little coding issues where effects didn't exactly work as described, or ability splashes triggered multiple times when they aren't meant to. The link has been updated with these changes.
 
Last edited:
XXX,SADIST,Sadist,"All single target moves hit both targets."

this seems like a very blessed ability, but sadly i was never able to code it, every time i tried doing it every damaging move would be skipped / would do 0 damage.

my og plan was this:
(Zangoose with Sadist is on the field on double battles)
Zangoose used Close Combat on Pkm1!
(-1 Def, -1 SpDef)
(Zangoose's Sadist activated)
Zangoose also used Close Combat on Pkm2!
(-1 Def, -1 SpDef)
Zangoose turn ends

my simpler plan was this:
(Zangoose with Sadist is on the field on double battles)
Zangoose used Close Combat on Pkm1 and Pkm2!
(-1 Def, -1 SpDef)
Zangoose turn ends
 
These are really cool abilities. I have made one myself in essentials, but I have no idea how to code it. I don't know how to post my own thread here so I hope no one minds me asking for help here.
The ability I made is Hypno Chant. The user strikes at the target with psychic type attacks and there is a 10% chance of that the enemy will fall asleep. I made this ability for Hypno and Drowzee.
 
this seems like a very blessed ability, but sadly i was never able to code it, every time i tried doing it every damaging move would be skipped / would do 0 damage.

my og plan was this:


my simpler plan was this:

The second method is easily implemented by adding this code at the end of def pbFindTargets, right above "return targets":
Code:
#===========================================================================
    # Custom Ability - Sadist
    #===========================================================================
    if user.hasActiveAbility?(:SADIST) && PBTargets.canChooseOneFoeTarget?(targeting)
      newtarg = nil
      @battle.eachOtherSideBattler(user) do |b|
        next if b==targets[0]
        next if !b.near?(user)
        next if !b.near?(targets[0])
        newtarg = b
        break if newtarg
      end
      if newtarg
        @battle.pbShowAbilitySplash(user)
        pbAddTarget(targets,user,newtarg,move,true)
        @battle.pbDisplay(_INTL("{1}'s attack strikes {2} as well!",user.pbThis,newtarg.pbThis(true)))
        @battle.pbHideAbilitySplash(user)
      end
    end
    #===========================================================================

This makes it so any moves that target a single foe will now add an additional target to be hit by that attack. This ability does nothing if there's only one viable target on the field. A "viable target" is one that is both near the user and the original target. So in a triple battle, this ability will not trigger if the only remaining targets are on the sides, and the middle slot is empty. They have to be near each other, as well as near the user.
 
These are really cool abilities. I have made one myself in essentials, but I have no idea how to code it. I don't know how to post my own thread here so I hope no one minds me asking for help here.
The ability I made is Hypno Chant. The user strikes at the target with psychic type attacks and there is a 10% chance of that the enemy will fall asleep. I made this ability for Hypno and Drowzee.

Just copy Poison Touch, which is essentially the same ability except for Poison instead of Sleep. Basically just replace all mentions of "Poison" with "Sleep", change the odds of occurring from 30% to 10% (pbRandom(100)>=10), and replace "next if !move.contactMove?" with "next if !isConst?(move.calcType,PBTypes,:PSYCHIC)?"
 
Just copy Poison Touch, which is essentially the same ability except for Poison instead of Sleep. Basically just replace all mentions of "Poison" with "Sleep", change the odds of occurring from 30% to 10% (pbRandom(100)>=10), and replace "next if !move.contactMove?" with "next if !isConst?(move.calcType,PBTypes,:PSYCHIC)?"

Thank you! I forgot about that ability completely...which is just sad because that is the ability I loved abusing in gens 6 and 7.
 
Just copy Poison Touch, which is essentially the same ability except for Poison instead of Sleep. Basically just replace all mentions of "Poison" with "Sleep", change the odds of occurring from 30% to 10% (pbRandom(100)>=10), and replace "next if !move.contactMove?" with "next if !isConst?(move.calcType,PBTypes,:PSYCHIC)?"

Ok, sorry to bother again, but essentials is saying there is a problem with line "next if battle.pbRandom(100)>=10" in the ability. what did I do wrong? should I post the full code so we can get a better idea on what happened?
 
Ok, sorry to bother again, but essentials is saying there is a problem with line "next if battle.pbRandom(100)>=10" in the ability. what did I do wrong? should I post the full code so we can get a better idea on what happened?

There's no reason for that line to be causing an error unless you placed it somewhere it shouldn't be. Paste the code if you can't figure it out.
 
Back
Top