Final Fantasy Wiki
Register
Advertisement

Epitaph is a stone enemy from Final Fantasy IX found in Oeilvert. Prior to sending Zidane to the Forgotten Continent, Kuja says to him, "I'd better send you with three of your friends just to be safe. Besides, nobody likes to fight against himself". This foreshadows the abilities of the Epitaph, and the great threat they would have posed if Kuja had indeed sent Zidane to Oeilvert alone.

Stats[]

Battle[]

Mirror-FFIX

Mirror.

Epitaph's Mirror ability allows it to create doppelgängers of one of the eight party members, who will attack the party. It will create these doppelgängers whether or not that character is in the party. If the character it mirrors is in the party, the mirror will deal 9,999 HP damage to the mirrored character, knocking them out. Against any other party members, the mirror will only use a normal physical attack that does minor damage.

Strategy[]

A good strategy is to equip the Man Eater and Stone Killer abilities to quickly destroy the mirrors and Epitaph, respectively. For a hassle-free but unrewarding technique, one can kill the Epitaphs instantly by using a Soft on it, but this yields only AP, not experience.

If one of the characters can kill the Mirror-image in one hit, the player should press 'Attack' the instant Epitaph starts casting Mirror. This will stop the ATB gauges from filling. As soon as the mirror-image enters the battlefield, the player can target it for the attack. This way one will place the player's attack before that of Epitaph/the mirror-image. If the mirror-image is indeed killed with one hit, the real character will not be killed. It is advisable to equip Jelly to prevent the characters from being petrified.

AI script[]

Using global variable dialogtarget
Using global variable dialogspeaker
Using global variable waitingdialog
Using global variable dialogstate
Using global variable epitaph
Using global variable mirror1
Using global variable mirror2
Using global variable mirror3
Using global variable mirrorindexcounter
Using global variable mirrorstate


Function Main_Loop
   if ( waitingdialog )
      while ( GetAttacker != dialogspeaker )
         Wait( 1 )
      Wait( 15 )
      if ( #( NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP) & dialogspeaker ) )
         set waitingdialog = FALSE
         if ( !( #dialogtarget ) )
            BattleDialog( "I am Steiner!" )
            set dialogstate |= 16
            set dialogstate |= 8
         else
            if ( #( ( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP) ) & dialogtarget ) )
               if ( dialogstate & 16 )
                  BattleDialog( "Who are you!?" )
               else
                  BattleDialog( "I am Steiner!" )
                  set dialogstate |= 16
               set dialogstate |= 8
            set dialogtarget = 0
   Wait( 1 )
   loop


Function Epitaph_Loop
   if ( !initflag )
      set epitaph = SV_FunctionEnemy
      set mirror1 = 16
      set mirror2 = 32
      set mirror3 = 64
      set mirrorcounter = 1
      RunBattleCode( Enable ATB )
      while ( GetBattleState != 4 )
         Wait( 1 )
      set initflag = TRUE
   if ( !( #( mirror1 & SV_EnemyTeam ) ) )
      set mirrorstate = ( mirrorstate | 0x00F ) & ~0x00D
   if ( !( #( mirror2 & SV_EnemyTeam ) ) )
      set mirrorstate = ( mirrorstate | 0x0F0 ) & ~0x0D0
   if ( !( #( mirror3 & SV_EnemyTeam ) ) )
      set mirrorstate = ( mirrorstate | 0xF00 ) & ~0xD00
   Wait( 1 )
   loop


Function Epitaph_ATB
   set mirrorindex = 0
   while ( mirrorindex <= 2 )
      if ( ( mirrorstate >> ( mirrorindex * 4 ) ) & 0xF == 1 )
         break
      set mirrorindex++
   if ( ( mirrorindex >= 3 ) && ( GetRandom & 1 ) )
      set SV_Target = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP) )
      Attack( Petrify )
   set SV_Target = SV_FunctionEnemy
   Attack( No action )


Function Epitaph_Counter
   if ( ( GetAttackCommandId == Skill ) && ( GetAttackId == What's That?! ) )
      return
   if ( #Matching(SV_FunctionEnemy[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP | SLEEP | HEAT | FREEZE) )
      return
   set livingfoes = NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | VENOM | DEATH | STOP)
   if ( !( #( livingfoes & SV_FunctionEnemy ) ) )
      return
   if ( --mirrorcounter <= 0 )
      set mirrorindex = 0
      while ( mirrorindex <= 2 )
         if ( ( mirrorstate >> ( mirrorindex * 4 ) ) & 0xF == 1 )
            break
         set mirrorindex++
      if ( mirrorindex <= 2 )
         return
      set mirrorindex = 0
      while ( mirrorindex <= 2 )
         if ( ( mirrorstate >> ( mirrorindex * 4 ) ) & 0xF == 0 )
            break
         set mirrorindex++
      if ( mirrorindex >= 3 )
         set mirrorcounter = 255
         return
      set dialogstate = 0
      set mirrorcounter = 1
      set SV_Target = SV_FunctionEnemy
      Attack( Mirror )


Function Epitaph_CounterEx
   if ( GetAttackCommandId == EnemyCounter )
      set mirrorindex = 0
      while ( mirrorindex <= 2 )
         if ( ( mirrorstate >> ( mirrorindex * 4 ) ) & 0xF == 0 )
            break
         set mirrorindex++
      if ( mirrorindex == 0 )
         set currentmirror = mirror1
      elseif ( mirrorindex == 1 )
         set currentmirror = mirror2
      elseif ( mirrorindex == 2 )
         set currentmirror = mirror3
      else
         set mirrorcounter = 255
      if ( !( #( SV_EnemyTeam & currentmirror ) ) )
         return
      set currentmirror[TARGETABLE] = 1
      set currentmirror[SHADOW] = 1
      set currentmirror[MODEL_ON] = 65535L
      set currentmirror[PREVENT_ATTACK] = 1
      set currentmirror[ATB] = currentmirror[MAX_ATB]
      set mirrorstate += 1 << ( mirrorindex * 4 )
      set SV_FunctionEnemy[PREVENT_ATTACK] = 1


Gallery[]

Etymology[]

An epitaph is an inscription honoring a deceased person, usually on a tombstone or plaque.

Related enemies[]

Advertisement