Final Fantasy Wiki
Register
Advertisement

Well... my time is almost up. Time to die, everyone!

Trance Kuja

Trance Kuja is one of the final bosses in Final Fantasy IX. The party fights him in the Crystal World after Deathguise has been defeated. Additionally, a cinematic Trance Kuja enemy can be fought atop Pandemonium.

Stats[]

Battle[]

Trance Kuja battle from FFIX Remastered

Trance Kuja in battle.

Trance Kuja casts Curaga to replenish his HP. He uses Reflect on himself in addition to Flare and Holy. He periodically casts Flare Star against the party, and also as a counter when his HP becomes low.

If party members have Auto-Reflect, Trance Kuja will target only those without the Reflect status with Flare and Holy.

Upon defeat, Trance Kuja will cast Ultima on the party, who are sent to the Hill of Despair, where Necron is fought as the game's final challenge. The player gets a chance to change and re-equip the party in-between the battles.

Strategy[]

Trance Kuja uses Holy from FFIX Remastered

Trance Kuja uses Holy.

For defense, it is best to use Shell, although this will not mitigate the damage done by Flare Star. Eiko equipped with a Moonstone can summon Carbuncle to use Pearl Light to bestow Shell (as well as Protect with the long animation) to everyone at once for a fairly low MP cost. For a higher MP cost, Quina can use Mighty Guard, which gives Shell and Protect to everyone. The support abilities, such as Auto-Regen, Auto-Haste, and Auto-Life, will provide extra defense, but are not necessary.

It is best to equip the abilities Bird Killer and MP Attack to boost damage output when using normal attacks. If powered up, Zidane's Thievery skill, Freya's Dragon's Crest, and Quina's Frog Drop can all inflict maximum damage against Trance Kuja. Steiner's Shock ability can deal an extreme damage, and Quina's LV4 Holy works against Kuja. Freya can also use Jump to stay out of Kuja's attacks' range. If in Trance, she will stay airborne, and if all other party members are perished at this time, when Trance Kuja's turn comes up, he will attack himself, dealing damage.

Trance Kuja uses Curaga from FFIX Remastered

Trance Kuja uses Curaga.

Vivi should cast Flare, or if the player has Shadow protection on all party members, Doomsday. He can equip Reflect-Null to pierce Kuja's Reflect with Flare. Doomsday ignores Kuja's reflect, however. Eiko and Dagger should concentrate on healing the party with Curaga, unless Vivi's Doomsday is already healing the party enough with their Shadow-absorption equipment. They can also summon eidolons. If Eiko is in the party, she can revive multiple fallen party members at once with Phoenix, and the auto-summon may activate in case of a wipe out. If Eiko equips the Maiden Prayer, her Fenrir will use Millennial Decay, which Trance Kuja is weak to (though then she can't use Pearl Light with Carbuncle). If Dagger has Ark, she can summon it for great damage, but her Odin and Atomos may come close to the 9999 damage cap with lower MP costs. If she has Boost, her summons always do the more powerful long animation.

Amarant should equip his Kaiser Knuckles as they provide extra damage with their Wind element, or throw Wing Edges. He can also support the party by using his ability Aura to bestow Regen and Auto-Life upon members. If he Trances, he can use Aura on everyone at once.

Trance Kuja restores his HP with Curaga, but the party should be able to outdamage him by focusing using all of their best attacks. The player should refrain from attacking too often when Trance Kuja's HP starts to run low as he counterattacks more frequently with Flare Star, which could spell disaster for the party if done twice in a row.

AI script[]

Using general variable Boss_SpecialAnimationFlag

Function Trance_Kuja_Init
   set Boss_SpecialAnimationFlag = FALSE
   set attacklist = [ Flare ; Holy ; Flare Star ; Reflect ; Flare ; Holy ; Reflect ; Flare ]


