Zhongli
Practical config
Use zhongli in configs. Aliases: zhong, zl
Code
zhongli char lvl=90/90 cons=0 talent=9,9,9;
zhongli add weapon="favoniussword" refine=5 lvl=90/90;
zhongli add set="emblemofseveredfate" count=4;
zhongli add stats hp=4780 atk=311 atk%=0.466 cr=0.311 cd=0.622 er=0.110;Combo recipes
Shield refresh
Refresh the shield only when it is missing.
Code
if !.zhongli.shielded {
zhongli skill[hold=1];
}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 zhongli_basic_loop() {
if .zhongli.skill.ready {
zhongli skill;
}
if .zhongli.burst.ready {
zhongli burst;
}
zhongli attack:3;
}Wait while .zhongli.shielded is active
Evaluates to 1 if player is currently shielded
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 .zhongli.shielded > 0 && f() - start < 300 {
zhongli 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
zhongli skill[hold=1];Use skill[hold_nostele=...]
If 1, no Stone Stele will be created (i.e. shield only) and Hold will be performed. Default 0.
skill[hold_nostele=...]
Action params go inside brackets on the exact action you are casting.
Code
zhongli skill[hold_nostele=1];Actions you can write
attack usable directly
Code
zhongli attack:3;charge Need to use attack right before charge.
Code
zhongli attack, charge;skill usable directly
Code
zhongli skill;burst usable directly
Code
zhongli burst;dash usable directly
Code
zhongli dash;jump usable directly
Code
zhongli jump;walk No action followed by walk has proper frames.
Code
zhongli walk;swap usable directly
Code
zhongli swap;Special action params
skill[hold=...] - 0 for Tap (default), 1 for Hold.
Code
zhongli skill[hold=1];skill[hold_nostele=...] - If 1, no Stone Stele will be created (i.e. shield only) and Hold will be performed. Default 0.
Code
zhongli skill[hold_nostele=1];Fields for conditions
.zhongli.shielded - Evaluates to 1 if player is currently shielded
Code
if .zhongli.shielded > 0 {
# action here
}Frames
- Video #1
- Video #2
- Video #3
- Video #4
Hitlag Data
- Normal
- Charge Attack
| Ability | Halt Time | Scale | Defense Halt | Deployable |
|---|---|---|---|---|
| N1 | 0.02 | 0.01 | true | false |
| N2 | 0.02 | 0.01 | true | false |
| N3 | 0.02 | 0.01 | true | false |
| N4 | 0.02 | 0.01 | true | false |
| N6 | 0.02 | 0.01 | true | false |
| Ability | Halt Time | Scale | Defense Halt | Deployable |
|---|---|---|---|---|
| CA | 0.06 | 0.01 | true | true |
AoE Data
- Normal
- Charge Attack
- Skill
- Burst
| Ability | Shape | Center | Offset X | Offset Y | Radius | Fan Angle | Box X | Box Y | Notes |
|---|---|---|---|---|---|---|---|---|---|
| N1 | Box | Player | - | - | - | - | 1.5 | 3.8 | - |
| N2 | Circle | Player | - | 0.8 | 2 | 180 | - | - | - |
| N3 | Box | Player | - | 0.5 | - | - | 1 | 1.5 | - |
| N4 | Circle | Player | - | 1.8 | 1.7 | - | - | - | - |
| N5 | Box | Player | - | -1 | - | - | 1 | 4 | - |
| N6 | Box | Player | - | 0.2 | - | - | 1 | 4 | - |
| Ability | Shape | Center | Offset X | Offset Y | Radius | Fan Angle | Box X | Box Y | Notes |
|---|---|---|---|---|---|---|---|---|---|
| CA | Circle | PrimaryTarget | - | - | 0.8 | - | - | - | - |
| Ability | Shape | Center | Offset X | Offset Y | Radius | Fan Angle | Box X | Box Y | Notes |
|---|---|---|---|---|---|---|---|---|---|
| E-Stele | Circle | Player | - | 3 | 2 | - | - | - | Stele spawns at the same position. |
| E-Resonance | Box | GlobalValue | - | -4 | - | - | 8 | 8 | Spawns at the position of the resonating construct. |
| E-Hold | Circle | Player | - | - | 10 | - | - | - | - |
| Ability | Shape | Center | Offset X | Offset Y | Radius | Fan Angle | Box X | Box Y | Notes |
|---|---|---|---|---|---|---|---|---|---|
| Q-Start | Circle | Player | - | - | 3 | - | - | - | not implemented yet |
| Q-ElementalBurst | Circle | Player | - | 5 | 6 | - | - | - | - |
Known issues
Names
- zhongli
- zhong
- zl
Legal Actions
| Ability | Legal | Notes |
|---|---|---|
attack | ✔ | - |
charge | ⚠ | Need to use attack right before charge. |
aim | ❌ | - |
skill | ✔ | - |
burst | ✔ | - |
low_plunge | ❌ | - |
high_plunge | ❌ | - |
dash | ✔ | - |
jump | ✔ | - |
walk | ⚠ | No action followed by walk has proper frames. |
swap | ✔ | - |
Params
| Ability | Param | Description |
|---|---|---|
skill | hold | 0 for Tap (default), 1 for Hold. |
skill | hold_nostele | If 1, no Stone Stele will be created (i.e. shield only) and Hold will be performed. Default 0. |
Fields
| Field | Description |
|---|---|
.zhongli.shielded | Evaluates to 1 if player is currently shielded |