Navigation

Character kits

A character's combat kit is its skills, cooldowns, costs and talent multipliers, and the game keeps those in its tables by the character's skill sets. What is built is the table side: each playable character's skill sets, written beside the stat tables by the stats run, and the targeting that turns an action to its enemy. The Traveler's first kit reads its multipliers from the same tables and sits in its own module, as Diluc's, Bennett's and Mona's do, and a character with no module of its own fights with the Traveler's kit until one is written. The kits' hits are combat's, and the kit's action state machine is documented there too.

Skill sets

A character has one skill set in its own form, and a set for each element form its element may take, the one a statue's element picks. A set holds a skill, the character's elemental skill, and a burst, its energy skill, each read from the skill table by its id. The skill has a cooldown and its charges, the burst a cooldown, an energy cost and the element it deals, the element its energy is named as.

flowchart LR
  AV["AvatarExcelConfigData: each avatar's own skill sets and the element sets it may take"] --> RD["getCharacterSkillKits: each set's skill and burst, read from their rows"]
  SK["AvatarSkillDepotExcelConfigData and AvatarSkillExcelConfigData, in the dump"] --> RD
  RD --> JSON["characterSkillKits.json, written with the other stat tables"]
  JSON --> APP["genshin-world loads it on demand; no kit reads it yet"]
  • A set with neither a skill nor a burst is left out. A character none of whose sets has either is left out too. One of the Traveler's element sets, 705, holds neither in this dump, so the dump gives the Traveler no form for it.
  • A burst's element is the one its energy names, when it names one of the seven. A burst that costs no element has none. Which set a Traveler's kit reads is for the element a statue gives, which is not built yet.
  • The Traveler's Anemo set holds a skill of 5 seconds, one charge, and a burst of 15 seconds for 60 energy. createTravelerKit writes the same numbers beside its hits rather than reading them from this table, which no kit reads yet.
  • The table is written by pnpm -C scripts genshin:assets stats, the same run as the characters, weapons and artifacts. Each character is checked against the world's schema as it is written.

Talent multipliers

The stats run writes each playable character's combat talent multipliers into a chunk of its own, talentMultipliers/<avatarId>.json, keyed by the talent's proud skill group. A level keeps its parameters (paramList) up to the last one that is not zero, so a read past that point is zero. The labels, the text id naming each parameter (paramDescList), go apart into talentLabels/<avatarId>.json, which the talents screen loads when it opens and the combat table never carries.

TalentMultiplierLoaderMap is keyed by avatar id and imports a chunk on demand. readTalentMultipliers checks each chunk against its schema and merges it by group, and getTalentMultiplier reads a parameter from the merged table by its index. The world loads the deployed team's multipliers as it starts and again whenever the team changes, and a kit is built from the loaded table, so the world's entry carries none of them. The one static import this replaced was 1.4 MB of it.

flowchart LR
  P["ProudSkillExcelConfigData: each group's levels and their parameters"] -->|"stats run, one chunk per character"| M["talentMultipliers/avatarId.json, keyed by group"]
  M -->|"dynamic import when the character joins the party, checked by its schema"| R["readTalentMultipliers: merged by group"]
  R -->|"getTalentMultiplier reads a parameter by its index"| T["createTravelerKit, createDilucKit, createBennettKit, createMonaKit: each kit's hits' multipliers"]

Targeting

An action turns the body to the enemy it targets as it starts. That is the living enemy inside the action's targeting area scoring highest, where an enemy's score is 0.7 times its nearness to the body within the area's radius, plus 0.3 times its nearness to straight ahead, the angle from the body's facing over a half-turn. An enemy more than 2 metres above or below the body scores a fifth of that. Enemies outside the area, and the dead, are not targeted. The view, current-target and priority coefficients are not built.

The Traveler's kit

createTravelerKit, in the Traveler's character module, built from the loaded table, is the first kit, at talent level 1. Its hitmarks and seconds are gcsim v2.47.2's frames, and the plunges' poise is gcsim's pyro plunge's. gcsim sets no poise on the Anemo skill or burst, so both hit with none. Its strikes' poise is not in that file, so each is provisional, as are the charged attack's and the plunge collision's.

Its multipliers are read from the Anemo form's proud skill groups, 731 for the attacks, 732 for Palm Vortex and 739 for Gust Surge. Those agree with the wiki's values to two decimal places. The charged attack's second hit is 731's 0.7224, where the male form's group 730 gives 0.60716, so the kit reads 731 for it.

A hit can name its own element, which strikes the enemy as that element whatever the character's own is. The Traveler's hits name none, so they deal the element of the Traveler's form, which is none until a statue gives one.

Character modules

