I was asked by MacChaeger to do research on the (none) "-" ability (presumably index 0 in the Abilities list). This would be relevant to Hackmons behavior. Here are my findings:
In the summary screen, the Ability appears as a "-" character. When viewing the description for the ability, another "-" is found.
During battle, the Ability information is simply blank. It's blank on both the bottom information screen as well as the summary screen when attempting to switch a Pokemon.
Any Pokemon with the "-" Ability is rejected for any online functionality (battle, trade, etc.). Moreover, my Battle Videos were rejected when I tried to upload them.
Mechanics tests:
- Transforming into a Pokemon with the "-" Ability copies the "-" Ability successfully.
- Skill Swapping the "-" Ability works successfully. A "-" is used as the name of the Ability when any information about Abilities being changed is displayed.
- Role Play works to copy the "-" Ability, and a Pokemon with the "-" Ability can Role Play another Pokemon's Ability successfully.
- The "-" Ability can be successfully overwritten with Entrainment, Simple Beam, and the aforementioned Role Play (I didn't test any others). The "-" Ability can successfully be distributed via Entrainment.
- Gastro Acid will nullify the "-" Ability, and it gives the usual bottom screen info that the Pokemon has no ability. This implies the property of "having no ability" is separate from the "-" Ability. See the screenshot below.
- When a Pokemon with the "-" Ability changes Forme, faints, and subsequently undergoes fainted Forme regression, their Ability is reset to be their default Ability. In the overworld, this change is permanent, but in link battles, the change is only temporary. The Pokemon only regains their default Ability if it was due to fainted Forme regression; regular fainting does not reset the "-" Ability.
The only especially unusual interaction I found was that Trace refuses to copy the "-" Ability. It's not like Stance Change or Multitype where the Ability is ignored, but rather the Trace check seems to be consumed in some way whenever it could potentially Trace the "-" Ability (at least, most of the time). Here were the interactions:
- Mega Alakazam Mega Evolves against two Pokemon with "-" Abilities. Trace does not activate. One of the "-" Ability Pokemon switches for Landorus-T; Trace does not trigger to activate Intimidate (the usual interaction of unTraceable abilities + switching would have been to Trace Intimidate immediately).
- Mega Alakazam switches in against a Pokemon with the "-" Ability, and one without the "-" Ability but with a Traceable Ability (Amoonguss with Regenerator). Trace did not activate. When the "-" Ability Pokemon switched out for Landorus-T, so two Pokemon with Traceable abilities were out on the field, Trace still did not activate. The slot arrangement (left or right) does not matter, Trace just doesn't work.
- Mega Alakazam switches in against two Pokemon with unTraceable abilities (Flower Gift and Zen Mode). Cherrim and Darmanitan switch out. As Cherrim switches out for the "-" Ability Pokemon; Trace does not activate; however, immediately after when Smeargle replaces Darmanitan, Trace DOES activate.
As far as I can tell, the "-" Ability doesn't have any regular effect at all.
EDIT: Some more tests with Trace for clarification.
- In a Single battle: Mega Alakazam Mega Evolves vs. an "-" Ability Pokemon. Next turn, the "-" Ability Pokemon is switched out for Smeargle, and Trace does not activate.
- Mega Alakazam Mega Evolves vs. a "-" Ability Necrozma-Dusk-Mane. Next turn, Necrozma Ultra Bursts, and Trace does not activate.
- All the rest are doubles. Mega Alakazam Mega Evolves vs. an Aegislash and Mimikyu. Next turn, both are switched to two separate "-" Ability Pokemon. Afterwards, each "-" Ability Pokemon is switched to a Smeargle; on the first switch, Trace activates and takes Smeargle's ability.
- Mega Alakazam Mega Evolves vs. an Aegislash and Mimikyu. Next turn, both are switched to two separate "-" Ability Pokemon, and Alakazam uses Skill Swap on its partner. Trace does not activate. Next turn, both "-" Ability are switched for Smeargle. Trace does not activate.
- Mega Alakazam Mega Evolves vs. an Aegislash and a "-" Ability Pokemon. The "-" Ability switches for Smeargle, and Trace does not activate.
My best explanation for this unusual Trace behavior is that the checks for Trace are arranged somewhat in this way:
- Get the set of Abilities from the opponent
- Use the RNG to pick one of the two abilities
- If that ability is unTraceable, choose the other Pokemon's ability
- If that second ability is unTraceable, wait and watch for some new Traceable ability to switch in
- On switchin, check if that new ability is Traceable; if so, Trace it, if not, wait again and repeat.
My assumption is that the reason this unusual behavior occurs is that at step 1, the game says "this isn't just an unTraceable Ability, this is an illegal Ability" and errors out, canceling the entire Trace process altogether. That's what I meant by "the Trace check seems to be consumed in some way". That check for illegal abilities probably just isn't present at steps 4/5, so Trace simply treats "-" as an unTraceable ability at that step rather than erroring out.