Function Trance_Kuja_Loop
   if ( !initflag )
      set initflag = TRUE
      set SV_FunctionEnemy[SHADOW] = 0
      RunBattleCode( Enable ATB )
      while ( GetBattleState != 4 )
         Wait( 1 )
   if ( SV_FunctionEnemy[HP] < 10000 )
      while ( IsAttacking != 0 )
         Wait( 1 )
      RunBattleCode( Disable ATB )
      while ( GetBattleState != 1 )
         Wait( 1 )
      set SV_Target = SV_PlayerTeam
      AttackSpecial( Ultima )
      while ( !Boss_SpecialAnimationFlag )
         Wait( 1 )
      RunBattleCode( Emphasize Music, 1 )
      set Boss_SpecialAnimationFlag = FALSE
      Wait( 1 )
      while ( !Boss_SpecialAnimationFlag )
         Wait( 1 )
      FadeFilter( FILTER_ADD, 1, BLACK )
      set Boss_SpecialAnimationFlag = FALSE
      while ( IsAttacking != 0 )
         Wait( 1 )
      set SV_FunctionEnemy[DEFEATED_ON] = 1
      RunBattleCode( End Battle, INTERRUPTED )
   Wait( 1 )
   loop


Function Trance_Kuja_ATB
   set selectedattack = RandomAttack( attacklist )
   if ( selectedattack == Flare )
      set SV_Target = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) )
   elseif ( selectedattack == Holy )
      set SV_Target = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) )
   elseif ( selectedattack == Flare Star )
      set SV_Target = SV_PlayerTeam
   elseif ( selectedattack == Reflect )
      set SV_Target = RandomInTeam( NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP | REFLECT) )
   elseif ( selectedattack == Flare )
      set SV_Target = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) )
   elseif ( selectedattack == Holy )
      set SV_Target = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) )
   elseif ( selectedattack == Reflect )
      set SV_Target = RandomInTeam( NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP | REFLECT) )
   elseif ( selectedattack == Flare )
      set SV_Target = RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) )
   Attack( selectedattack )


Function Trance_Kuja_Counter
   if ( ( GetAttackCommandId == Skill ) && ( GetAttackId == What's That?! ) )
      return
   if ( SV_FunctionEnemy[HP] - 10000 < ( SV_FunctionEnemy[MAX_HP] - 10000 ) / 2 )
      set lowhpcountercheck = SV_FunctionEnemy
   else
      set lowhpcountercheck = 0
   if ( lowhpcountercheck == SV_FunctionEnemy )
      if ( !firstlowhpcounterflag )
         set firstlowhpcounterflag = TRUE
         set SV_Target = SV_PlayerTeam
         Attack( Flare Star )
      if ( SV_FunctionEnemy[MP] < 20 )
         return
      set rnd = GetRandom % 3
      if ( rnd == 0 )
         set SV_Target = RandomInTeam( NotMatching(SV_EnemyTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP | REFLECT) )
         Attack( Curaga )
      elseif ( rnd == 1 )
         set SV_Target = SV_PlayerTeam
         Attack( Flare Star )
   if ( SV_FunctionEnemy[MP] < 46 )
      return
   if ( #RandomInTeam( NotMatching(SV_PlayerTeam[STATUS_CURRENT], PETRIFY | DEATH | JUMP | REFLECT) & NotMatching(SV_PlayerTeam[STATUS_AUTO], REFLECT) ) )
      return
   set SV_Target = Matching(SV_FunctionEnemy[STATUS_CURRENT], REFLECT)
   set rnd = GetRandom % 4
   if ( rnd == 0 )
      Attack( Holy )
   if ( rnd == 1 )
      Attack( Flare )


Musical themes[]

"The Darkness of Eternity", also known as "Dark Messenger", plays during this battle.

Merchandise[]

FFIX Battle of Destiny statue

The limited edition Battle of Destiny statue released in March 2020 depicts Zidane with Trance Kuja in Crystal World. The central ring features a LED system with moving lights as if it were spinning around the crystal.

In the GBA, PSP, and mobile remakes of the original Final Fantasy, there is a town in the Whisperwind Cove where a child asks the party if they have a "Trance Kuja action figure", because it's the only one missing from his collection.

Other appearances[]

Final Fantasy Record Keeper[]

FFRK Trance Kuja FFIX
Baknamy FFTA2This section about an enemy in Final Fantasy Record Keeper is empty or needs to be expanded. You can help the Final Fantasy Wiki by expanding it.


Monster Strike[]

MS Kuja2
Impresario-ffvi-iosThis section is empty or needs to be expanded. You can help the Final Fantasy Wiki by expanding it.


Gallery[]

Related enemies[]

Advertisement