Each character with a module has one file under services/kit/characters/, exporting a factory that builds its kit from the loaded multipliers, as createTravelerKit does. CharacterIdCreateKitMap keys them by avatar id, the world builds a character's kit once its chunk has arrived, and a character with none fights with the Traveler's kit.

  • Diluc (createDilucKit, avatar 10000016): four strikes, a charged attack, a collision and two plunges, Searing Onslaught's three presses, and Dawn's slashing hit with its phoenix's ticks and explosion. Its multipliers are read from proud skill groups 1631, 1632 and 1639, and match the wiki's Tempered Sword and gcsim's level-1 values to two decimal places. Dawn's infusion, its phoenix and the A4 passive are built, as the shared effects below.
  • Amber (createAmberKit, avatar 10000021): five arrows, a fully charged aimed shot, a collision and two plunges, Explosive Puppet's Baron Bunny and Fiery Rain. Its multipliers are read from proud skill groups 2131, 2132 and 2139, and match the wiki's Sharpshooter, Explosive Puppet and Fiery Rain values to two decimal places. Baron Bunny is a taunt, built as the shared effects below, and Fiery Rain is a summon of eighteen arrows, with Ascension 1's CRIT Rate and AoE.
  • Kaeya (createKaeyaKit, avatar 10000015): five strikes, a charged attack, a collision and two plunges, Frostgnaw with its A1 heal, and Glacial Waltz's thirteen icicles. Its multipliers are read from proud skill groups 1531, 1532 and 1539, and match the wiki's Ceremonial Bladework, Frostgnaw and Glacial Waltz values to two decimal places. Glacial Waltz's icicles are a summon, built as the shared effects above.
  • Lisa (createLisaKit, avatar 10000006): four strikes, a charged attack, a collision and two plunges, Violet Arc's press and its hold, released by itself at 4 seconds, and Lightning Rose's thirty discharges. Its multipliers are read from proud skill groups 431, 432 and 439, and match the wiki's Lightning Touch, Violet Arc and Lightning Rose values to two decimal places. Lightning Rose is a summon, built as the shared effects above.
  • Noelle (createNoelleKit, avatar 10000034): four strikes, a charged attack, a collision and two plunges, Breastplate's press and Sweeping Time's two slashes. Her multipliers are read from proud skill groups 3431, 3432 and 3439, and match the wiki's Favonius Bladework - Maid, Breastplate and Sweeping Time values to two decimal places. Breastplate's shield, its heal, and its constellations I Got Your Back and To Be Cleaned, and Sweeping Time's converted Geo attacks and ATK bonus are built, as the shared effects below.
  • Mona (createMonaKit, avatar 10000041): four strikes, a charged attack, a collision and two plunges, all Hydro catalyst hits, Mirror Reflection of Doom and Stellaris Phantasm's bubble. Its multipliers are read from proud skill groups 4131, 4132 and 4139, and match the wiki's Ripple of Fate, Mirror Reflection of Doom and Stellaris Phantasm values to two decimal places. Mirror Reflection is a summon, built as the shared effects below; the bubble, its explosion and its Omen are built. A1's phantom and A4's Hydro bonus are built too.
  • Bennett (createBennettKit, avatar 10000032): five strikes, a charged attack, a collision and two plunges, Passion Overload's press and its two Charge Levels, and Fantastic Voyage's damage. Its multipliers are read from proud skill groups 3231, 3232 and 3239, and match the wiki's Strike of Fortune, Passion Overload and Fantastic Voyage values to two decimal places. Fantastic Voyage's field, its heal, its ATK bonus and its constellations 1 and 6 are built, as the shared effects below, and A1's and A4's cooldown cuts, and A4's no-launch of the Level 2 hold, are built with them. Its self infusion is left.
  • Kamisato Ayaka (createAyakaKit, avatar 10000002): five strikes, the fourth of three hits, a charged attack of three hits, a collision and two plunges, Kamisato Art: Hyouka, Kamisato Art: Soumetsu's storm and Kamisato Art: Senho's Cryo infusion. Her multipliers are read from proud skill groups 231, 232 and 239, and match the wiki's Kamisato Art: Kabuki, Hyouka and Soumetsu values to two decimal places. Soumetsu's storm is a summon of nineteen cuts and a bloom, built as the shared effects below, with Blizzard Blade Seki no To's two smaller storms from two constellations, and Senho's infusion is built on the kit's sprint hook. Senho's Cryo application and its movement, A1's and A4's effects and her other constellations are not built.
  • Jean (createJeanKit, avatar 10000003): five strikes, a charged attack, a collision and two plunges, Gale Blade's press and its hold, and Dandelion Breeze's blast. Her multipliers are read from proud skill groups 331, 332 and 339, and match the wiki's Favonius Bladework, Gale Blade and Dandelion Breeze values to two decimal places; the skill's cooldown and longest hold and the burst's cooldown and cost are read from the same groups. Dandelion Breeze's field, its activation heal and regeneration, and its entering and exiting damage are built as the shared effects below, with A1's party heal on her strikes, A4's energy back and Spiraling Tempest's DMG bonus on a held Gale Blade from one constellation. The activation heal's off-field members, the field's Anemo on the character, Gale Blade's pull and its hold's stamina, and her other constellations are not built.
  • Barbara (createBarbaraKit, avatar 10000014): four strikes, a charged attack, a collision and two plunges, all Hydro catalyst hits, Let the Show Begin♪'s two droplets and its Melody Loop, and Shining Miracle♪'s heal. Her multipliers are read from proud skill groups 1431, 1432 and 1439, and match the wiki's Whisper of Water, Let the Show Begin♪ and Shining Miracle♪ values to two decimal places; the loop's heals and duration, the skill's cooldown, and the burst's heal, cooldown and cost are read from the same groups. The droplets are a summon, and the Melody Loop and the burst's heal are fields with no edge, built as the shared effects below, with the loop's party heal on her strikes and charged attack, and Vitality Burst's cooldown cut and Hydro DMG Bonus from two constellations. The burst's heal on the off-field members, the loop's Wet, her passives and her other constellations are not built.
  • Razor (createRazorKit, avatar 10000020): four strikes, a charged attack, a collision and two plunges, Claw and Thunder's press and its hold, and Lightning Fang's blast. His multipliers are read from proud skill groups 2031, 2032 and 2039, and match the wiki's Steel Fang, Claw and Thunder and Lightning Fang values to two decimal places; an Electro Sigil's Energy Recharge, energy and seconds, the press's and the hold's cooldowns, and the Soul Companion's share, the Electro RES bonus, the Wolf Within's seconds and the burst's cooldown and cost are read from the same groups. The press's Electro Sigils and their clearing into energy by the hold and the burst, and Lightning Fang's Wolf Within with its Soul Companion beside each strike and its Electro RES, are built over the shared effects, with Awakening's cooldown cut and reset from Ascension 1 and Lupus Fulguris's lightning from six constellations. The Wolf Within's ATK SPD, its disabled charged attack and its energy back as Razor leaves the field, Hunger, his other constellations and his Hexerei kit are not built.
  • Venti (createVentiKit, avatar 10000022): six shots, the first and fourth of two arrows each, a fully charged aimed shot, a collision and two plunges, Skyward Sonnet's press and its hold, and Wind's Grand Ode's Stormeye. His multipliers are read from proud skill groups 2231, 2232 and 2239, and match the wiki's Divine Marksmanship, Skyward Sonnet and Wind's Grand Ode values to two decimal places; the press's and the hold's cooldowns, the Stormeye's seconds and the burst's cooldown and cost are read from the same groups. The press's Wind Domain and the Stormeye are summons, built over the shared effects, with the Stormeye passive's energy from Ascension 4, Splitting Gales' arrows from one constellation, and Breeze of Reminiscence's and Storm of Defiance's Anemo RES from two and six. Elemental Absorption, the Stormeye's pull, the hold's rise and Embrace of Winds' upcurrent, Breeze of Reminiscence's Physical RES, Hurricane of Freedom, his other constellations and his Hexerei kit are not built.
  • Xiangling (createXianglingKit, avatar 10000023): five strikes, the third of two hits and the fourth of four, a charged attack, a collision and two plunges, Guoba Attack's Guoba, and Pyronado's three swings and its Pyronado. Her multipliers are read from proud skill groups 2331, 2332 and 2339, and match the wiki's Dough-Fu, Guoba Attack and Pyronado values to two decimal places; the charged attack's stamina, the skill's cooldown, the Pyronado's seconds and the burst's cooldown and cost are read from the same groups. Guoba is a summon and the Pyronado a summon that follows the body on the field, built over the shared effects, with Crossfire's wider flame from Ascension 1, Beware, It's Super Hot!'s chili pepper from Ascension 4, and Crispy Outside, Tender Inside's Pyro RES, Oil Meets Fire's Implode, Slowbake's longer Pyronado and Condensed Pyronado's Pyro DMG Bonus from one, two, four and six constellations. Guoba's Pyro aura, its particles, Chef de Cuisine, Deepfry and Guoba Mad are not built.
  • Beidou (createBeidouKit, avatar 10000024): five strikes, a charged attack, a collision and two plunges, Tidecaller's press with its shield, and Stormbreaker's hit with its Thunderbeast's Targe. Her multipliers are read from proud skill groups 2431, 2432 and 2439, and match the wiki's Oceanborne, Tidecaller and Stormbreaker values to two decimal places; the charged attack's stamina, the shield's share of her Max HP and its flat HP, the skill's cooldown, the Targe's seconds and the burst's cooldown and cost are read from the same groups. The Targe is a summon that follows the body on the field, built over the shared effects, with its lightning discharge beside Beidou's strikes and charged attack at most once a second, and Bane of Evil's Electro RES cut from six constellations. Tidecaller's hold and its bonus on hits taken, Retribution, Lightning Storm, the Targe's DMG reduction and its discharge from the other members' attacks, Sea Beast's Scourge, Upon the Turbulent Sea, the Thunder Arises and Stunning Revenge are not built.
  • Xingqiu (createXingqiuKit, avatar 10000025): five strikes, the third and fifth of two hits each, a charged attack of two hits, a collision and two plunges, Guhua Sword: Fatal Rainscreen's two hits with its Rain Swords, and Guhua Sword: Raincutter's sword rain. His multipliers are read from proud skill groups 2531, 2532 and 2539, and match the wiki's Guhua Style, Guhua Sword: Fatal Rainscreen and Guhua Sword: Raincutter values to two decimal places; the charged attack's stamina, the Rain Swords' seconds, the skill's cooldown, Raincutter's seconds and the burst's cooldown and cost are read from the same groups. The Rain Swords are a summon that follows the body on the field, putting Hydro on what touches it, and Raincutter a summon that the normal attacks of whoever is on the field set off, through the coordinated summons below, with Hydropathic's heal from Ascension 1 and Blades Amidst Raindrops' Hydro DMG Bonus from Ascension 4, and The Scent Remained's fourth sword, Rainbow Upon the Azure Sky's longer Raincutter and Hydro RES cut, Evilsoother's stronger Fatal Rainscreen and Hence, Call Them My Own Verses' five-sword wave and energy from one, two, four and six constellations. The Rain Swords' DMG reduction, interruption resistance and shattering, the skill's Wet on Xingqiu and its particles, the burst's activation knockback, and Raincutter's end as Xingqiu falls are not built.
  • Xiao (createXiaoKit, avatar 10000026): six strikes, the first and fourth of two hits each, a charged attack, a collision and two plunges, Lemniscatic Wind Cycling's dash, and Bane of All Evil. His multipliers are read from proud skill groups 2631, 2632 and 2639, and match the wiki's Whirlwind Thrust, Lemniscatic Wind Cycling and Bane of All Evil values to two decimal places; the charged attack's stamina, the skill's cooldown, and the burst's DMG Bonus, drain, duration, cooldown and cost are read from the same groups. The dash lands from a summon, and Bane of All Evil is an infusion that converts his attacks to Anemo, each carrying the burst's DMG Bonus at its converted poise and reach, beside fields that drain his current HP each second and end the burst as he leaves the field, built over the shared effects, with Tamer of Demons' Anemo DMG Bonus from Ascension 1 and Heaven Fall's stacking dash bonus from Ascension 4, on the skill's two charges. The burst's jump, interruption resistance and priority over another infusion, the dash's particles, Gravity Defier and his constellations are not built.
  • Ningguang (createNingguangKit, avatar 10000027): two strikes in turn, each of two gems, a charged attack, a collision and two plunges, Jade Screen's hit and its screen, and Starshatter's six gems. Her multipliers are read from proud skill groups 2731, 2732 and 2739, and match the wiki's Sparkling Scatter, Jade Screen and Starshatter values to two decimal places; the charged attack's stamina, the skill's cooldown, and the burst's cooldown and cost are read from the same groups. Every gem lands from a summon, and each strike whose gems strike an enemy gives her a Star Jade up to three, a field that ends as she leaves the field, which her charged attack fires beside its own gem. The screen is a summon standing 3 metres ahead of her for 30 seconds, which lands the skill's hit round it, and Starshatter shatters it into six gems more, priced as she stood when she cast it. Backup Plan's free charged attack from Ascension 1 is built, and Piercing Fragments' wider gems, Shock Effect's cooldown reset and Grandeur Be the Seven Stars' seven Star Jades from one, two and six constellations. Strategic Reserve, the screen's endurance and its blocking of projectiles, the skill's particles, Exquisite be the Jade, Outshining All Beneath, and the seven jades' expiry are not built.
  • Klee (createKleeKit, avatar 10000029): three strikes, a charged attack, a collision and two plunges, all Pyro catalyst bombs, Jumpy Dumpty's three bounces and its mines, and Sparks 'n' Splash's sparks. Her multipliers are read from proud skill groups 2931, 2932 and 2939, and match the wiki's Kaboom!, Jumpy Dumpty and Sparks 'n' Splash values to two decimal places; the charged attack's stamina, the skill's cooldown, and the burst's cooldown, cost and seconds are read from the same groups. Every bomb, bounce and mine lands from a summon cast as its action starts, and the skill holds its two charges, each thrown on its own and back one at a time on the skill's cooldown. Sparks 'n' Splash is a summon that follows the body on the field and ends as she leaves it, setting off Sparkly Explosion where she left from four constellations, and Blazing Delight gives the team its Pyro DMG Bonus from six. Pounding Surprise's Explosive Sparks, Sparkling Burst's energy, the sparks a wave adds by chance, the mines' contact and the six more of them, the skill's particles, the first strike's lag after a skill, a dash or a burst, Chained Reactions, Explosive Frags, Blazing Delight's energy and her Hexerei kit are not built.
  • Zhongli (createZhongliKit, avatar 10000030): six strikes, the fifth of four hits, a charged attack, a collision and two plunges, Dominus Lapidis' press and its hold, and Planet Befall's meteor. His multipliers are read from proud skill groups 3031, 3032 and 3039, and match the wiki's Rain of Stone, Dominus Lapidis and Planet Befall values to two decimal places; the charged attack's stamina, the press's and the hold's cooldowns, the Jade Shield's flat health, share of Max HP and seconds, and the burst's cooldown and cost are read from the same groups. A Stone Stele is a summon standing 3 metres ahead of him, landing as it rises and resonating every 2 seconds; one stands at a time, a press replacing it and a hold casting one only while none stands. The hold casts the Jade Shield, a Geo shield on the team whose cut of 20% to every Elemental RES and the Physical RES lands on the enemies round the body on the field from a following summon until the shield ends, and the meteor lands from a summon 5 metres ahead. Dominance of Earth's share of his Max HP from Ascension 4 is built, as each hit's additive base damage, and Rock, the Backbone of Earth's second stele, Stone, the Cradle of Jade's shield on the burst and Topaz, Unbreakable and Fearless' wider meteor from one, two and four constellations. Petrification and Topaz's longer one, Resonant Waves, Chrysos, Bounty of Dominator's heal, the stele's resonance with other Geo constructs, its blocking and climbing, the hold's Geo drain and interruption resistance, the skill's particles, Arcanum of Crystal and the constellations that raise talent levels are not built.

Shared effects

Each effect is on the party, in the list a KitEffectState holds, so a switch leaves it running, and a drown or a jump clears it. Each one is ticked each step.

  • Damage is a hit: its talent multiplier, its gauge of an element, the element it names when it is not its character's own, the DMG Bonus it carries of its own, if any, added to its striker's as it is priced, and the additive base damage it reads from its striker, if any, added to its base damage. A hit with no internal cooldown applies its whole gauge, and one under a cooldown shares it through it.
  • Infusion makes the character's normal attacks, charged attack and plunges deal its element at the gauge the hit gives it, 1U for a strike and 0U for a collision. One that converts the attacks gives each hit its converted poise and reach where it has them, and one with a DMG Bonus adds it to each hit it infuses, as Bane of All Evil's does to Xiao's Normal, Charged and Plunging Attacks alone. It is refreshed by a second one of its kind on the same character, not stacked.
  • Buff adds a stat bonus to the character's pricing for its seconds: a flat ATK adds to its attack and any other bonus to its attribute total. It is refreshed by one of its attribute from the same source on the same character, not stacked: a source names the effect that gives it, so two effects on one attribute run side by side, as Sprawling Greenery's two Elemental Mastery buffs do.
  • Heal is healPartyMember: a share of a standing member's max HP, never above all of it. A downed member stays down, as only a revive brings one back.
  • Energy is the party's gainPartyEnergy, which an enemy's drop already calls.
  • Field is a circle placed where its character casts, for its seconds, with a tick on a schedule. Each tick runs while the body stands inside it, reading the character on the field and the team, and a tick's own buffs and infusions start at their full seconds.
  • Summon is an entity cast where its character stands, which lands its own hits on the seconds their hitmarks fall at, for its seconds. It is priced by the combatant that cast it, as it stood then, and its hits land from its own body, not the character's. A summon may travel: its body moves forward at its speed from its start on its clock, and its hits are reached from where it is then. A summon may follow the body on the field instead: its body stands where that body stands on each step, whoever is on the field, and its hits are reached from there. A summon whose seconds end on its last hitmark lives SUMMON_LINGER_SECONDS past it, so the step that lands its last hit still has it on the field however its clock and its seconds left round.
  • A coordinated summon is set going by the character on the field, whoever that is: as that character starts a normal attack, coordinateKitSummons runs each summon's onNormalAttackStart from that character's body and combatant, called by the character component beside the action's own start. Any other action sets none going, and the summon's hook decides what it casts.
  • Dawn's phoenix is a travelling summon launched at the slash's hitmark, a metre ahead of the body and moving 14 metres a second. It strikes eight ticks, every 0.2 seconds from its launch, and explodes 1.7 seconds on, 24.8 metres out.
  • A shield is set on the team by the character that casts it, for the seconds left of it, and is recast over the one that character already holds. It takes the damage the character on the field takes, whichever character cast it: an enemy's strike is taken by every live shield at once, each absorbing the full damage through the combat's absorbShieldDamage at the struck character's shield strength, and the character loses the least any of them passes on. The wiki gives the rule in its own words: "when the active character takes damage, damage is dealt to shield health first", and "When a character has more than one shield, the damage dealt by an enemy will affect every active shield simultaneously" (Shield). A shield is dropped once its health is spent. A shield with an explosion goes off as it ends, whether its seconds run out, its health is spent or it is recast over.
  • A taunt is an entity placed where its character cast it, with health, which draws the enemies' strikes while it stands. It explodes once, from its body and priced by the combatant that cast it, when its seconds run out or its health is gone. An enemy within its aggro range strikes it instead of the character, and each strike is taken from its health by damageKitTaunt.
  • A bubble is held on one enemy by a hit that casts it, for its seconds. A hit with poise damage bursts it, as its seconds running out do: the Omen goes on the enemy from the burst, and the explosion lands on that enemy alone, from where it stands, priced by the combatant that cast it. A hit that casts a bubble holds the enemy in one, and never restarts the one it holds, since each cast's bubble bursts on its own.

