Skip to main content

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 credit: Kolibri#7675
Count: Sheet (credit: Kurt#5846)

Hitlag Data

AbilityHalt TimeScaleDefense HaltDeployable
N10.020.01truefalse
N20.020.01truefalse
N30.020.01truefalse
N40.020.01truefalse
N60.020.01truefalse

AoE Data

AbilityShapeCenterOffset XOffset YRadiusFan AngleBox XBox YNotes
N1BoxPlayer----1.53.8-
N2CirclePlayer-0.82180---
N3BoxPlayer-0.5--11.5-
N4CirclePlayer-1.81.7----
N5BoxPlayer--1--14-
N6BoxPlayer-0.2--14-

Known issues

Does not have any known issues

Names

  • zhongli
  • zhong
  • zl

Legal Actions

AbilityLegalNotes
attack-
chargeNeed to use attack right before charge.
aim-
skill-
burst-
low_plunge-
high_plunge-
dash-
jump-
walkNo action followed by walk has proper frames.
swap-

Params

AbilityParamDescription
skillhold0 for Tap (default), 1 for Hold.
skillhold_nosteleIf 1, no Stone Stele will be created (i.e. shield only) and Hold will be performed. Default 0.

Fields

FieldDescription
.zhongli.shielded
Evaluates to 1 if player is currently shielded
If more than one field is available, then either field will work.