Skip to main content

Fischl

Practical config

Use fischl in configs. Aliases: fish, amy

Code

fischl char lvl=90/90 cons=0 talent=9,9,9;
fischl add weapon="favoniussword" refine=5 lvl=90/90;
fischl add set="emblemofseveredfate" count=4;
fischl add stats hp=4780 atk=311 atk%=0.466 cr=0.311 cd=0.622 er=0.110;

Combo recipes

Oz uptime guard

Refresh Oz only when he is missing or close to ending.

Code

if !.fischl.oz && .fischl.skill.ready {
  fischl skill;
}
if .fischl.oz-duration < 120 && .fischl.burst.ready {
  fischl burst;
}

Safe basic loop

This is the safest starter pattern. It checks if skill/burst are ready before pressing them, then uses attacks as filler. Use it when you do not know a character combo yet.

if .character.skill.ready

This reads the cooldown. If it says ready, the action can be used now. If it is false, the sim skips that action.

attack:3

`attack:3` means three normal attacks in a row. Change the number while you test.

No infinite loop here

This helper runs once when you call it. Put the repeated rotation outside, in your main `for` loop.

Code

fn fischl_basic_loop() {
  if .fischl.skill.ready {
    fischl skill;
  }
  if .fischl.burst.ready {
    fischl burst;
  }
  fischl attack:3;
}

Wait while .fischl.oz is active

Whether Oz is active or not.

Live state

This is not a setup value. It is the current simulator state at that frame.

Timeout

The frame limit stops the config from freezing if the state never changes.

Code

let start = f();
while .fischl.oz > 0 && f() - start < 300 {
  fischl attack;
}

Wait while .fischl.oz-source is active

The source frame Oz is spawned on.

Live state

This is not a setup value. It is the current simulator state at that frame.

Timeout

The frame limit stops the config from freezing if the state never changes.

Code

let start = f();
while .fischl.oz-source > 0 && f() - start < 300 {
  fischl attack;
}

Wait while .fischl.oz-duration is active

Number of frames until Oz disappears if he is active, 0 otherwise.

Live state

This is not a setup value. It is the current simulator state at that frame.

Timeout

The frame limit stops the config from freezing if the state never changes.

Code

let start = f();
while .fischl.oz-duration > 0 && f() - start < 300 {
  fischl attack;
}

Start with oz_travel

Projectile travel time for Oz. Default 10 frames. Set via '+params=[oz_travel=...]' in Fischl's 'char' line.

+params=[...]

Character params go on the `char` line.

Code

fischl char lvl=90/90 cons=0 talent=9,9,9 +params=[oz_travel=10];

Use attack[travel=...]

Projectile travel time. Default 10 frames.

attack[travel=...]

Action params go inside brackets on the exact action you are casting.

Code

fischl attack[travel=10];

Actions you can write

attack usable directly

Code

fischl attack:3;

aim usable directly

Code

fischl aim[weakspot=1,travel=10];

skill usable directly

Code

fischl skill;

burst usable directly

Code

fischl burst;

dash usable directly

Code

fischl dash;

jump usable directly

Code

fischl jump;

walk Only aim followed by walk has proper frames.

Code

fischl walk;

swap usable directly

Code

fischl swap;

Special action params

-[oz_travel=...] - Projectile travel time for Oz. Default 10 frames. Set via '+params=[oz_travel=...]' in Fischl's 'char' line.

Code

fischl -[oz_travel=10];

attack[travel=...] - Projectile travel time. Default 10 frames.

Code

fischl attack[travel=10];

aim[hold=...] - 0 for Physical Aimed Shot, 1 for Fully-Charged Aimed Shot (default).

Code

fischl aim[hold=1];

aim[travel=...] - Projectile travel time. Default 10 frames.

Code

fischl aim[travel=10];

aim[weakspot=...] - Hit weakspot with aimed shot. Default 0 (false), 1 for true.

Code

fischl aim[weakspot=1];

skill[recast=...] - 0 to use E (default), 1 to use Recast E. Recast E is only possible if Oz is active and Recast E is not on cooldown.

Code

fischl skill[recast=1];

Fields for conditions

.fischl.oz - Whether Oz is active or not.

Code

if .fischl.oz > 0 {
  # action here
}

.fischl.oz-source - The source frame Oz is spawned on.

Code

if .fischl.oz-source > 0 {
  # action here
}

.fischl.oz-duration - Number of frames until Oz disappears if he is active, 0 otherwise.

Code

if .fischl.oz-duration > 0 {
  # action here
}

Frames

Video credit: Kolibri#7675
Count: Sheet (credit: Kurt#5846)

Hitlag Data

AbilityHalt TimeScaleDefense HaltDeployable
Aim-Head0.120.01falsetrue
FullAim-Head0.120.01falsetrue

AoE Data

AbilityShapeCenterOffset XOffset YRadiusFan AngleBox XBox YNotes
N1BoxPrimaryTarget--0.5--0.11-
N2BoxPrimaryTarget--0.5--0.11-
N3BoxPrimaryTarget--0.5--0.11-
N4BoxPrimaryTarget--0.5--0.11-
N5BoxPrimaryTarget--0.5--0.11-

Known issues

Does not have any known issues

Names

  • fischl
  • fish
  • amy

Legal Actions

AbilityLegalNotes
attack-
charge-
aim-
skill-
burst-
low_plunge-
high_plunge-
dash-
jump-
walkOnly aim followed by walk has proper frames.
swap-

Params

AbilityParamDescription
-oz_travelProjectile travel time for Oz. Default 10 frames. Set via '+params=[oz_travel=...]' in Fischl's 'char' line.
attacktravelProjectile travel time. Default 10 frames.
aimhold0 for Physical Aimed Shot, 1 for Fully-Charged Aimed Shot (default).
aimtravelProjectile travel time. Default 10 frames.
aimweakspotHit weakspot with aimed shot. Default 0 (false), 1 for true.
skillrecast0 to use E (default), 1 to use Recast E. Recast E is only possible if Oz is active and Recast E is not on cooldown.

Fields

FieldDescription
.fischl.oz
Whether Oz is active or not.
.fischl.oz-source
The source frame Oz is spawned on.
.fischl.oz-duration
Number of frames until Oz disappears if he is active, 0 otherwise.
If more than one field is available, then either field will work.