SaGa Frontier – Sparks and RNG

NOTE: This is a rough translation of sections of None of the information presented here was obtained by me. All credits go to the administrator of the Choi Research Institution and its contributors. 

There is potential for this information to be outdated as the last time the source website was updated was in 2013.

Last update: 9/20/2020


Analysis of the Spark System

               –Derivation and Spark Difficulty

               –Other Factors Related to Spark Difficulty

               –Spark Judgement Succeeds if the Following Conditions are Met

Analysis of RNG

               –Normal Random Number

               –RNG Tables A and B

Spark Appropriateness Charts

Spark Derivation Chart (COMING SOON)


Derivation and Spark Difficulty

“Derivation” refers to one move sparking another move (e.g. AirThrow sparking GiantSwing).

See also: “Flash Derivation Chart”

This variation has a “Spark Difficulty.” The higher the value is, the more difficult the move is to spark. Spark difficulty varies from one derivation to another, so even if you perform the same move, the probability of sparking is different.

For example, as you can see in the table on the right, you can perform BearCrush regardless of whether you use HardSlash or Smash. However, the difficulty level is 22 and 20 respectively, so it is easier to perform BearCrush with Smash than with HardSlash.

Also, if a single derivation has more than one target, the number of possible targets is equal to the number of the target (in order from the top of the table). For example, if you attack with “Smash”, you will perform “Heaven/Hell”, “Deflect”, “BearCrush”, and “DeadEnd”, and the first successful move among them will be the spark call.


Other Factors Related to Spark Difficulty

Spark Level

Enemy characters have a parameter called “Spark Level,” and the higher this value, the higher the chance of a move being fired. The spark level is based on what action you selected in battle. This is true even if you perform a counter move.

Note: The spark level of the enemy leader is always referenced if you are targeting an entire enemy. Note: The enemy leader’s spark level is always referenced when targeting all enemies, even if the enemy leader is disabled and there is only an attendant left.

Related page: “Enemy Character List”


Spark Appropriateness

Each character has strengths and weaknesses in techniques called “Spark Appropriateness.” If the character doesn’t have spark appropriateness for a certain move, the probability of that move being flashed drops significantly (to basically 0).

See also: “Flash Appropriateness Chart”


Technique Mastery

If your character is a technique master, the probability of sparks is higher (about twice as high as when you are not a master). To become a technique master, you must have at least 6 technical equipment and 0 jutsu equipment.


Timing of Spark Checks

A check is performed at the beginning of your turn after you select an action, but before attacking and retargeting if the original target dies before your attack. If the result of the spark check is an evasion (counter) move, the attack is triggered when the target is hit by an attack that can be activated by the evasion move. Also, if the target is killed before your action and you decide to attack another enemy, the spark result is unchanged, since the spark decision has already ended.


Sparks Derived from an Evasive (Counter) Move

“Deflect” -> “Kasumi”. “Kasumi” -> “Godless”. These two are special derivatives of evasion (counter) moves. These are also based on the same spark attack at the beginning of your turn. However, it’s not necessary to actually activate Kasumi, which is derived from it; just equipping it in the tech section will perform the spark check (to begin with, the probability of an evasive move is determined after the spark check). Also, this spark strike has a lower priority than the normal spark strike, so equipping Kasumi won’t interfere with other sparks. Note that Kasumi cannot be flashed by the Light Technique “LightSword” deflector.

Spark Judgement Succeeds if the Following Conditions are Met

Conditional Formula:

Boundary Value > RNG Table A Output


RNG Table A Output

It’s a random integer value ranging from 0 to 255. However, there is a bias in its output.

See also: “Analysis of RNG”


Boundary Value

Subtract the target’s spark level from the spark difficulty, and compare it to the table below to find the reference value.

For example, if the target has a spark difficulty of 40, has a spark level of 36, is eligible, and is a technique master, the base value is 40 – 36 = 4, and the boundary value is 8.

Note: I mistranslated the far right column. It’s supposed to say Not Appropriate. I’ll fix it later.



Actual Spark Probability

If there is no bias in the random numbers, the probability of success is “Boundary Value / 256”, but as mentioned above, the random numbers obtained from RNG Table A have a bias. The actual probability of success without the bias is shown below.

Note: I mistranslated the far right column. It’s supposed to say Not Appropriate. I’ll fix it later.


Typical RNG

It’s a random integer number that is commonly used in video games and ranges from 0-65535.

Xn = (Xn-1×1103515245+12345) (mod 4294967296)

RandomNumbern = Xn / 65536

Linear congruent method. The lower 16 bits are truncated.


RNG Tables A and B

RNG Table A is a random integer ranging from 0-255. It is used for Spark, Forget, and Program Development. RNG Table B is a random integer ranging from 0-99. It is used for the spark probability of evasive and counter moves.

However, there is a bias in the numbers that are calculated–some numbers are easy to get and others are not. The generation formula of RNG Tables A and B have not been completely solved, but the laws that are currently known are as follows.

  1. A table with 520 cells exists inside the game, which contains integer values from 0 to 255.
  2. The number of squares in the table is always constant: 10 0’s and 2 1-255’s each.
  3. Which number is placed in which cell changes at random each time a battle starts (details unknown as of writing). It does not change during combat.
  4. This randomness is known to be affected by at least the time elapsed on the title screen, the number of enemies in the previous battle, and the RegionMap.
  5. When RNG Table A is called, it refers to the number from the “initial value + number of times RNG Table A has been called” cell and returns it.” When the “number of calls to RNG Table A” exceeds 520, the number is referenced again from the first cell. The initial value is not known.
  6. If RNG Table B is called, the same thing happens, and the number is referenced from the first cell of “initial value + number of times RNG Table B has been called”. However, in the case of RNG Table B, the referenced value is multiplied by the following correction:
    • Returned value = {255 – the value of the cell referred to (mod 256)} x 99/255

The following is an example of a table extracted at random from the game. As you can see, only 0 is different from the other numbers, and there are 10 of them.

Note: Things like “1~20番” means “Numbers 1-20.” I was just too lazy to overlay the translation that many times.