Skip to main content

Alhaitham

Practical config

Use alhaitham in configs. Aliases: haitham

Code

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

Combo recipes

Mirror-aware filler

Reads mirror count before deciding whether to refresh or keep attacking.

Code

fn alhaitham_combo() {
  if .alhaitham.mirrors < 2 && .alhaitham.skill.ready {
    alhaitham skill;
  }
  while .alhaitham.mirrors > 0 {
    alhaitham attack:3, charge;
  }
}

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 alhaitham_basic_loop() {
  if .alhaitham.skill.ready {
    alhaitham skill;
  }
  if .alhaitham.burst.ready {
    alhaitham burst;
  }
  alhaitham attack:3;
}

Wait while .alhaitham.mirrors is active

Current number of Mirrors that Alhaitham has.

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 .alhaitham.mirrors > 0 && f() - start < 300 {
  alhaitham attack;
}

Wait while .alhaitham.c2-stacks is active

Number of C2 stacks that are currently active.

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 .alhaitham.c2-stacks > 0 && f() - start < 300 {
  alhaitham attack;
}

Use skill[hold=...]

0 for Tap (default), 1 for Hold.

skill[hold=...]

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

Code

alhaitham skill[hold=1];

Use low_plunge[short=...]

0 for normal low plunge (default), 1 for short low plunge. The short version is 20 frames shorter.

low_plunge[short=...]

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

Code

alhaitham low_plunge[short=1];

Actions you can write

attack usable directly

Code

alhaitham attack:3;

charge Need to use attack right before charge.

Code

alhaitham attack, charge;

skill usable directly

Code

alhaitham skill;

burst usable directly

Code

alhaitham burst;

low_plunge Previous action must be skill[hold=1] or a jump buffed via Xianyun's burst for example.

Code

alhaitham low_plunge[collision=0];

high_plunge Previous action must be a jump buffed via Xianyun's burst for example.

Code

alhaitham high_plunge[collision=0];

dash usable directly

Code

alhaitham dash;

jump usable directly

Code

alhaitham jump;

walk usable directly

Code

alhaitham walk;

swap usable directly

Code

alhaitham swap;

Special action params

skill[hold=...] - 0 for Tap (default), 1 for Hold.

Code

alhaitham skill[hold=1];

low_plunge[short=...] - 0 for normal low plunge (default), 1 for short low plunge. The short version is 20 frames shorter.

Code

alhaitham low_plunge[short=1];

low_plunge[collision=...] - 0 for no collision dmg (default), 1 for collision dmg. Does not apply to low_plunge from skill[hold=1].

Code

alhaitham low_plunge[collision=0];

high_plunge[collision=...] - 0 for no collision dmg (default), 1 for collision dmg.

Code

alhaitham high_plunge[collision=0];

Fields for conditions

.alhaitham.mirrors - Current number of Mirrors that Alhaitham has.

Code

if .alhaitham.mirrors > 0 {
  # action here
}

.alhaitham.c2-stacks - Number of C2 stacks that are currently active.

Code

if .alhaitham.c2-stacks > 0 {
  # action here
}

Frames

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

Hitlag Data

AbilityHalt TimeScaleDefense HaltDeployable
E-N10.020.01truefalse
E-N20.020.01truefalse
E-N3-20.020.01truefalse
E-N50.020.01truefalse

AoE Data

AbilityShapeCenterOffset XOffset YRadiusFan AngleBox XBox YNotes
E-N1CirclePlayer--0.12.5180---
E-N2BoxPlayer--0.1--22.5-
E-N3-1BoxPlayer----23-
E-N3-2BoxPlayer----23-
E-N4BoxPlayer----34.5-
E-N5CirclePlayer-2.22.5----

Known issues

Does not have any known issues

Names

  • alhaitham
  • haitham

Legal Actions

AbilityLegalNotes
attack-
chargeNeed to use attack right before charge.
aim-
skill-
burst-
low_plungePrevious action must be skill[hold=1] or a jump buffed via Xianyun's burst for example.
high_plungePrevious action must be a jump buffed via Xianyun's burst for example.
dash-
jump-
walk-
swap-

Params

AbilityParamDescription
skillhold0 for Tap (default), 1 for Hold.
low_plungeshort0 for normal low plunge (default), 1 for short low plunge. The short version is 20 frames shorter.
low_plungecollision0 for no collision dmg (default), 1 for collision dmg. Does not apply to low_plunge from skill[hold=1].
high_plungecollision0 for no collision dmg (default), 1 for collision dmg.

Fields

FieldDescription
.alhaitham.mirrors
Current number of Mirrors that Alhaitham has.
.alhaitham.c2-stacks
Number of C2 stacks that are currently active.
If more than one field is available, then either field will work.