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 #1
- Video #2
Hitlag Data
- Normal
- Skill
| Ability | Halt Time | Scale | Defense Halt | Deployable |
|---|---|---|---|---|
| E-N1 | 0.02 | 0.01 | true | false |
| E-N2 | 0.02 | 0.01 | true | false |
| E-N3-2 | 0.02 | 0.01 | true | false |
| E-N5 | 0.02 | 0.01 | true | false |
| Ability | Halt Time | Scale | Defense Halt | Deployable |
|---|---|---|---|---|
| E-Tap-Initial | 0.04 | 0.01 | true | false |
| E-Hold-Initial | 0.04 | 0.01 | true | false |
AoE Data
- Normal
- Charge Attack
- Plunge
- Skill
- Burst
| Ability | Shape | Center | Offset X | Offset Y | Radius | Fan Angle | Box X | Box Y | Notes |
|---|---|---|---|---|---|---|---|---|---|
| E-N1 | Circle | Player | - | -0.1 | 2.5 | 180 | - | - | - |
| E-N2 | Box | Player | - | -0.1 | - | - | 2 | 2.5 | - |
| E-N3-1 | Box | Player | - | - | - | - | 2 | 3 | - |
| E-N3-2 | Box | Player | - | - | - | - | 2 | 3 | - |
| E-N4 | Box | Player | - | - | - | - | 3 | 4.5 | - |
| E-N5 | Circle | Player | - | 2.2 | 2.5 | - | - | - | - |
| Ability | Shape | Center | Offset X | Offset Y | Radius | Fan Angle | Box X | Box Y | Notes |
|---|---|---|---|---|---|---|---|---|---|
| E-CA-1 | Circle | Player | - | - | 2.5 | - | - | - | - |
| E-CA-2 | Circle | Player | - | - | 2.5 | - | - | - | - |
| Ability | Shape | Center | Offset X | Offset Y | Radius | Fan Angle | Box X | Box Y | Notes |
|---|---|---|---|---|---|---|---|---|---|
| Plunge | Circle | Player | - | 1 | 1 | - | - | - | - |
| E-Plunge | Circle | Player | - | 1 | 1 | - | - | - | - |
| Low_Plunge | Circle | Player | - | 1 | 3 | - | - | - | - |
| E-Low_Plunge | Circle | Player | - | 1 | 3 | - | - | - | - |
| High_Plunge | Circle | Player | - | 1 | 5 | - | - | - | - |
| E-High_Plunge | Circle | Player | - | 1 | 5 | - | - | - | - |
| Ability | Shape | Center | Offset X | Offset Y | Radius | Fan Angle | Box X | Box Y | Notes |
|---|---|---|---|---|---|---|---|---|---|
| E-Initial | Circle | Player | 0.01 | 1 | 2.25 | - | - | - | - |
| E-1-Mirror | Box | Player | - | - | - | - | 7 | 3 | - |
| E-2-Mirror-1 | Circle | Player | - | -0.1 | 5.5 | 180 | - | - | - |
| E-2-Mirror-2 | Circle | Player | - | -0.1 | 5.5 | 180 | - | - | - |
| E-3-Mirror-1 | Circle | Player | - | 4 | 4 | - | - | - | - |
| E-3-Mirror-2 | Circle | Player | - | 4 | 4 | - | - | - | - |
| E-3-Mirror-3 | Circle | Player | - | 4 | 4 | - | - | - | - |
| Ability | Shape | Center | Offset X | Offset Y | Radius | Fan Angle | Box X | Box Y | Notes |
|---|---|---|---|---|---|---|---|---|---|
| Q | Circle | Player | - | 7.1 | 6.8 | - | - | - | - |
Known issues
Names
- alhaitham
- haitham
Legal Actions
| Ability | Legal | Notes |
|---|---|---|
attack | ✔ | - |
charge | ⚠ | Need to use attack right before charge. |
aim | ❌ | - |
skill | ✔ | - |
burst | ✔ | - |
low_plunge | ⚠ | Previous action must be skill[hold=1] or a jump buffed via Xianyun's burst for example. |
high_plunge | ⚠ | Previous action must be a jump buffed via Xianyun's burst for example. |
dash | ✔ | - |
jump | ✔ | - |
walk | ✔ | - |
swap | ✔ | - |
Params
| Ability | Param | Description |
|---|---|---|
skill | hold | 0 for Tap (default), 1 for Hold. |
low_plunge | short | 0 for normal low plunge (default), 1 for short low plunge. The short version is 20 frames shorter. |
low_plunge | collision | 0 for no collision dmg (default), 1 for collision dmg. Does not apply to low_plunge from skill[hold=1]. |
high_plunge | collision | 0 for no collision dmg (default), 1 for collision dmg. |
Fields
| Field | Description |
|---|---|
.alhaitham.mirrors | Current number of Mirrors that Alhaitham has. |
.alhaitham.c2-stacks | Number of C2 stacks that are currently active. |