Crisis Core Reunion - Gil Toss Formula

Phantasm

Game Over
I just reverse-engineered the Gil Toss damage formula from Crisis Core: Final Fantasy VII through a painstaking process of trial and error. It wasn’t easy — I spent several hours carefully testing different variables, running countless simulations, and analyzing the results to piece together how the damage calculation really works under the hood. After all that dedication and meticulous experimentation, I’ve finally cracked the code behind Gil Toss, unlocking a deeper understanding of its mechanics that wasn’t documented anywhere before.


FINAL FANTASY VII: CRISIS CORE REUNION
GIL TOSS FORMULA REVERSE-ENGINEERED BY KFCPHANTASM



► INPUT VARIABLES:
  • ZACK_LEVEL — Zack’s current level (Ranges from 6 to 99)
  • MATERIA_LEVEL — The level of your Gil Toss materia (Ranges from 1 to 5)
  • CURRENT_GIL — Zack’s current Gil (Ranges from 1 to 999,999,999)

IMPORTANT: Gil Toss requires at least 1 Gil. If Zack has 0 Gil, the attack will fail with a "Not enough gil!" message.



◆◆◆ FORMULA BREAKDOWN: STEP‑BY‑STEP ◆◆◆



Step 1 ▸ GIL_FLOAT
Code:
GIL_FLOAT = CURRENT_GIL ÷ 1000.0

Explanation:
  • This step converts your current Gil into a damage bonus.
  • For every 1,000 Gil you have, you add +1 to your damage.
    – For example: 5,000 Gil → GIL_FLOAT = 5.0
    – 2,500 Gil → GIL_FLOAT = 2.5
  • Why “÷ 1000.0” and not just “÷ 1000”?
    – Adding “.0” makes sure you keep the decimal part.
    – Without it, you would lose the fractions (e.g., 2,500 would just be 2 instead of 2.5).
  • This number gets added later to boost your damage.

Step 2 ▸ GIL_OFFSET
Code:
GIL_OFFSET = (10 × ZACK_LEVEL) − (50 × MATERIA_LEVEL + 10)

Explanation:
  • This adds or subtracts a flat bonus to balance the damage.
  • It's based on your level and your materia level:
    – Higher Zack level → more bonus.
    – Higher Materia level → bigger penalty.
  • It helps keep things fair:
    – Low-level Zack with strong materia → penalty.
    – High-level Zack with weak materia → bonus.
  • Example values:
    – Zack Lv. 6, Materia Lv. 5 → GIL_OFFSET = -200 (penalty).
    – Zack Lv. 99, Materia Lv. 1 → GIL_OFFSET = +930 (bonus).

Step 3 ▸ BASE
Code:
BASE = (MATERIA_LEVEL × 150) + (ZACK_LEVEL × 30) + GIL_FLOAT + GIL_OFFSET

Explanation:
  • This combines everything so far into a single number.
  • Here's what goes into it:
    – 150 × Materia Level → big damage boost from the materia itself.
    – 30 × Zack’s Level → boost from character growth.
    – GIL_FLOAT → bonus from how much Gil you have.
    – GIL_OFFSET → balancing factor from Step 2.
  • This BASE number will determine your final damage per hit.

Step 4 ▸ DAMAGE PER HIT (DPH)
Code:
DPH = floor(2 × BASE + 20)

Explanation:
  • Now we figure out how much damage each throw actually does.
  • Formula:
    – Multiply BASE by 2 → doubles the value.
    – Add 20 → gives a little extra minimum damage.
    – Then round down to remove any decimals.
  • Example:
    – BASE = 450 → (2 × 450 + 20) = 920 → DPH = 920
  • The “floor” means if the result is 920.9, it becomes 920.

Step 5 ▸ RAW_HITS & CLAMP
Code:
RAW_HITS = ceil(CURRENT_GIL ÷ DPH)
CLAMPED  = min(RAW_HITS, 5)

Explanation:
  • This step figures out how many hits Zack can afford based on his current Gil.
    – Divide your Gil by the cost of one hit (DPH).
    – Round up to make sure even leftover Gil counts as a full hit.
  • Example:
    – 10,000 Gil and DPH = 3,000 → RAW_HITS = ceil(3.33) = 4
  • But you can never hit more than 5 times per use, even if you could afford more.
    – CLAMPED makes sure it never goes above 5.

Step 6 ▸ GIL_REMAINING
Code:
GIL_REMAINING = max(CURRENT_GIL − (CLAMPED × DPH), 0)

Explanation:
  • This subtracts the cost of the attacks from your current Gil.
    – One hit costs the DPH value.
    – Multiply that by the number of hits you actually performed.
  • If the cost is more than what you have, you’re left with 0 Gil.
  • Example:
    – 10,000 Gil – (3 hits × 3,000 DPH) = 1,000 Gil left
    – If 2 hits × 6,000 DPH = 12,000, then → GIL_REMAINING = 0


◆◆◆ WORKED EXAMPLE: GIL TOSS CALCULATION ◆◆◆



ZACK LEVEL: 99
MATERIA LEVEL: 5
CURRENT GIL: 7,500,000



Step 1 ▸ GIL_FLOAT
Code:
GIL_FLOAT = CURRENT_GIL ÷ 1000.0
          = 7,500,000 ÷ 1000.0
          = 7500.0



Step 2 ▸ GIL_OFFSET
Code:
GIL_OFFSET = (10 × ZACK_LEVEL) − (50 × MATERIA_LEVEL + 10)
           = (10 × 99) − (50 × 5 + 10)
           = 990 − (250 + 10)
           = 990 − 260
           = 730



Step 3 ▸ BASE
Code:
BASE = (5 × 150)
     + (99 × 30)
     + 7500.0
     + 730

     = 750 + 2970 + 7500.0 + 730
     = 11950.0



Step 4 ▸ DAMAGE PER HIT (DPH)
Code:
DPH = floor(2 × 11950.0 + 20)
    = floor(23920.0)
    = 23920



Step 5 ▸ RAW_HITS & CLAMP
Code:
raw_hits = ceil(7,500,000 ÷ 23920)
         = ceil(313.545)
         = 314

Hits = min(314, 5)
     = 5



Step 6 ▸ GIL_REMAINING
Code:
Gil_Remaining = max(7,500,000 − (5 × 23920), 0)
              = max(7,500,000 − 119600, 0)
              = 7,380,400



RESULTS
  • Damage Per Hit (DPH): 23,920
  • Total Hits: 5
  • Gil Remaining: 7,380,400




▶ Interactive Gil Toss Calculator (Crisis Core Reunion):
Click here to open the calculator
Easily test Zack's Level, Materia Level, and Current Gil to see Total Damage, Hits, Damage Per Hit, Gil Consumed and Gil Remaining.
 
Last edited:

X-SOLDIER

Harbinger O Great Justice
AKA
X
As always, super great work with the meticulous research & technical breakdown! :neom:

Gil toss is one of those things that I personally seldom tend to use when games have it, but I always see really interesting strategies & things built around it since it's frequently got a way to have some extremely effective uses against certain bosses.



X :neo:
 

Phantasm

Game Over
Update: The formula is 100% accurate now. At the end of the explanation, just below the example, I've added an Interactive Gil Toss Calculator, so check it out. I hope you like it.

Update 2: I have added Damage Modifiers to the Interactive Gil Toss Calculator!

Last Update: I added Damage Caps.
 
Last edited:
Top Bottom