I couldn't miss the chance to practice my drawing!
The immunity bug is a series of bugs in Final Fantasy VI related to status immunity. Immunity is two-way, keeping the player from applying or taking off a status.
Status immunity merely prevents the toggle of a status; the player cannot gain the status, but they cannot lose it if they already have it either. This is used to make effects from relics and such permanent, except in specific cases where the game will not apply immunity, like Image. However, there are two instances where immunity is ignored. When a character's HP drops below 1/8, they gain Critical status no matter what. If they are immune to the status, they cannot get it from Rippler and they cannot lose it either, but they can still get it if their HP drops below 1/8.
List of bugs[]
Equipment immunity bug[]
The player needs to equip something that applies a permanent status, such as the Hermes Sandals or the Force Shield, and enter a battle with the equipped character either KO'ed or petrified. Reviving or healing them in battle results in the status their equipment should be providing not showing up. Trying to apply said status has no effect, because while the game could not apply the status due to the party members having the KO or Petrify status, it could still apply immunity. The applies for the Cursed Shield and the Zombie status. A returning Gau on the Veldt also demonstrates the bug's effects. He is not considered "alive" until he reappears up at the battle's supposed end, so any equipment and/or relic(s) he is wearing will not apply their status either.
Status immunities are two-way: if a target is immune to a status but does not have it, it cannot be given to it; if a target is immune to a status but already has it, it cannot be removed from it. For the game to give a permanent status (Reflect from Reflect Ring), it must give both the status and immunity to it. If a target is turned into a Zombie, it will always lose certain statuses (Blind, Poison, Critical, Berserk, Confuse, and Sleep), even if they were supposed to be permanent (Cursed Shield). If the player tries to give the target the status again during that battle, they will not be able to, as the target is still immune to the status. This can hurt the player in a minor way associated with the Rage; if the player is taking advantage of Gau's Poison-absorption by giving him the Poison status before choosing a Rage that has Poison immunity, Gau will have to lose his current Rage before he can reattain the Poison status.
There are three ways of executing this bug: Cursed Shield, Force Shield, and Rage. When the player equips the Cursed Shield mid-battle, it immunizes to Silence, Berserk, Confuse, and Sap. However, due to the relationship with Regen, setting Sap immunity also sets Regen immunity. This is a normal rule of the game, the same goes for Haste and Slow. When the player de-equips the Cursed Shield in the same battle, the immunities it sets are stripped, and only those it set. This does not account for Regen immunity, so Sap and Regen immunity will remain for the duration of the battle.
Having the Force Shield equipped at the beginning of the battle, and leaving it on the character for a turn before de-equipping it, gives the Shell immunity and the status will not come off.
Rage immunity bug[]
The player should use a Rage that has immunity to or inflicts one of the following statuses: Sap, Regen, Slow, Haste, Stop, Shell, Protect, Reflect, and Float. Any of those immunities and given status (if applicable) will become permanent.
For example, casting Regen on Gau, and then selecting the Intangir Rage (hopefully he does not use Transfusion for the initial Rage attack) gives Vanish status. Killing Gau off with a spell and then reviving him has vanish be gone, but Regen, Haste, Shell, Protect, and Float will still be there and cannot be Dispelled. Now Gau has Regen, Haste, Shell, Protect, and Float for the rest of the battle due to implied Regen immunity and Intangir Rage giving permanent Haste, Shell, Protect, and Float.
The bug comes from immunity to Regen, Slow, Haste, Stop, Shell, Protect, Reflect, and Float never being removed during battle as there is no code to do so. Other immunities that are also affected but never appear in the normal game include Dance (technically, it does exist, but only for four monsters in the final battle), Rage, Freeze, Reraise, Trance, Chanting, Hidden, and Interceptor Guard.
Monster immunity bug[]
When the Yeti powers up after using or receiving a Green Cherry, all he is really doing is adding all the statuses Miracle Shoes would give: Regen, Haste, Shell, and Protect. However, he has Sap immunity, which causes Regen immunity (and vice versa). Because the FB command was not programmed to override status immunities, Yeti cannot give himself Regen status due to an implied Regen immunity. This is a bug because he was supposed to get Regen status, but the programmers either forgot or did not know what Sap immunity would do to this "attack" and made Yeti attempt the status addition anyway.
Another monster that suffers from this bug is Air Force. The battle script shows that Air Force is meant to gain the Haste status after Laser Gun is defeated, however, due to the way Haste and Slow statuses work, the status will not be applied, as being immune to Slow makes the target also immune to the effects of Haste.