Decisions

  • A kit's action carries its start. A kit action may name an onStart that adds its effects, given the body and the character's combatant, so a module writes what its burst or skill sets going without the framework knowing which.
  • A character's ascension phase is on its combatant. A passive reads combatant.ascension against the phase its table names, so the Diluc A4 gate is ascension >= 4.
  • A character's constellations are on its combatant as a count. A character's constellationCount is on her Character record, and the world copies it onto the combatant beside its ascension phase. No save holds the roster yet, so a reload starts without the characters a player held, as the save data proposal records. A constellation reads combatant.constellationCount against the level it needs, so Breastplate's C1 gate is constellationCount >= 1 and its C4 gate constellationCount >= 4, each read as the effect is cast. Bennett's C1 and C6 read it alike, on constellationCount >= 1 and constellationCount >= 6.
  • A gcsim call says what it puts on the character. "ApplySelfInfusion" puts an elemental aura on the character, not a weapon infusion; only "AddWeaponInfuse" is one, and the kit's infusion effect is that. A branch on c.Base.Cons >= N is constellation N, so the kit gates it on constellationCount >= N. The Bennett fix is the evidence: its field infused the character at every constellation, having read the self infusion as a weapon infusion, with the Cons 6 branch left ungated.
  • Searing Onslaught's cooldown starts on its first press. The second and third presses are a chain: each is pressed within four seconds of the one before, and a press inside that window plays its follow-up whatever the cooldown, which the first press set at 10 seconds. The third press closes the chain, and a window that lapses ends it. gcsim sets the cooldown on the first use, and the wiki's lapse path ends a chain with the cooldown already running, so the cooldown always starts on the first press.
  • Dawn's phoenix is priced by the same ICD as its slash. Its ticks and explosion are 2U of Pyro each under the Elemental Burst internal cooldown, and carry the slash's 100 poise, as gcsim's copy of the attack does. Their area is a circle to the far corner of gcsim's box, provisional until areas hold boxes. gcsim places tick i at 1 + 2.8i metres; the phoenix's own clock puts it 2.8 metres further, which the kit follows.
  • The charged attack's timing is provisional. gcsim does not model it and the wiki's talent page gives no frames, so its slashes land at half a second and a second, and it ends at a second and a fifth. Its damage is the wiki's cyclic 68.8% and final 124.7%, and its poise the wiki's 60 and 120.
  • Its stamina drains a second as it plays. The table's 40 a second is drained each step of the charge, so its 1.2 seconds cost 48 in all, and the charge starts with any stamina. The game holds the charge up to 5 seconds and stops it when the stamina runs out, which the kit does not model.
  • Boxes are circles. An area holds a fan or a circle, so a box is priced as the circle to its farthest corner, provisional until areas hold boxes.
  • Poise is the wiki's where gcsim gives none. gcsim sets no poise on Diluc's skill, burst or collision; the wiki's advanced properties give 120, 100 and 35.
  • A collision infused at 0U still deals the element. A hit's element no longer needs a gauge, so the collision's Pyro damage lands with no aura, as the wiki's table gives it.
  • Diluc's A1 and the phase-0 passive are not built. gcsim models no combat effect for either.
  • A field's tick reads the character on the field. Fantastic Voyage's heal and ATK bonus go to the character standing in the circle, not to each member of the team, as gcsim applies them.
  • Fantastic Voyage infuses only at constellation 6. Its tick infuses nobody below 6. Grand Expectation at 1 lifts the ATK bonus's HP threshold to any HP above zero and adds 20% of Bennett's base ATK to it, so a character under 70% of its HP gets the bonus. At 6, the bonus's branch also gives the character on the field a 15% Pyro DMG Bonus whatever it wields, and Pyro on its weapon if it wields a sword, claymore or polearm, for the buffs' 2.1 seconds, from the wiki's Fire Ventures With Me and gcsim's burst.go, which give the same wielders. The wielder is read from the character table by getCharacterWeaponType, as the combatant does not carry it yet, and the table is already in the package's bundle.
  • Bennett's self infusion is left. "ApplySelfInfusion" puts a 1U Pyro aura on the character on the field each tick, gcsim v2.47.2 (MIT), an elemental aura and not a weapon infusion. A party member holds no elemental state in this package, only an enemy does, so there is nothing to hold the aura, and it is not built. The wiki's Fire Ventures With Me page says the C6 infusion and bonus also apply when the field heals a character under 70%, where gcsim applies them on the ATK bonus alone; the kit follows gcsim, and the two differ on that case.
  • Bennett's heal ignores Healing Bonus. The heal is the table's flat HP plus its share of Bennett's max HP, unscaled.
  • Mona's strikes are priced round her body. gcsim centres them on the primary target, which an area does not hold yet. Her plunges' reach is provisional, as gcsim has no plunge file for her.
  • Mona's A1 phantom is cast from a sprint. onSprint spends each 2 seconds of the sprint on a phantom, cast where Mona stands, which explodes at its end for half of Mirror Reflection's explosion. The wiki's check for an opponent within 15 metres is not made: with none in the phantom's 5-metre explosion it deals nothing, so the check changes no damage.
  • Mona's A4 is a passive bonus read as a hit is priced. getPassiveBonuses adds 20% of her Energy Recharge to her Hydro DMG Bonus in getBuffedCombatant, for every hit she prices, her summons' included.
  • Stellaris Phantasm's Omen runs from the burst. Each enemy its cast strikes is held in a bubble for the burst group's first value, 8 seconds. A hit with poise damage bursts the bubble, as its seconds running out do, and the Omen goes on from then: 4 seconds from the burst group's index 3, and the 42% DMG bonus from index 9, which raises the damage of every hit on the enemy. The wiki's exception, that a Frozen enemy takes no poise damage and keeps its bubble, is not modelled, as the enemies' poise does not model it for any hit.
  • Stellaris Phantasm's explosion is single-target. A burst deals 2U of Hydro with the wiki's 200 poise, at the explosion's multiplier from the burst group's index 1, 442.4% at level 1. A strike with a target lands on that one enemy rather than each the area reaches, so the explosion is never spread to a neighbour. It lands on the step after the burst, as a taunt's does, and the Omen does not wait for it.
  • Amber's fully charged aimed shot is the bow's charged attack. Only the fully charged shot deals Pyro, under a charged attack internal cooldown, so the unlit Aimed Shot and its weak-point hits are not built. A bow's aimed shot (isAimed) turns the body to the camera's yaw while the aim binding, R on a keyboard, is held, and to its enemy by the wiki's score otherwise. The kit's hits are drawn from the turned body, so the shot lands along the aim.
  • Fiery Rain's arrows are priced at twice the burst radius. Each arrow lands at random within a radius of 2 round the burst's centre and is itself a circle of that radius, so a summon's arrow is priced at 4 round the body. Ascension 1, Every Arrow Finds Its Target, adds 10% CRIT Rate, priced on the summon's combatant, and widens the radius by 30%.
  • Baron Bunny lands where Amber stands. The wiki's throw, 1.4 metres ahead and the hold's distance, is not built, so it is priced round Amber's body. Its HP is 41.36% of Amber's Max HP, from the table.
  • Amber's A4 is left. Its ATK bonus after a weak-point hit has no weak spot to strike: the enemies here have none, so there is no hit for the bonus to follow.
  • Kaeya's groups are 1531, 1532 and 1539, not the talent table's 2531 and 2539. The table names 2531 for his strikes and 2539 for his icicle, and their level-1 values, 46.6% for the first strike and 54.3% for the icicle, agree with neither the wiki nor gcsim. The 15xx groups carry the wiki's numbers, so the kit reads those; the stats run's choice of group for him is the thing to fix.
  • Frostgnaw's cooldown is the wiki's 6 seconds. The skill table gives 21 seconds for his skill, which is not its cooldown; the proud skill group 1532 holds the 6, as gcsim's 360 frames do. Frostgnaw's damage against Water, its 4U gauge, is not built. A1's heal is built as a hit's healAttackShare: each enemy Frostgnaw strikes heals Kaeya by 15% of his ATK, read as the hit is priced and not scaled by Healing Bonus.
  • Glacial Waltz's activation knockback is not built. Its 400 poise has no damage and gcsim gives no area for it, so the icicles alone are built.
  • Kaeya's reaches are priced with their offsets. gcsim centres his strikes, charge and plunges a metre or so ahead of the body, so each reach is its offset plus its radius, or a box's far corner, until an area holds an offset.
  • Lightning Rose's activation deals no damage. The wiki gives it 0U and 10 poise and no multiplier, so the activation is a poise-only hit. gcsim gives it a multiplier of 0.1 that the table does not, so it is left out.
  • Violet Arc's press cooldown is the wiki's 1 second, and its hold's is the table's 16. The hold plays on its release, as Passion Overload's Charge Levels do, once it has been held 1.9 seconds, the wiki's time to charge in full. That 1.9 is provisional, as no table gives the hold's minimum, and the roadmap's Recordings owed list holds lisa-violet-arc-hold.mkv to measure it.
  • Conductive is a status that stacks on the enemy, and gcsim gives its stacks no duration. Each press hit applies a stack, up to three, and Lisa's charged attacks apply one from A1 (lisa/asc.go); her normal attacks do not apply it. Stacks are an EnemyStatus with stacks and maxStacks, which a stacking status adds to rather than restarts, and they never expire.
  • Violet Arc's hold reads the stacks on each enemy it strikes. A stackedHit sets the hold's multiplier and poise for each enemy by its Conductive stacks, 320% to 487% and poise 150 to 300 from the wiki, and consumes the stacks. The hold reaches 10.2 metres, gcsim's 10 metres with each enemy's 0.2 circle.
  • Violet Arc's hold is released by itself at 4 seconds. A kit's elementalSkillMaximumHeldSeconds caps the seconds a skill is held at its maximum, and the skill is released there, once: the hold level its seconds reach at that moment starts, and holding on past it starts nothing again. The wiki's Violet Arc page gives the maximum of 4 seconds.
  • A charged attack after a strike skips its windup. gcsim skips 14 frames of the charge's windup after a normal attack, so the hit lands at 56 frames here, and at 70 from rest, which the kit does not start.
  • Breastplate's shield is set from Noelle's DEF. It holds 160% of her DEF plus 769 for 12 seconds, and is recast over the one she holds. From four constellations, To Be Cleaned explodes it for 400% of her ATK of Geo as it ends, 2U under the Elemental Skill internal cooldown with 100 poise. The explosion is priced by Noelle as she stood when she cast the shield, and lands on the ground where the character on the field stands, since the shield protects whoever is on the field. The recast ends the shield it replaces, so that one's explosion goes off too. The wiki gives the explosion no area, so it reaches as far as the shield does.
  • Breastplate's heal rolls on her attacks while the shield stands. Her normal and charged attacks' hits and her press carry the roll at 50% (the wiki's level-1 chance), which I Got Your Back makes certain while Sweeping Time's Geo infusion is up, from one constellation, and a hit rolls on each enemy it strikes until one passes. A pass heals every party member by 21.28% of Noelle's DEF plus 102.7, each as a share of its own Max HP. The roll reads the world's one seeded random source, which the world screen holds and every combat roll draws on, the strikes' CRIT rolls included, so a session's rolls repeat. Plunges do not roll, as gcsim's do not.
  • Sweeping Time converts her normal attacks to their own poise. An infusion that converts its attacks (isConverted) gives each normal attack hit its converted poise, 132.25, 122.82, 143.865 and 189.75 from the wiki. Her charged attack, collision and plunges have the same poise converted as normal, so they are unchanged. The Geo infusion and the ATK bonus of 40% of her DEF are built, for 15 seconds past an 80-frame start.
  • Noelle's charged attack is one cycle of its spin and its final slash. A held spin's cycles are not built, so the charged attack hits once and then once more.
  • A skill with holds starts on its release. A kit's elementalSkillHolds are ordered by their minimum seconds, and a release plays the highest level its held seconds reach, else the press, on that level's cooldown. The press therefore starts when the key is let go, as the game's Charge Levels do, rather than on the press.
  • Passion Overload's Charge Levels' thresholds are provisional. The hold that reaches Level 1 is 0.5 seconds and Level 2's is 1 second, and no table or wiki page gives them, so the roadmap's Recordings owed list holds bennett-charge-levels.mkv to measure them. The hold's hits and explosion, their multipliers and poise, and the cooldowns of 7.5 and 10 seconds are the wiki's and gcsim's.
  • A cooldown multiplier is read as a skill's cooldown starts. getSkillCooldownMultiplier takes the step's context, the body, the combatant and the team's effects, and each skill's cooldown is multiplied by it when the skill starts. Bennett's A1 cuts every Passion Overload by 20%, and A4 halves it while Bennett stands in a field he cast, which a field's characterId names. The deployed team's Impetuous Winds multiplies a skill's cooldown by a further 0.95 after the kit's own, in startNextKitAction, so the two compose.
  • A charged attack's stamina multiplier is read as it starts. getChargedAttackStaminaMultiplier takes the step's context, and a charged attack's stamina is multiplied by it both where the pool is checked and where it is spent, in startNextKitAction, so a multiplier of none starts the attack on an empty pool. A charged attack that costs none spends nothing, so it does not hold the pool's refill back. Ningguang's Backup Plan gives none while she holds a Star Jade, from Ascension 1, and Impetuous Winds' cut applies after the kit's, as it does to every spend.
  • Fearnaught's no-launch is the Level 2 hold's shorter animation. Inside Fantastic Voyage's field at Ascension 4, the Level 2 hold plays gcsim's 175 frames in place of 343, with the same two hits and explosion, all of which land before it ends. The wiki's Fearnaught page gives the effect, and gcsim the animation. Bennett's launch is not modelled, so only the animation changes.
  • Bennett's hold boxes are circles. The 3 by 3 box of the hold's second hit is priced as the circle to its far corner, 2.12 metres, as the other boxes are.
  • An enemy's strike takes the team's shields through the combat shield, all at once. absorbKitShield gives the strike's damage to every live shield, each priced by absorbShieldDamage with the struck character's shield strength, the rule the combat page gives, so the Geo shield's 150% and the shield strength are the combat's. The character takes the least overflow among them as damage to HP, so a shield that holds the whole strike leaves none. The kit keeps no second absorption arithmetic.
  • An enemy strikes the nearest live taunt within its aggro range. selectEnemyTaunt picks, for each enemy on each step, the nearest taunt within ENEMY_AGGRO_RANGE of the enemy, and a taunt with no seconds or no health left is not picked. The taunt takes the damage the strike would deal the active character, as the kit gives a taunt no defence of its own.
  • An enemy's statuses add to the damage of each hit on it. An enemy carries statuses for their seconds, stepped with the enemy. A hit's enemyStatus gives it to each enemy it strikes before the hit's damage is taken, restarting a status of its id, each status's damageTakenBonus adds to the damage bonus the hit reads, its resistanceReduction lowers the enemy's resistance to each element it names, as Enduring Rock's Geo RES does, and its physicalResistanceReduction lowers the Physical RES a physical hit reads, as the Jade Shield's does.
  • The team's effects are the world screen's. The screen holds one KitEffectState, the character on the field steps it, and the enemies and their strikes read its list. A write reassigns the list rather than changing it, as the stepping and the adding do, and the character emits clearKitEffects on a drown, a jump and its unmount, which the screen answers by emptying the list, so a shield or taunt does not outlive a drown, a jump or the character's unmount. A switch clears nothing, so a shield another character cast stands while someone else is on the field.
  • Ayaka's reaches are priced with their offsets, and her fifth strike round her body. gcsim centres her first, second and fourth strikes and her plunges ahead of the body, so each reach is its offset plus its radius, and her third strike's 60-degree fan, centred half a metre behind, reaches 2.3 metres. Her fifth strike is a circle of 0.8 metres gcsim centres on the primary target, which an area does not hold, so it is priced round her body, as Mona's strikes are.
  • Ayaka's charged attack reaches every enemy within 5 metres. gcsim and the wiki lock it on an enemy within 5 metres and strike each enemy within 4 metres of that one, so it is priced as the 5-metre circle round her body, which is provisional until an area holds a target. The wiki's 0.5-second internal cooldown for it is priced under the standard one, the only group a kit's hit is priced under.
  • Soumetsu's storm stands where Ayaka cast it. The wiki's storm moves forward until it meets an enemy, and gcsim centres it on the primary target, and neither gives its speed, so the storm is a summon standing at the cast, its cuts reaching 3.3 metres and its bloom 5. Blizzard Blade Seki no To's two smaller storms stand with it, each at a fifth of its multipliers, reaching 1.8 and 3 metres, as gcsim places them. All three are provisional until a recording measures the storm's path.
  • Senho's infusion runs from the sprint. The kit's onSprint restarts a 5-second Cryo infusion on each step of the sprint, so it runs out 5 seconds after the sprint ends, as the game gives it on her reappearing. An attack ends the sprint in the game, so the infusion over the sprint itself changes no hit. Senho's Cryo application as she reappears is not built, since the hook runs on each step of the sprint and nothing marks where the sprint ends, and A4, which restores 10 Stamina and gives an 18% Cryo DMG Bonus when that application hits, waits on it. Senho's own movement, its fog, its stamina of 10 to start and 15 a second and its crossing of water, is the controller's and is not built.
  • Ayaka's A1 and her other constellations are not built. A1's 30% DMG bonus for her normal and charged attacks has nowhere to go: a buff adds to an element's DMG Bonus, which Hyouka and Soumetsu read too, and a hit's own DMG Bonus is fixed on the hit or added by an infusion, which would change her attacks' element too. C6's charged attack bonus waits for the same reason, C1's cooldown cut on a Cryo hit and C4's DEF reduction have no hook in a hit, and C3 and C5 raise talent levels, which the talents page holds.
  • Jean's reaches are priced with their offsets, and Gale Blade's box to its far corner. gcsim centres her first, fourth and fifth strikes and her charged attack's 160-degree fan ahead of the body, so each reach is its offset plus its radius, and her second and third strikes' fans of 150 and 30 degrees behind it, so each reaches its radius less the offset, 1.7 and 1.8 metres. gcsim's rectangle spawns on its near edge, so Gale Blade's box, 4 wide and 4.1 long from the body, is priced as the circle to its far corner, 4.56 metres.
  • Jean's plunges are provisional. gcsim has no plunge file for her and no table gives their frames, so each lands as its action starts and ends at 0.4 seconds, and reaches 1, 3 and 5 metres, as Mona's do. Their poise and blunt are the wiki's Favonius Bladework.
  • Gale Blade starts on its release, and its hold plays the same blast. gcsim lands the blast 21 frames past the hold, so a hold level from 1 second, and the press under it, start on the release, and the hold is released by itself at the skill group's 5 seconds. The hold's pull and its 20 stamina a second are not built: no enemy is moved by a kit, and a kit drains stamina only while an action plays, not while its skill is held.
  • Spiraling Tempest is an Anemo DMG Bonus for the held blast. From one constellation, a Gale Blade held a second or more plays a variant that adds 40% to Jean's Anemo DMG Bonus for its 46 frames, the hit it lands within, as gcsim adds its 40% to the blast's DMG bonus. The bonus is a buff on Jean, so any other Anemo hit of hers landing in those frames, such as her field's, takes it too. Its faster pull is not built.
  • Dandelion Breeze's field ticks every second from 40 frames, and its first tick is the activation. gcsim heals at 40 frames and regenerates the character on the field every 60 frames from 100 to 640, ten times, as the wiki's notes give, so the field's tick 0 is the activation heal of 251.2% of Jean's ATK plus 1540 and ticks 1 to 10 the regeneration of 25.12% plus 154, each to the character on the field. Neither reads Healing Bonus, as Bennett's does not. The field and its damage live a tenth of a second past 640 frames, so the step that runs the last tick still has them.
  • The activation heal reaches only the character on the field. The wiki heals every party member, but a field's tick reads the character on the field alone, and a member's heal is a share of its own Max HP, which only its combatant holds. Carrying the team's combatants into a tick changes stepKitEffects's context for every kit's tests, so the off-field members' share is left until it does. The field's Anemo on the character in it is not built either, as a character holds no aura.
  • The field's entering and exiting damage strike every enemy inside it as it opens and as it ends. The wiki's notes give one instance of each to all enemies within the field when it is created and when it dissipates, at 78.4% and 2U of Anemo with 50 poise, so a summon standing at the cast lands them at 40 and 640 frames, reaching the field's 6 metres. An enemy walking in or out between is not struck, as gcsim does not track one either.
  • Let the Wind Lead gives its energy at the activation. From Ascension 4 the field's tick 0 adds a fifth of the burst's 80 energy, 16, to Jean, up to its cost; gcsim adds it a frame later, at 41.
  • A party heal may roll without a shield. Wind Companion, from Ascension 1, is the party heal of each of Jean's strikes, unshielded: a 50% roll heals every member by 15% of her ATK, read through healKitParty with an ATK share beside its DEF share. A strike rolls on each enemy it reaches until one heal passes, as Breastplate's does; the wiki's note gives each enemy its own heal, and gcsim rolls once a strike.
  • Jean's other constellations are not built. People's Aegis's ATK SPD and Movement SPD have no attribute here, When the West Wind Arises and Outbursting Gust raise talent levels, which the talents page holds, Lands of Dandelion's Anemo RES cut holds while an enemy stands in the field, which the field does not track, and Lion's Fang's DMG reduction has no hook in an enemy's strike.
  • The Melody Loop is a field with no edge. It rings the character on the field wherever it moves, so its circle is unbounded and each tick reaches the character on the field: the regeneration of 4% of Barbara's Max HP plus 385 at level 1, at 3 frames as the loop starts and every 5 seconds after. The loop lasts the group's 15 seconds and gcsim's extra frame, so its fourth heal, 15 seconds after the first, still falls within it, the four the wiki's notes count. Shining Miracle♪'s heal of 17.6% of her Max HP plus 1694 is an unbounded field too, ticking once at 77 frames. Neither reads Healing Bonus, as Bennett's and Jean's do not.
  • A party heal may scale with its striker's Max HP. The loop's heal on each hit is healKitParty's, with a Max HP share beside its ATK and DEF shares: 0.75% of Barbara's Max HP plus 72 to each member at level 1, and four times that from her charged attack, unshielded. It is certain while a field of hers that ticks on the loop's 5 seconds stands and never otherwise, so her burst's single-tick field does not open it. A strike heals once whatever number of enemies it reaches, as gcsim's does.
  • Shining Miracle♪ heals only the character on the field. The wiki heals every party member, but a field's tick reaches the character on the field alone, as Jean's activation heal does, and while the burst plays that is Barbara herself. The off-field members' heal waits on a tick carrying the team's combatants.
  • Barbara's strikes count under the Normal Attack internal cooldown. The wiki tags them "Barbara Hydro DMG", which no other hit of hers carries, and a cooldown is keyed by character and tag, so a tag of her own would count the same hits. Her charged attack and plunges are under none, as the wiki gives.
  • Barbara's charged attack follows a strike. gcsim skips 14 frames of its windup after a normal attack, so it lands at 41 frames and ends at 75, as Lisa's does. Its circle of 3 metres round a point 5 metres ahead is priced as the 8-metre circle round her body, and her strikes round her body, as Mona's are.
  • Vitality Burst's Hydro DMG Bonus skips Barbara. From two constellations, the loop's first tick gives every other member of the deployed team a 15% Hydro DMG Bonus for the loop's seconds, and her skill's cooldown is multiplied by 0.85 through getSkillCooldownMultiplier. The wiki's constellation page gives the bonus to "your active character"; gcsim gives it to each member but Barbara, which the kit follows, so an off-field member's summon reads it too.
  • Barbara's passives and her other constellations are not built. Glorious Season's 12% stamina cut is not applied: every spend reads the controller's getStaminaConsumptionMultiplier (character controller), but the one the character component passes reads only Impetuous Winds, and no kit effect adds a factor to it while the Melody Loop is up. Encore's extension waits on a gained particle reaching the team's effects, which none does. Gleeful Songs' energy every 10 seconds has no clock that runs while she stands in the party, Attentiveness Be My Power's energy per enemy struck has no hook in a hit, and Dedicating Everything to You's revive has none to call, as a downed member stays down. Star of Tomorrow and The Purest Companionship raise talent levels, which the talents page holds. The loop's Wet is left too: a party member holds no aura, and the ring's Hydro on each enemy it touches every 1.5 seconds follows the body, where a summon stands where it is cast or travels ahead.
  • Razor's Electro Sigils are one Energy Recharge buff. Each press gives a sigil as it starts, up to three, as a buff of the skill group's 20% Energy Recharge a sigil, restarted at its 18 seconds, and the count is read back off the buff. The hold at its hit, 55 frames, and the burst at 7 frames clear them, each sigil giving Razor the group's 5 energy up to his burst's cost, through a field with no edge that ticks once. The wiki and gcsim give a sigil on striking an opponent, but no hit writes the team's effects as it strikes, so the press gives it struck or not. A drop's energy reads the combatant's own Energy Recharge, not its buffs, so the sigils raise no drop's energy yet.
  • Claw and Thunder's hold is reached at half a second, provisionally. No table or wiki page gives the seconds a press must be held to become the hold, so it is Bennett's first Charge Level's 0.5 until the roadmap's Recordings owed list's razor-claw-and-thunder.mkv measures it. The hold plays on its release, its hit and animation gcsim's 55 and 103 frames counted from there. The press's wider fan and later frames during Lightning Fang are not built, so the press and the hold play their frames outside it throughout.
  • The Wolf Within is a field that ends as Razor leaves the field. It stands from Lightning Fang's hit at 32 frames for the burst group's 15 seconds. Its first tick, at the hit, gives Razor the group's 80% Electro RES as a buff, which marks the Wolf Within standing, and resets his skill's cooldown from Ascension 1, as Awakening and gcsim's burst give it. A tick on every step after ends the field and the buff once another character is on the field, as the wiki's "These effects end when Razor leaves the battlefield" and gcsim's swap give it. An enemy's strike is physical here, so the RES changes no damage yet.
  • The Soul Companion is cast by each strike while the Wolf Within stands. A strike's start casts a summon that lands 1U of Electro at the burst group's 24% of the strike's multiplier a frame past the strike's hit, reaching gcsim's circle or box beside each strike with the wiki's poise. gcsim casts it from the strike's hit, so here it lands on whichever enemies its own reach holds, even when the strike misses or is cut short. It is priced under the Elemental Burst internal cooldown: the wiki tags it "Elemental Burst Extra", and no other hit of his carries a burst tag.
  • Lupus Fulguris's recharge is its lightning's summon. From six constellations, a strike while none of his lightning stands casts one, 100% of his ATK as 1U of Electro with the wiki's 69 poise a frame past the strike, which stands until 10 seconds past the strike's hit, so the first strike after it releases the next. Outside the Wolf Within it gives Razor a sigil as it is cast, struck or not, as the press's is. Its reach is the strike's own, since gcsim centres its 1.5-metre circle on the enemy struck, which an area does not hold. A drown or a jump clears it with the team's effects, which charges the claymore again.
  • Razor's charged attack is provisional, as Diluc's is. gcsim does not model it and the wiki gives no frames, so its slashes land at half a second and a second, it ends at a second and a fifth, and the table's 40 stamina a second drains as it plays. Its damage is the wiki's cyclic 62.5% and final 113%, and its poise the wiki's 60 and 120.
  • Razor's areas are priced with their offsets. gcsim centres his strikes, his Soul Companion's hits, the press's 240-degree fan and his plunges a metre or so ahead of the body, so each reach is its offset plus its radius, and the second strike's and its companion's boxes reach their far corners.
  • Razor's passives, his other constellations and his Hexerei kit are not built. The Wolf Within's ATK SPD has no attribute here, its disabled charged attack no hook, as a charged attack starts without reading the team's effects, and its Electro on Razor no place to sit, as a party member holds no aura; its interruption resistance and Electro-Charged immunity have nothing to act on either. Its energy back as Razor leaves the field, up to 10, is not built, as no source gives how the seconds left turn into energy. Hunger's Energy Recharge below half energy has no hook, as a passive bonus reads the combatant alone, which holds no energy, and a drop's energy reads no bonus. Wolvensprint's sprint stamina is not combat. Wolf's Instinct waits on a particle pickup reaching the team's effects, Suppression's CRIT Rate on a hit reading its enemy's HP, and Bite's DEF cut on an enemy status carrying DEF. Soul Companion and Sharpened Claws raise talent levels, which the talents page holds. His Hexerei kit, its Surge of Lightning, its Soul Companion's added 70% of his ATK and its Lupus Fulguris's three sigils and CRIT, waits on the Hexerei team bonus, which nothing here holds; gcsim turns it on by default, and the kit follows the standard kit.
  • Venti's arrows, shots and Wind Domain are priced round his body. gcsim lands each arrow and shot at the primary target through a box a metre long and a tenth wide, and the press's circle of 3 metres on it, which an area does not hold, so each is priced round his body, as Amber's arrows and Mona's strikes are. gcsim's 10 frames of an arrow's flight are not added, as Amber's are not.
  • Skyward Sonnet's press ends at its earliest cancel, and its Wind Domain is a summon. gcsim queues the press's hit 51 frames on, apart from its animation, which every next action cancels at 22 frames, so the press plays 22 frames and its hit lands from a summon cast where Venti stands. The hold's hit lands within its action at 74 frames, and the hold ends at gcsim's earliest cancel, its high plunge at 116 frames: the rise into the air is the controller's and is not built, so the full 289 frames would hold him still through a flight he does not take.
  • Skyward Sonnet's hold is reached at half a second, provisionally. No table or wiki page gives the seconds a press must be held to become the hold, so it is Bennett's first Charge Level's 0.5, as Razor's is, until the roadmap's Recordings owed list's venti-skyward-sonnet.mkv measures it.
  • Venti's plunges are provisional. gcsim models only the high plunge after a held Skyward Sonnet and counts its 58 frames from its start in the air, where this kit starts a plunge's action as it lands, so each plunge hits as its action starts and ends at 0.4 seconds, as Amber's do. The high plunge reaches gcsim's 3.5 metres, and the collision and the low plunge Amber's 1 and 3. Their poise is the wiki's Divine Marksmanship.
  • The Stormeye is a summon 5 metres ahead of where Venti faces. gcsim places it there as the burst starts and lands its 20 ticks every 24 frames from 106, each 1U of Anemo with the wiki's 4 poise, reaching 4 metres round it. Its ticks and the fully charged shot are priced under the standard internal cooldown, though the wiki gives each a cooldown of 1 second over 3 hits, as the standard group is the only one a kit's hit is priced under. The Stormeye's pull of the enemies within 15 metres is not built, as no enemy is moved by a kit.
  • The Stormeye passive gives its energy as the Stormeye's seconds end. From Ascension 4, a field with no edge ticks once 94 frames plus the burst group's 8 seconds after the burst starts, gcsim's 574, and gives Venti 15 energy up to his burst's cost. A drown or a jump before then clears it with the team's effects.
  • Elemental Absorption is not built. The Stormeye absorbs the element of what it touches, as gcsim's absorb check finds an aura within its box, and then deals the burst group's Additional Elemental DMG as that element. A summon's step reads no enemy, a hit's callbacks see no aura, and the strike loop that sees a Swirl's element is the character component's, so nothing tells the Stormeye what it touched. The Stormeye passive's energy for the party members of the absorbed element and Storm of Defiance's cut to that element's RES wait on it.
  • Splitting Gales' arrows land with the shot from a summon. From one constellation, the fully charged shot's start casts two more arrows from where Venti stands, each the wiki's 33% of the shot's multiplier as 1U of Anemo under the Charged Attack internal cooldown with 2 poise, landing at the shot's hitmark. gcsim gives each a third of it.
  • Breeze of Reminiscence and Storm of Defiance are enemy statuses on Anemo RES. From two constellations each Skyward Sonnet hit takes 12% off the Anemo RES of each enemy it strikes for 10 seconds, and from six each Stormeye tick takes 20% for gcsim's 10 seconds, the two adding up. Breeze of Reminiscence's Physical RES is not built: a status lowers an element's RES, and a physical hit reads the enemy's own. Its further cut while an enemy is airborne waits on a launch, which no hit makes.
  • Venti's other passives, his other constellations and his Hexerei kit are not built. Embrace of Winds' upcurrent and Windrider's gliding stamina are the controller's movement, not combat. Hurricane of Freedom waits on a particle pickup reaching the team's effects, as Razor's Wolf's Instinct does, and Ode to Thousand Winds and Concerto dal Cielo raise talent levels, which the talents page holds. His Hexerei kit, its Windsunder Arrows and the Hexerei halves of his constellations, waits on the Hexerei team bonus, as Razor's does.
  • Xiangling's strikes and charged attack are priced as boxes to their far corners. gcsim spawns each strike's box, 1.2 or 1.6 metres wide and 3 or 3.3 long, on its near edge at the body, so each reaches the circle to its far corner, 3.06 to 3.4 metres. Her charged attack's lunge lands gcsim's circle of 0.8 metres on the primary target, which an area does not hold, so it reaches as far as her widest strike box, provisional until an area holds a target. Its hit at 24 frames is gcsim's after a strike, which every charged attack here follows, and its 25 stamina is spent as it starts. Her plunges are gcsim's frames and reaches, counted from the plunge's action as Diluc's and Razor's are.
  • Guoba stands 1.3 metres ahead and breathes round itself. gcsim places Guoba 1.3 metres ahead of where Xiangling faces, 13 frames into the skill, for 438 frames, and lands its four breaths at 126, 226, 326 and 426 frames from the cast; the wiki's notes give 2 seconds and then every 1.5 seconds, and the kit follows gcsim. Each breath is a fan of 60 degrees and 5 metres, 6 from Crossfire at Ascension 1, which gcsim turns to Guoba's closest enemy before it breathes. A summon cannot turn, so the fan is priced as its whole circle round Guoba, provisional until a summon faces its target. From one constellation each breath takes 15% off the Pyro RES of each enemy it strikes for 6 seconds.
  • The Pyronado follows the body on the field. It is a summon whose body stands where the body on the field stands on each step, whoever that is, as the wiki's "The Pyronado will move with your character" gives it and gcsim's ticks round the player do. It ticks every 73 frames from 56 for the burst group's 10 seconds, nine times, or for 14 from Slowbake at four constellations, twelve times, each 1U of Pyro with no internal cooldown and the wiki's 30 poise, reaching 2.5 metres. The wiki's 0.6-second cooldown on each enemy and 1.2-second cycle are gcsim's one tick every 73 frames here, and its 7 or 8 hits on a small enemy are gcsim's nine.
  • Condensed Pyronado reaches Xiangling's own Pyronado. From six constellations, a field with no edge ticks once as the Pyronado starts and gives every member of the deployed team a 15% Pyro DMG Bonus for the Pyronado's seconds, as gcsim's cons.go does. The wiki's note says the bonus does not raise the Pyronado that gave it, which snapshots her stats as it starts; a summon here is priced with the team's buffs as each hit lands, so her Pyronado reads it too.
  • Beware, It's Super Hot!'s chili pepper is a field the body on the field picks up. From Ascension 4, Guoba leaves a field where it stood as its seconds end, for the wiki's 10 seconds, which ticks on each step the body on the field stands within a metre of it: the character on the field gains 10% of its base ATK as flat ATK for 10 seconds, from a source of its own so it stands beside Fantastic Voyage's ATK bonus, and the pepper is gone. The metre is provisional, as no source gives the pepper's reach, and gcsim leaves the pickup's delay to the user.
  • Oil Meets Fire's Implode is a summon cast by the fifth strike. From two constellations, the fifth strike's start casts a summon where Xiangling stands, which lands 75% of her ATK as 1U of Pyro with the wiki's 8.8 poise 120 frames past the strike's hit, reaching what the strike reaches, since gcsim centres its 2-metre circle on the enemy struck, which an area does not hold. It lands on whichever enemies its reach holds then, even when the strike missed, as Razor's Soul Companion does. gcsim's one Implode on an enemy at a time is not kept, since a string's five strikes outlast its 2 seconds.
  • Guoba's aura, its particles, Chef de Cuisine, Deepfry and Guoba Mad are not built. Guoba puts a Pyro aura on itself for gcsim's 30 frames before each breath, which Sucrose's skill and Faruzan's Pressurized Collapse can Swirl and an Anemo absorption can take, but a summon holds no element here. Its particle on each breath waits on a hit that gives particles, as an enemy's HP drops are the only energy a strike gives. Chef de Cuisine is cooking, not combat, and Deepfry and Guoba Mad raise talent levels, which the talents page holds.
  • Beidou's areas are priced with their offsets, and her boxes to their far corners. gcsim centres her first strike's 270-degree fan half a metre ahead and her third's circle and fourth's 270-degree fan a metre ahead, so each reach is its offset plus its radius, 2.5 and 3 metres. It spawns her second's box on its near edge at the body and her fifth's half a metre behind, and both reach 2.5 metres ahead, so each is priced as the circle to that far corner, 2.69 metres.
  • Beidou's charged attack and plunges are provisional. gcsim models neither and the wiki gives no frames, so the charged attack's slashes land at half a second and a second and it ends at a second and a fifth, draining the table's 40 stamina a second as it plays, as Diluc's and Razor's do, and its reaches are gcsim's unimplemented 3.3 and 3.5 metres. Each plunge hits as its action starts and ends at 0.4 seconds, reaching 1, 3 and 5 metres, as Jean's do. Their damage is the table's and their poise the wiki's Oceanborne.
  • Tidecaller plays as its press, its shield standing until its hit. gcsim models the skill as one press: an Electro shield of the group's 14.4% of her Max HP plus 1386 is set as it starts and stands until its hit at 23 frames, which lands 2U of Electro with the wiki's 100 poise, blunt, reaching 6 metres. The hold is not built: a skill with holds starts on its release and nothing runs while it is held, so no shield could stand through the hold, and its bonus of 160% for each of up to two hits taken counts strikes landing on Beidou, which reach the team's shields and never the kit. Retribution, which grants the greatest bonus, and Lightning Storm, which follows it, wait on the hold. Its Electro on Beidou as it activates has no place to sit, as a party member holds no aura, and its particles wait on a hit that gives them.
  • The Thunderbeast's Targe is a summon that follows the body on the field. It stands for the burst group's 15 seconds from Stormbreaker's cast, as gcsim's burst status does, where the body on the field stands, whoever that is, as the wiki's notes give it. Its DMG reduction of 20% is not built, as an enemy's strike reads no DMG reduction, nor is its interruption resistance, which has nothing to act on. The Targe does not end as Beidou falls, as no effect reads a downed member.
  • The Targe's discharge is cast by Beidou's own strikes and charged attack. While the Targe stands at a hit's hitmark, the start of each of her strikes and her charged attack casts a summon where she stands, which lands the burst group's 96% as 1U of Electro under the Elemental Burst internal cooldown with the wiki's 50 poise, a frame past the hit, and stands a second past it: a hit whose hitmark falls within that second casts none, the wiki's one discharge a second. gcsim chains it from the enemy struck to a random other within 8 metres, three hits or five from Upon the Turbulent Sea, the Thunder Arises, which an area can neither pick nor count, so one discharge lands on each enemy its hit's reach holds, even when the hit misses, as Razor's Soul Companion does, and that constellation is not built. The wiki's discharge from every member's normal and charged attacks is not built either: the wiki sets it off as their hits land, and the strike loop where another member's hits land gives no kit a hook. It is priced as it lands, not as the burst snapshots it, as Condensed Pyronado's summon is.
  • Bane of Evil's cut lands from the Targe. From six constellations, the Targe lands a hit of no damage, poise or element every 30 frames from 30 to its end, which takes 15% off the Electro RES of each enemy within 5 metres of the body on the field for 90 frames, as gcsim's burst gives it. As any hit does, a tick sets an idle enemy it reaches on the character. Its Radiance, which cuts Cryo RES and raises the Elemental Mastery of the character on the field while Stormbreaker stands, waits on Stellar-Conduct, a reaction the combat does not hold.
  • Beidou's other constellations and her utility passive are not built. Sea Beast's Scourge's shield would be recast over by Tidecaller's, as a shield is keyed on its caster, and telling two shields of one caster apart is a change to the shield. Stunning Revenge follows a strike landing on Beidou, which never reaches the kit. Summoner of Storm and Crimson Tidewalker raise talent levels, which the talents page holds, and Conqueror of Tides' swimming stamina is not combat.
  • Xingqiu's areas are priced with their offsets, and his boxes to their far corners. gcsim centres his first and second strikes' circles of 1.5 metres 0.8 metres ahead, his third's 0.6 ahead and his fifth's second circle of 2 metres 0.8 ahead, so each reach is its offset plus its radius, 2.3, 2.1 and 2.8 metres, and Fatal Rainscreen's first circle of 3 metres 0.8 ahead reaches 3.8. It spawns his fourth strike's box and his fifth's first, 1 wide and 2 long, on their near edge at the body, so each is priced as the circle to its far corner, 2.06 metres, and Fatal Rainscreen's second box, 3.5 wide and 4.5 long from 1.5 metres behind, as the circle to its far corner 3 metres ahead, 3.47 metres. His charged attack's two slashes are gcsim's circles of 2.2 metres round his body at 8 and 20 frames after a strike, which every charged attack here follows, and its 20 stamina is spent as it starts.
  • Xingqiu's plunges are provisional. gcsim has no plunge file for him and no table gives their frames, so each lands as its action starts and ends at 0.4 seconds, reaching 1, 3 and 5 metres, as Jean's and Beidou's do. Their poise and blunt are the wiki's Guhua Style.
  • Fatal Rainscreen's hits land from a summon. The skill's action has no hits of its own: its start casts a summon where Xingqiu stands, which lands the two hits at gcsim's 12 and 31 frames, each 1U of Hydro with no internal cooldown and the wiki's 120 poise, so the start can choose their multipliers. From four constellations, Evilsoother multiplies both by 1.5 while his Raincutter stands as the skill starts, the Base DMG Multiplier the wiki's constellation page names and gcsim's skill.go applies, which a DMG Bonus buff would not equal. gcsim queues both hits as the skill starts, so they land whatever cancels it, as the summon's do.
  • The Rain Swords are a summon that follows the body on the field. They put 1U of Hydro, with no damage, internal cooldown or poise, on what stands within 1.2 metres of whoever is on the field every 135 frames, the wiki's 2.25 seconds, from 44 frames past the skill or 19 past the burst, as gcsim's orbital.go does, for the skill group's 15 seconds or for Raincutter's. A recast stands them longer only when its seconds outlast what they have left, and their ticks keep the schedule they started on: the wiki's notes give a recast that prolongs them and a burst that holds them to its end, where gcsim's status would cut them back to a recast's 15 seconds inside an 18-second Raincutter, and the kit follows the wiki.
  • The Rain Swords' DMG reduction, interruption resistance and shattering are not built. An enemy's strike on the character on the field reaches the team's shields and its HP and reads no DMG reduction, so the skill group's 20% and its share of Xingqiu's Hydro DMG Bonus have nowhere to go, and nothing tells the kit a strike landed to shatter a sword. The interruption resistance has nothing to act on, and the skill's Wet on Xingqiu has no place to sit, as a party member holds no aura.
  • Hydropathic heals as the Rain Swords end. From Ascension 1, a field with no edge ticks as the Rain Swords' seconds end and heals the character on the field by 6% of Xingqiu's Max HP for each sword, 3, or 4 from The Scent Remained, read as he cast them and not scaled by Healing Bonus. No strike shatters a sword here, so every sword heals at the end: in the game each heals once, as it shatters or as its seconds end, so the heal is the same and only its timing differs. A recast that stands them longer adds a field at the new end, and the old one heals nothing, as the wiki's note gives a prolonged sword no heal, since it neither shattered nor expired.
  • Raincutter is a coordinated summon. It stands for the burst group's 15 seconds, 18 from Rainbow Upon the Azure Sky, and gcsim's 33 frames more, with no hits of its own, and the burst stands the Rain Swords for those 15 or 18 seconds. As whoever is on the field starts a normal attack, it casts a wave of swords where that character stands, landing 20 frames on, unless a wave was cast within the second, the wiki's cooldown. The waves run 2, 3, 2, 3 swords, or 2, 3, 5 from Hence, Call Them My Own Verses, each wave counting those standing since Raincutter began, as each stands until it ends. gcsim's watcher also casts a wave every second the normal attack state goes on, and delays its check 7 frames on Xingqiu's own strikes; neither is kept, as a kit sees an action's start and not that its string is still playing, so a long string casts its next wave on the first strike starting a second after the last. The charged attack and the plunges cast none, as gcsim watches the normal attack state alone, and Raincutter does not end as Xingqiu falls, as no effect reads a downed member.
  • Each sword reaches 5 metres round where its wave was cast, provisionally. gcsim drops each sword as a circle of 0.5 metres on the primary target, which an area does not hold, so a sword reaches the 5 metres an attack targets within, as Ayaka's charged attack does, and strikes each enemy there rather than the one the wiki's notes aim it at. Each is 1U of Hydro under the Elemental Burst internal cooldown with the wiki's 25 poise, priced as it lands rather than as the burst snapshots it, as the wiki's notes give it.
  • Rainbow Upon the Azure Sky and Hence, Call Them My Own Verses act on the swords. From two constellations each sword takes 15% off the Hydro RES of each enemy it strikes for 4 seconds, and from six a wave of five swords gives Xingqiu 3 energy up to his burst's cost through a field with no edge that ticks once as its swords land, struck or not, as Razor's Electro Sigils are, since no hit writes the team's effects as it strikes.
  • Xingqiu's particles, his other constellations, his utility passive and the burst's knockback are not built. The skill's 5 particles wait on a hit that gives particles, as an enemy's HP drops are the only energy a strike gives. Weaver of Verses and Embrace of Rain raise talent levels, which the talents page holds, and Flash of Genius is crafting, not combat. Raincutter's activation knockback, 400 poise with no damage, is not built, as gcsim does not implement it and no source gives its frame, as Kaeya's Glacial Waltz's is not.
  • Bane of All Evil is an infusion that converts Xiao's attacks and carries its DMG Bonus. The burst's action has no hits: as it starts, an Anemo infusion that converts his attacks stands for the burst group's 15 seconds past gcsim's 57-frame start, and each hit it infuses carries the group's 58.45% as its own DMG Bonus. The bonus is the Normal, Charged and Plunging Attacks' alone, so a buff to his Anemo DMG Bonus would raise his dash too. gcsim converts the attacks' element as it snapshots them rather than through a weapon infusion; the wiki names the effect one no other infusion overrides. Each converted hit takes the wiki's converted poise, half as much again, and gcsim's reach under the burst, up to 0.4 metres further on a strike and a metre on a plunge. The burst's 18-second cooldown and 70 energy are the group's.
  • Bane of All Evil ends as Xiao leaves the field, and drains his current HP while it stands. A field ticking every step ends the infusion, the drain and Tamer of Demons' bonus once another character is on the field, as gcsim deletes the burst's status on a swap. Another field takes the group's 3% of his current HP every second from 60 frames past the burst's start, fourteen times, the last a second before the burst ends, as gcsim's burst.go does, so the drain never downs him. The drain and the bonus each act only while the infusion stands, so neither outlasts a swap within the step it happens.
  • Tamer of Demons is an Anemo DMG Bonus. From Ascension 1, a field ticks every 3 seconds from the burst's start and restarts a buff of 5% for each tick so far, up to 25% at 12 seconds, standing as long as the infusion, as gcsim's asc.go counts it. The passive raises all of Xiao's DMG, all of which is Anemo under the burst, so the buff is on his Anemo DMG Bonus.
  • Lemniscatic Wind Cycling's dash lands from a summon. The skill's action has no hits: its start casts a summon where Xiao stands, which lands the dash at gcsim's 4 frames as 1U of Anemo with the wiki's 100 poise, and the skill plays gcsim's 37 frames. gcsim lands the dash as a circle of 0.8 metres on the primary target, which an area does not hold, so it reaches 5 metres round him, provisionally, as Xingqiu's swords do, and the dash's own movement is the controller's, which a kit does not move. The wiki's internal cooldown of 0.1 seconds never holds a dash back, so it carries none.
  • Heaven Fall's stacks are the dashes standing. From Ascension 4, a dash's summon stands for gcsim's 15 frames and 420 more, the life of the stack it gives, and each dash reads its stacks off those standing, up to 3, carrying 15% for each as its own DMG Bonus, and restarts them, as a new stack restarts the effect. gcsim gains a stack a quarter of a second after its dash, where this kit restarts the standing ones as the dash starts, so a stack lapsing within that quarter second lives on here. On the skill's two charges a second dash may fall within the first's 7 seconds, and reads the first's stack as it starts.
  • Xiao's charged attack carries no internal cooldown. The wiki tags it Charged Attack with a 0.5-second timer, which never holds back a thrust that follows a strike and plays 45 frames, so it carries none; gcsim's count of a converted thrust under the Normal Attack cooldown is not followed. It is gcsim's fan of 200 degrees and 3 metres round the body at 16 frames, 3.2 metres converted, and its 25 stamina is spent as it starts.
  • Xiao's areas are priced with their offsets, at gcsim's fan angles. gcsim centres each strike's circle up to 1.1 metres ahead of the body or 0.1 behind it and opens it to a fan of 150 to 360 degrees, so each reach is its offset plus its radius at that angle, 1.7 to 3.1 metres and 1.9 to 3.5 converted, and spawns the first strike's second hit and the fifth strike as boxes on their near edge at the body, each priced as the circle to its far corner. His plunges are gcsim's under the burst, the only ones it models, both landing at 46 frames and ending at 62 and 66, counted from the plunge's action as Razor's are, and reaching 1, 3 and 5 metres, 4 and 6 converted.
  • Xiao's third charge, his jump and his constellations are not built. Lemniscatic Wind Cycling holds its 2 charges, as the skill set, the wiki and gcsim's xiao.go give them, but Dissolution Eon: Destroyer of Worlds' third is not built, as a kit's charges are one count no constellation reads. Bane of All Evil's higher jump is the controller's, which reads no kit, so a high plunge still needs a drop over 2.4 metres; its interruption resistance has nothing to act on, and its infusion is the first on him in the team's list rather than one no other overrides, so Fire Ventures With Me's Pyro, cast before it, would win. The dash's 3 particles wait on a hit that gives particles, his plunges' immunity to fall damage has nothing to spare him from, as the controller deals none, and Transcension: Gravity Defier's climbing stamina is not combat. Annihilation Eon: Blossom of Kaleidos waits on a drop's energy reading a bonus, Transcension: Extinction of Suffering on a passive bonus reading HP, as one reads the combatant alone and that holds none, and Conqueror of Evil: Guardian Yaksha on a hit telling the kit how many enemies a plunge struck. Conqueror of Evil: Wrath Deity and Evolution Eon: Origin of Ignorance raise talent levels, which the talents page holds.
  • Ningguang's strikes are Left and Twirl in turn, and her charged attack is the Left charge. gcsim draws each strike at random from the two of Left, Right and Twirl the last was not, and a kit's step reads no random source, so the string plays Left and Twirl in turn, one such draw, from Left, gcsim's strike after a dash. After either, gcsim plays the faster Left charge, so the kit's one charged attack is exact after every strike. It skips 15 frames of its windup after a strike, so its gem lands at 30 frames, its Star Jades at 40, or 35 for seven, and it ends at 37. Each strike's two gems land 10 frames past gcsim's hitmarks, its default travel, at 39 and 37 frames, and the strikes end at 61 and 66.
  • Ningguang's gems land from summons, priced round her body. Each strike, the charged attack, the skill and the burst casts its hits from a summon as it starts, priced as she stood then, as gcsim snapshots an attack as it queues it, and landing whatever cancels the action, as gcsim's queued attacks do. gcsim centres every gem on the primary target, which an area does not hold, and that target lies within the strikes' 5-metre targeting, so a gem reaches those 5 metres plus its radius: 5.5 for a strike's gem, a Star Jade and a Starshatter gem, 6.5 for the charged attack's, and 8.5 for a strike's gem from Piercing Fragments, from one constellation. Jade Screen's hit is gcsim's circle of 5 metres round the screen itself.
  • A Star Jade is a field gained as a strike's gem strikes. The first of a strike's two gems to strike an enemy gives Ningguang a Star Jade unless she holds 3, as the wiki and gcsim give it on the gem's hit, and gcsim's one guarded callback over both gems gives one a strike: a field with no edge that ticks on every step and ends itself once she has left the field, as gcsim clears the jades on a swap. Her Star Jades are the fields of hers that tick each step. A hit gives its striker something back through its onStrike, run for each enemy it strikes, so a strike whose gems miss gives none. A charged attack fires a shot for every jade she holds beside its own gem, and spends them.
  • Jade Screen is a summon, and Starshatter shatters it into gems priced as she stood when she cast it. The skill's start shatters a screen she has standing, as only one stands, and casts a summon 3 metres ahead of where she faces for gcsim's 1800 frames, which lands the skill's hit round it at 17 frames, 1U of Geo with the wiki's 133.2 poise. Starshatter's start casts its six gems at gcsim's 62 to 124 frames, and shatters a standing screen into six gems more at 154 frames, gcsim's 30 past the last, which gcsim marks as still to measure, from a summon priced by the screen's caster, as gcsim snapshots them with the skill. gcsim checks only that a screen stands, not that it is the wiki's "nearby", and so does the kit. Each gem is the wiki's 1U where gcsim gives 2U.
  • Shock Effect is a field that resets the skill's cooldown and stands as its own gate. From two constellations, a shatter by a recast or by Starshatter casts a field with no edge that ticks once, on the next step. A running cooldown is reset there and the field stands 6 seconds, gcsim's 360 frames, while no shatter casts another; with none running it ends at once, as gcsim marks no reset then. It is the field of hers that ticks once, as a Star Jade ticks each step.
  • Grandeur Be the Seven Stars replaces Ningguang's Star Jades with seven. From six constellations, Starshatter's start sets her jades at 7, which her strikes add none to, and a charged attack fires all seven at gcsim's earlier hitmark for them. The wiki's notes have the seven expire over a time no source measures, and gcsim keeps them, so they stand until fired or until she leaves the field.
  • Ningguang's plunges are provisional. gcsim has no plunge file for her and no source gives their frames, so each lands as its action starts and ends at 0.4 seconds, reaching 1, 3 and 5 metres, as Mona's do. Their gauges and poise are the wiki's Sparkling Scatter's: Geo at 1U with 50 and 100 poise, and the collision Geo at 0U with 5.
  • A skill's charges are the seconds until every one is back. A kit's elementalSkillCharges gives its skill more than one, and the party member's one skill cooldown counts the seconds until all of them are back: each use adds its cooldown, and the skill starts while no more than the other charges' cooldowns are left, which getSkillReadySeconds reads for the step and the HUD alike. That is the game's recharge, a charge at a time, each on the skill's cooldown, as gcsim's charges run, and a skill of one charge waits out the whole cooldown as before. A use adds its cooldown at the kit's multiplier and Impetuous Winds', and the charges' threshold takes Impetuous Winds' alone, which is exact while no kit with charges has a multiplier of its own, as none does. The HUD counts down only while no charge stands, and the count of charges the game draws on the button is not built. Klee's and Xiao's skills hold 2, their skill sets' count, written beside each kit as a kit reads no skill set.
  • Klee's bombs land from summons, priced round her body. Each strike, the charged attack and the skill casts its hits from a summon as it starts, priced as she stood then, as gcsim throws a strike's bomb whatever cancels the strike and queues the charge's and the skill's apart from their actions. gcsim centres every bomb on the primary target, so each reaches round the body the strikes' 5-metre targeting plus its radius, through createTargetedHitArea as Ningguang's gems do: 6 metres for the first two strikes, 6.5 for the third and for a spark, 8 for the charged attack, 9 for a bounce and 7 for a mine. Each strike's bomb lands 10 frames past gcsim's throw, its default travel, at 26, 33 and 47 frames, and the strikes end at gcsim's 34, 41 and 77.
  • Klee's charged attack is the one after a first or second strike. gcsim skips 14 frames of the charge's windup after the first or second strike and none after the third, and an attack held from rest reaches the charge after the first, so the kit's one charged attack skips them: its bomb lands at 72 frames, gcsim's 76 less the 14 plus the travel, and it ends at 99. After the third strike gcsim's bomb lands 14 frames later, which the kit's one charged attack does not play. Its 50 stamina is the table's.
  • Jumpy Dumpty's three bounces all land, and two of its mines at gcsim's default. The skill's summon lands the bounces at gcsim's 71, 111 and 140 frames, each 1U of Pyro and the third, the bomb's explosion, 2U, as Elemental Gauge Theory's character data and gcsim give them where the skill's own page gives 2U throughout, all blunt with the wiki's 40 poise. gcsim lands only the first bounce on one enemy by default, as the bomb bounces on past it, and the kit places no bounce, so each reaches round the body. The wiki's 8 mines go off on contact or after a short time, which no source measures, so two land at 240 frames, gcsim's default delay and its default count of the mines one enemy takes, provisionally. The table's 15 seconds of the mines is not read, and neither the six more mines, their contact nor the first throw's mines going off as a second's are made is built.
  • Sparks 'n' Splash follows Klee and ends as she leaves the field. The burst casts a summon that follows the body on the field, standing gcsim's 146 frames and the group's 10 seconds, whose six waves land at gcsim's 186 to 718 frames, each a spark and two more 12 and 24 frames on, 1U of Pyro under the Elemental Burst internal cooldown with the wiki's 25 poise. The sparks strike the enemies near her, so they follow her and reach 6.5 metres round her body, and they are priced as she cast the burst, where gcsim snapshots 100 frames in. gcsim adds a fourth spark at a 30% chance and a fifth at 50% each wave, where the wiki counts 4, and a summon's hits read no random source, so only the three certain sparks are built. A field ticking every step removes the summon once another character is on the field, as gcsim deletes the burst on a swap.
  • Sparkly Explosion goes off where Klee left. From four constellations, the field that ends the burst casts the explosion from the burst's summon, which stood with the body on the field until the swap: 555% of her ATK as 2U of Pyro with no internal cooldown and the wiki's 120 poise, reaching gcsim's 5 metres round it a frame later, priced as she cast the burst.
  • Blazing Delight's bonus is a field that ticks once. From six constellations, the burst's start casts a field with no edge that ticks on the next step and gives each member of the deployed team 10% Pyro DMG Bonus for 25 seconds, gcsim's 1500 frames, which the next burst restarts. Its 3 energy every 3 seconds to the other members is not built: a field's tick holds no member's kit, so it cannot cap the energy at that member's burst cost.
  • Klee's plunges are gcsim's from Xianyun's lift. gcsim models them only from Xianyun's lift, so the low plunge lands at 47 frames and the high at 48, ending at 67 and 71, counted from the plunge's action as Razor's are, and reaching 3 and 3.5 metres round the body and the collision 1.5. Their gauges and poise are the wiki's Kaboom!'s: Pyro at 1U with 50 and 100 poise, and the collision Pyro at 0U with 5.
  • Klee's passives, her other constellations and her Hexerei kit are not built. Pounding Surprise gives an Explosive Spark at a 50% chance as a strike or the skill deals damage, and neither a kit's start nor its hits read a random source or write the team's effects as they strike, so the Spark, its free and stronger charged attack and its 5-second wait for the next Spark wait on a hit's roll reaching the kit. Sparkling Burst's energy waits on a hit telling the kit it was a CRIT. Chained Reactions' sparks come at a chance that rises with each miss, which no step can roll; their 120% of a spark is the burst group's index 3, which nothing reads yet. Explosive Frags waits on an enemy status lowering DEF, which none does. Exquisite Compound and Nova Burst raise talent levels, which the talents page holds. The 9 frames gcsim adds to the first strike after a skill, a dash or a burst are not built, as a strike reads nothing of what came before it, nor are the skill's 4 particles, which wait on a hit that gives particles. The Hexerei rework of her passive and constellations waits on the Hexerei team bonus, which nothing here holds, as Razor's does.
  • Strategic Reserve, the screen's endurance and Exquisite be the Jade, Outshining All Beneath are not built. Strategic Reserve's 12% Geo DMG Bonus goes to a character entering the screen's box, whose size no source measures, and gcsim gives it on a dash while a screen stands, which no field's tick reads. The screen's endurance, the skill group's 50.1% of her Max HP, and its blocking of projectiles have nothing to act on, as enemies here strike the character on the field or a taunt and fire no projectile, so the screen stands its 30 seconds unless shattered. Exquisite be the Jade's 10% Elemental RES for the characters near the screen reaches no strike, as an enemy's is Physical, and gcsim does not model it. The skill's 3 or 4 particles wait on a hit that gives particles, Majesty Be the Array of Stars and Invincible Be the Jade Screen raise talent levels, which the talents page holds, and Trove of Marvelous Treasures is not combat.
  • Zhongli's areas are priced with their offsets, at gcsim's fan angles, and his boxes to their far corners. His second and fourth strikes are circles of radius 2 and 1.7 centred 0.8 and 1.8 metres ahead, the second a fan of 180 degrees, each priced as its offset plus its radius, and his other strikes boxes from 0, 0.5, -1 and 0.2 metres ahead, each priced as the circle to its far corner. The charged attack's circle of 0.8 on the primary target is priced round his body at the targeting's radius plus its own, as Klee's bombs are. His plunges are provisional: gcsim has no plunge file for him and no source gives their frames, so each lands as its action starts and ends at 0.4 seconds, reaching 1, 3 and 5 metres, as Xingqiu's do, with the wiki's Rain of Stone poise.
  • A Stone Stele is a summon 3 metres ahead of Zhongli. It lands its 2U as it rises, 24 frames into the press and 48 past the hold's release, and resonates 1U every 120 frames from 120 after for gcsim's 1860 frames, a second past the wiki's 30, as an 8 metre box centred on it, priced as the circle to its corner. A press with the most steles standing ends the newest of them as its own lands, since gcsim's construct handler replaces the last construct of a kind, and a hold casts one only while fewer stand, as the wiki's Dominus Lapidis gives it. The hold is reached at half a second, provisionally, as Razor's and Venti's are. The stele's resonance with other Geo constructs, its blocking and its climbing are not built, as no construct stands in the world.
  • The Jade Shield is cast at the hold's hitmark, and its RES cut lands from a following summon. A field that ticks once at 48 frames casts the shield, a Geo shield on the team of the group's flat health and share of Zhongli's Max HP for the group's seconds, absorbing every element at the Geo shield's 150%. Its cut lands from a summon following the body on the field: every 18 frames from a frame past the cast, a hit of no damage and no poise gives each enemy within 7.5 metres, and 10 metres high, a status taking 20% off every Elemental RES and the Physical RES for a second, as gcsim's shield.go gives it, and a field ticking every step ends the summon once the shield is spent or recast. Being hits, the cuts engage an enemy they reach, as the Rain Swords' touch does, and under Enduring Rock they give its Geo RES cut too, where the game's cut does neither.
  • Dominance of Earth is each hit's additive base damage. A hit may carry additiveBaseDamageBonus, read from its striker as it is priced and added to its base damage beside a catalyze's, as the wiki's Additive Base DMG Bonus is. From Ascension 4 Zhongli's normal, charged and plunging attacks add 1.39% of his Max HP, a stele's hits and the hold's 1.9%, and the meteor 33%, and a summon's hits read it from him as he stood when he cast it, as gcsim's stele snapshots its flat damage.
  • Planet Befall lands from a summon 5 metres ahead. Its circle of radius 7.5, 9 from four constellations, lands at 101 frames, and from two constellations the burst casts a Jade Shield as it starts, where gcsim casts it, though the wiki's constellation page has it as the meteor descends. Petrification, and so Topaz, Unbreakable and Fearless' longer one, is not built, as nothing holds an enemy in place.
  • Resonant Waves, Chrysos, Bounty of Dominator and Zhongli's other constellations are not built. Both act as the Jade Shield takes damage, and a shield runs nothing as it absorbs a strike, which Beidou's bonus on hits taken waits on too. The hold's drain of Geo from enemies and ores and its interruption resistance are not built, the skill's particles wait on a hit that gives particles, Jade, Shimmering through Darkness and Lazuli, Herald of the Order raise talent levels, which the talents page holds, and Arcanum of Crystal is not combat.

Key files

FileRole
packages/genshin-world/src/models/character/SkillDepot.tsA skill set: its skill's cooldown and charges, its burst's cooldown, cost and element
packages/genshin-world/src/models/character/CharacterSkillKit.tsA playable character's skill sets by its id
scripts/src/services/genshinAssets/stats/getCharacterSkillKits.tsEvery playable character's skill sets, from the dump's tables
scripts/src/services/genshinAssets/stats/toSkillDepot.tsOne skill set, from its depot row and the skill rows
scripts/src/services/genshinAssets/stats/toTalentTables.tsEach character's talent groups: their levels, parameters and labels, apart
scripts/src/services/genshinAssets/stats/writeTalentTables.tsEach character's chunk and the loader map the world imports them through
packages/genshin-world/src/generated/stats/characterSkillKits.jsonThe written table the app loads on demand
packages/genshin-world/src/generated/talentMultipliers/Each character's multipliers per level, loaded on demand as the character joins
packages/genshin-world/src/services/kit/readTalentMultipliers.tsThe loaded characters' multipliers, checked and merged by proud skill group
packages/genshin-world/src/services/kit/getTalentMultiplier.tsA talent's parameter at a level, by its index
packages/genshin-world/src/services/kit/selectAttackTarget.tsThe targeting score an action turns the body to
packages/genshin-world/src/services/kit/characters/travelerKit.tscreateTravelerKit, the Traveler's Anemo kit over the loaded multipliers
packages/genshin-world/src/services/kit/characters/bennettKit.tscreateBennettKit, Bennett's kit with Passion Overload's Charge Levels and Fantastic Voyage's field
packages/genshin-world/src/services/character/getCharacterWeaponType.tsThe kind of weapon a roster character wields, read off the character table
packages/genshin-world/src/models/kit/KitSkillHold.tsA skill's hold level: its action, cooldown and the seconds held to reach it
packages/genshin-world/src/models/kit/KitStepContext.tsWhat a step reads beyond its input: the body, the combatant and the team's effects
packages/genshin-world/src/models/enemy/EnemyStatus.tsAn enemy's status: its id, the seconds left of it, the DMG taken it adds to each hit and the RES it takes off
packages/genshin-world/src/services/enemy/addEnemyStatus.tsGives an enemy a status, restarting the one it already holds of its id
packages/genshin-world/src/services/kit/effects/stepKitField.tsA field's schedule, run on each step, ticking while the body stands in it
packages/genshin-world/src/services/kit/characters/monaKit.tscreateMonaKit, Mona's kit with Mirror Reflection's summon, the bubble and its Omen, A1's phantom and A4's bonus
packages/genshin-world/src/services/kit/characters/amberKit.tscreateAmberKit, Amber's kit with Baron Bunny's taunt and Fiery Rain's summon
packages/genshin-world/src/services/kit/effects/stepKitTaunt.tsA taunt's explosion, once its seconds or its health run out
packages/genshin-world/src/services/kit/selectEnemyTaunt.tsThe taunt an enemy's aggro picks, as the enemies page sets out
packages/genshin-world/src/services/kit/characters/kaeyaKit.tscreateKaeyaKit, Kaeya's kit with Glacial Waltz's icicles
packages/genshin-world/src/services/kit/characters/lisaKit.tscreateLisaKit, Lisa's kit with Violet Arc's hold and Conductive stacks, and Lightning Rose's discharges
packages/genshin-world/src/services/kit/readKitStackedHit.tsA stacked hit's multiplier and poise by the stacks on an enemy, which the hit consumes
packages/genshin-world/src/models/kit/KitStackedHit.tsA hit whose multiplier and poise are set by the stacks of a status on the enemy it strikes
packages/genshin-world/src/services/kit/characters/noelleKit.tscreateNoelleKit, Noelle's kit with Breastplate's shield, heal and constellations, and Sweeping Time's buffs and converted poise
packages/genshin-world/src/services/kit/characters/ayakaKit.tscreateAyakaKit, Ayaka's kit with Soumetsu's storms and Senho's infusion
packages/genshin-world/src/services/kit/characters/jeanKit.tscreateJeanKit, Jean's kit with Gale Blade's hold, Dandelion Breeze's field and damage, and A1's party heal
packages/genshin-world/src/services/kit/characters/barbaraKit.tscreateBarbaraKit, Barbara's kit with the droplets, the Melody Loop's field and party heal, and Shining Miracle♪'s heal
packages/genshin-world/src/services/kit/characters/razorKit.tscreateRazorKit, Razor's kit with the Electro Sigils, the Wolf Within and its Soul Companion, and Lupus Fulguris's lightning
packages/genshin-world/src/services/kit/characters/ventiKit.tscreateVentiKit, Venti's kit with Skyward Sonnet's Wind Domain, the Stormeye and its passive's energy, and Splitting Gales
packages/genshin-world/src/services/kit/characters/xianglingKit.tscreateXianglingKit, Xiangling's kit with Guoba and its chili pepper, the following Pyronado, and Oil Meets Fire's Implode
packages/genshin-world/src/services/kit/characters/beidouKit.tscreateBeidouKit, Beidou's kit with Tidecaller's shield, the Thunderbeast's Targe and its discharges, and Bane of Evil's cut
packages/genshin-world/src/services/kit/characters/xingqiuKit.tscreateXingqiuKit, Xingqiu's kit with Fatal Rainscreen's Rain Swords and Hydropathic's heal, and Raincutter's sword rain
packages/genshin-world/src/services/kit/characters/xiaoKit.tscreateXiaoKit, Xiao's kit with the dash and Heaven Fall's stacks, and Bane of All Evil's infusion and drain
packages/genshin-world/src/services/kit/characters/ningguangKit.tscreateNingguangKit, Ningguang's kit with her Star Jades, Jade Screen, Starshatter's gems and Shock Effect's reset
packages/genshin-world/src/services/kit/characters/kleeKit.tscreateKleeKit, Klee's kit with Jumpy Dumpty's bounces and mines, the following Sparks 'n' Splash and Sparkly Explosion
packages/genshin-world/src/services/kit/characters/zhongliKit.tscreateZhongliKit, Zhongli's kit with the Stone Steles, the Jade Shield and its RES cut, and Planet Befall's meteor
packages/genshin-world/src/services/kit/getSkillReadySeconds.tsThe seconds before a skill can be used again, read off the seconds until every charge of it is back
packages/genshin-world/src/services/kit/createTargetedHitArea.tsA hit gcsim centres on the target, priced round the body at the targeting's radius plus its own
packages/genshin-world/src/services/kit/effects/absorbKitShield.tsEvery live shield on the team takes an enemy's strike through the combat's absorption
packages/genshin-world/src/services/kit/effects/stepKitSummon.tsA summon's clock, moving a following or travelling summon and landing the hits whose hitmarks fall within each step
packages/genshin-world/src/services/kit/effects/coordinateKitSummons.tsSets each coordinated summon going as the character on the field starts a normal attack
packages/genshin-world/src/services/kit/characters/dilucKit.tscreateDilucKit, Diluc's kit with Searing Onslaught's chain, Dawn's infusion and phoenix
packages/genshin-world/src/models/kit/KitSkillChain.tsA skill's follow-up presses and the window each press leaves open
packages/genshin-world/src/services/kit/CharacterIdCreateKitMap.tsEach built character's kit factory by avatar id, read by the roster
packages/genshin-world/src/services/kit/effects/healKitStriker.tsHeals the character that struck an enemy by a hit's share of its ATK, per enemy struck
packages/genshin-world/src/models/kit/KitEffectState.tsThe team's effects, held on one owner so each write reassigns the list
packages/genshin-world/src/services/kit/effects/addKitEffect.tsAdds an effect, refreshing one of its kind on the same character from the same source
packages/genshin-world/src/services/kit/effects/createKitSummon.tsBuilds a summon cast where its body stands, landing its hits from there, for its seconds or a tenth past its last hit
packages/genshin-world/src/services/kit/effects/stepKitEffects.tsRuns the effects' seconds down and drops those that run out
packages/genshin-world/src/services/kit/effects/getKitInfusion.tsThe infusion on a character's normal attacks, charged attack and plunges, if one is on it
packages/genshin-world/src/models/kit/KitBubble.tsA bubble holding an enemy: its seconds, its explosion and its Omen, until it bursts
packages/genshin-world/src/services/kit/effects/strikeKitBubble.tsA hit's bubble: a poise hit bursts the enemy's, and a casting hit holds the enemy in one
packages/genshin-world/src/services/kit/effects/stepKitBubble.tsA bubble's clock: its burst, and the explosion on its enemy alone
packages/genshin-world/src/services/kit/effects/stepKitShield.tsA shield's explosion, from the body on the field, once its seconds run out or its health is spent
packages/genshin-world/src/services/kit/effects/healKitParty.tsRolls a hit's party heal under a shield or unshielded, healing each member by a flat HP and ATK, DEF and Max HP shares
packages/genshin-world/src/models/kit/KitPartyHeal.tsA hit's party heal: its chance, ATK, DEF and Max HP shares, flat HP and whether it needs a shield
packages/genshin-world/src/services/kit/effects/infuseKitHits.tsInfuses a step's landed hits from the kit's normal attacks, charged attack and plunges
packages/genshin-world/src/services/kit/effects/getBuffedCombatant.tsThe combatant with its buffs added to the pricing
packages/genshin-world/src/services/kit/constants.tsThe targeting weights, the kit's shared timing constants and the radius of a field with no edge
packages/genshin-world/src/services/party/healPartyMember.tsHeals a standing member up to all its HP

Sources

Details

Command palette

Keyboard shortcuts