Hits mechanism is a commonly used algorithm in games for determining attack hits.
- Hits mechanism refers to multiple HitStructs, each HitStruct has at least one HitPtr and at least one DmgSrc.
- The hit mechanism in Warframe is very extensive and complex.
Hits Structure[]
- A HitStruct is a structure that groups HitPtrs for management.
- A HitStruct represents a segment of health reduced from an enemy when a single attack hits the enemy.
- For example, if you shoot an enemy twice with a Karak, the enemy will lose two segments of health corresponding to two HitStructs. If you shoot the enemy only once, the enemy will lose one segment of health corresponding to one HitStruct.
- If multiple DmgSrcs hit the enemy at different times, multiple HitStructs will be created.
- StatusPtrs are all determined based on the number of HitPtrs in a HitStruct.
- MainPtrs that hit the enemy simultaneously will establish their own HitStruct, and there may be more than one HitStruct.
- Because StatusPtrs calculate their count based on HitStructs.
Hit Pointer Structure[]
- A HitPtr is a structure that groups DmgSrcs for management.
- HitPtrs are divided into MainPtr and OtherPtr.
- The total number of HitPtrs is calculated based on MainPtrs.
- OtherPtrs must be attached to a MainPtr to exist (OtherPtr refers to any ability beyond MainPtr that can increase the number of HitPtrs).
- HitPtr is also a structure, and it exists within each HitStruct to control the number of DmgSrcs. MainPtrs are generally determined by ammunition consumption, while OtherPtrs increase the number of HitPtrs based on MainPtrs.
- For example, Kuva Quartakk Burst-Fire While Aiming consumes 4 ammo, resulting in 4 HitPtrs; these 4 HitPtrs are all MainPtrs.
- For example, Tenet Envoy, when a projectile hits an enemy, it generates two MainPtrs: one AoE attack and one direct projectile hit.
- Many Continuous Weapon consume only 0.5 ammo per shot, so consuming 1 ammo will result in two MainPtr structures.
- Melee HitPtrs separate the left-hand and right-hand parts of dual-wielding weapons. For example, Kronen Heavy Attack hitting an enemy will produce two MainPtrs: one for the left-hand weapon and one for the right-hand weapon.
Damage Source[]
- DmgSrc, i.e., Damage Source, represents each individual hit of an attack; these are grouped and managed by HitPtrs.
- The total damage of a HitPtr is the sum of damage from all its projectiles.
- For example, if a weapon has Multishot of 2.1, and two projectiles are fired, the HitPtr damage is calculated as 2 times the damage at Multishot = 1. If three projectiles are fired, the HitPtr damage is 3 times the damage at Multishot = 1.

The number of hits from attacking enemies
- For example, Cernos Prime has a Multishot of 3. Assuming the total damage is 9000, that total damage is the total HitPtr damage. With 3 projectiles, the HitPtr divides that total damage into 3 DmgSrcs, each projectile dealing 3000 damage.
HitStruct Example[]
- For example, activating Xata's Whisper and using a Kuva Quartakk equipped with max-ranked Split Chamber and unranked Vigilante Armaments Burst-Fire While Aiming, all 8 projectiles hit the enemy.
- These projectiles will be grouped separately into two HitStructs.
- Xata's Whisper HitPtrs are generated as OtherPtrs based on MainPtrs.
Projectile :
Xata's Whisper :

Kuva Quartakk Hits Structure
- Cernos Prime has a Multishot of 3, meaning 3 projectiles.
- For example, a Karak has one projectile; if Multishot is increased to 3, it will behave the same as Cernos Prime's HitStruct.
- For example, with Xata's Whisper activated and 200% Multishot bonus on Karak, or no Multishot bonus on Cernos Prime, all 3 projectiles hit the enemy.
Projectile :
Xata's Whisper :
MainPtr Structure Differences[]
The HitPtr structure mainly divides into AoE attack hits and projectile attack hits, but fundamentally they are the same.
- Projectile attacks, such as Lato’s hitscan shot, Synapse’s hitscan shot, Quassus Heavy Attack projectiles, etc.
- AoE attacks, such as Tenet Envoy’s AoE (excluding projectiles), Kronen’s melee attack, Tenet Exec’s Slam Attack, etc.
MainPtr classification :
- HitPtr determination is divided primarily into two categories: Projectile HitPtr and AoE HitPtr.
- AoE attacks divide into melee attacks and other AoE attacks.
- Projectile attacks divide into hitscan attacks and other projectile attacks.
- Melee weapons’ melee attacks are treated as AoE attacks similarly; however, if dual-wielded, each weapon’s each attack counts as one HitPtr structure.
Hits Detection[]
- HitDetection, that is, the hit determination method of MainPtr.
- Projectile Detection: Has a physical carrier and requires physical contact with the target to deal damage.
- Hitscan Detection: Checks if a target exists and deals damage instantly upon firing.
- AOE Detection: Checks if targets exist within a circular Hitscan range and deals damage.
- Melee Detection: Creates sequential detection zones in a fan-shaped area, scanning from the attack's origin to termination. This is a delayed multi-hit Hitscan, where each segment checks for targets and deals damage.
GameTick Time Determination[]
Every GameTick organizes MainPtrs that hit enemies into multiple HitStructs.
- Warframe's GameTick is related to frame rate.
Frame Mechanism[]
Tick
- Tick refers to GameTick, the game's internal time unit representing the duration required for each game state update.
- Each tick can only process events that have already occurred. Pending and upcoming events are deferred to the next tick.
- If events from the previous tick remain unprocessed, stuttering (frame drop) occurs, and these events are carried over to the next tick for calculation.
Time
- Time represents CPU latency, measured as the duration between the start of one tick and the start of the next tick.
- Other factors affect frame intervals. In Warframe, this duration corresponds to the "time" value displayed in the frame rate counter.
Tick Rate
- Tick rate denotes the number of ticks per second, reflecting the refresh frequency of ticks.
Other Hardware Factors
- Hardware factors (including Time and other components) extend the latency between ticks. Time is the primary factor, but other hardware-induced delays also contribute.
- Time and other hardware factors collectively increase the inter-tick delay duration.
GameTick Time Formula[]
Warframe's tick calculation formulas:
- If ≥2 MainPtrs hit during 1 tick: They split into two HitStructs. The first MainPtr forms the first HitStruct in this tick, while all remaining MainPtrs form the second HitStruct. This occurs with 0-attack-interval weapons like Quartakk's Burst-Fire.
GameTick Application[]
- Judgments are categorized as Group-based or Individual-based:
- Group judgment (e.g. Secondary Enervate): Within the same tick, simultaneously dealing one or two HitStructs to multiple enemies can only apply one or two stacks of Enervate respectively.
- Individual judgment (e.g. Cascadia Empowered): Within the same tick, simultaneously dealing one or two HitStructs to multiple enemies can apply one or two effects to each enemy respectively.
Effects That Increase HitPtrs and Their Classification[]
HitPtr Ability Types[]
The ability type of Hit Ptr :
- This is a rough classification of HitPtrs; further classification follows below.
MainPtr Abilities[]
- MainPtr refers to the weapon’s own HitPtr.
- ClonePtr essentially replicates MainPtr; it is actually also a MainPtr, but since it cannot be affected by AddPtrs, it can only gain HitPtrs through HitAtk-type abilities, which is why they are distinguished.
Add-type Abilities[]
- Xata's Whisper, Toxic Lash, and Resupply are essentially the same: when activated, they add HitPtrs.
- Melee Duplicate differs from other Add-type abilities; it has a trigger condition—it must be a basic critical hit and has a chance to proc.
- The damage replication priority of Melee Duplicate is defined.
HitAtk-type Abilities[]
- Tornado HitPtr adds up to 3 HitPtrs by copying and propagating the DmgSrcs of the HitPtrs it hits.
- Funnel Clouds HitPtr adds 8 HitPtr by copying and propagating the DmgSrcs of the HitPtrs it hits.
Status-type HitPtr[]
- Status-type AoE damage HitPtr currently refers to Blast conditions; upon resolution, each stack causes AoE damage to enemies, and each stack counts as one HitPtr.
- Each HitStruct can have at most as many Status-type AoE damage HitPtrs as the current maximum stacks on the enemy.
- DoT means periodic damage over time.
- Each HitStruct can have only one DoT-type HitPtr of the same condition type.
- Each HitStruct can have at most as many Blast HitPtrs as the enemy’s Blast stack limit.
- In Status-type HitPtr, within a single HitStruct, Slash DoTs merge into one DmgSrc regardless of how many DmgSrcs there are.
- Resupply cannot attach an independent DotPtr for elements.
- Heat DoT can only have one HitPtr due to its unique inheritance mechanism.
HitPtr Summary[]
Main-type HitPtr:
- MainPtr is the basis for all HitPtr abilities; without MainPtr, other abilities cannot add HitPtrs.
Clone-type HitPtr:
- Refers to Hall Of Mirrors clones; each clone replicates the WFMain’s weapon, creating a MainPtr belonging to the clone when attacking.
- Clone-type HitPtr can only increase its number of HitPtrs through HitAtk-type abilities.
Add-type HitPtr:
- Adds extra HitPtrs to MainPtr, attached to MainPtr.
HitAtk-type HitPtr:
- Adds HitPtrs based on the number of HitPtrs hit by HitPtrs with physical attack effects.
- HitPtrs with physical attacks: ClonePtr, MainPtr.
Status-type HitPtr:
- Status-type HitPtrs and OtherPtrs operate on different timelines and need to be calculated separately.
- Each HitStruct can have only one DoT-type HitPtr of the same condition.
- Each HitStruct can have at most as many Blast-condition HitPtrs as the enemy’s Blast stack limit.
HitPtr Count Formulas[]
- If an ability that increases HitPtr is active, count it as 1; if not, count as 0. Thus, they appear as (0~1) in the formulas.
Single MainPtr Count Formula[]
Add-type HitPtr Formula[]
AddType Formula Expanded :
AddType Formula :
HitAtk-type HitPtr Formula[]
- Each Tornado counts as one HitAtk-type HitPtr, up to 3 Tornados.
- Each Funnel Clouds counts as one HitAtk-type HitPtr, up to 8 Tornados.
HitAtktype formula Expanded :
HitAtktype formula :
ClonePtr Count Formula[]
- Hall Of Mirrors clone attacks cannot have HitPtrs added by Add-type abilities but can increase HitPtrs by hitting enemies with HitAtk-type abilities like Tornado.
- Each clone’s attack replicates that attack’s MainPtr, so clones have their own MainPtr counted as ClonePtr.
- To calculate the number of ClonePtrs, determine how many clones exist, whether each clone hit the enemy, and how many HitAtk-type HitPtrs each clone hit produced.
Clone hit count determination for one clone formula Expanded :
Clone hit count determination for one clone formula :
The number of HitAtk-type that were hit by a single clonehit formula Expanded :
The number of HitAtk-type that were hit by a single clonehit formula :
- [The Clone and HitAtk-type final count formula], abbreviated as [Clone Final HitPtr Count Formula].
- Note: These Hall Of Mirrors clone formulas depend on a single MainPtr of the current weapon.
- Up to 6 clones, so each ClonePtr’s replicated single MainPtr’s final HitPtr count must be calculated according to the actual situation.
- For example, Kuva Quartakk Burst-Fire While Aiming has 4 MainPtrs hit in one attack; the [Clone Final HitPtr Count Formula] can only calculate one MainPtr from the 4 MainPtrs in each replicated attack per clone.
- Kuva Quartakk is cloned by Hall Of Mirrors into 2 clones; each clone fires 4 ClonePtrs, so that one Burst-Fire While Aiming attack requires calculating the [Clone Final HitPtr Count Formula] 8 times to determine how many HitPtrs Hall Of Mirrors added.
Single MainPtr Final HitPtr Count Formula[]
- Each weapon’s each main attack needs its own determination of how many MainPtrs appear.
- For example, projectile attacks, melee attacks, other AoE attacks must be calculated separately.
- For example, Stropha’s attack: maintaining very close range to the enemy and attacking produces one melee attack and one projectile attack, which is 2 MainPtrs. If multiple abilities are used, each MainPtr’s final HitPtr count must be calculated independently.
- Note: Each MainPtr must use the formula below to calculate its final HitPtr count.
- For example, Kuva Quartakk Burst-Fire While Aiming has 4 MainPtrs; each of these 4 MainPtrs must be calculated separately using the formula below, then summed to get the total HitPtrs.
Single MainPtr final count formula Expanded :
Single MainPtr final count formula :
This is the of one of the clones in the Hall of Mirrors formula
Hall Of Mirrors Single Clone Formula :
Hall Of Mirrors Single Clone Formula Expanded :
- Each weapon’s MainPtr must calculate HitPtrs independently.
- For example, Sampotes’ Heavy Slam Attack wave, Tenet Exec’s Heavy Attack wave.
- Sampotes Heavy Slam Attack has 13 MainPtrs; each slam wave must independently calculate HitPtr count.
- Multiple additional AoE attacks that increase HitPtrs can only be DmgSrcs and cannot calculate HitPtrs independently.
Status-type HitPtr Formula[]
- Note: DoT-type HitPtr count is determined by the number of HitStructs.
- For example, two different HitStructs trigger SlashCondition, ToxicCondition, ShockCondition, HeatCondition, GasCondition ; regardless of how many DmgSrcs caused these conditions or how many stacks。
- The GasCondition can only have a maximum of 10 GasConditionDoT because it has a level limit.
- Since there are two HitStructs, there are two GasConditionDoTPtr.
- The SlashCondition, ShockCondition, and ToxicCondition can only have a maximum of 2 DoTPtr of the same type of abnormal condition because there are only 2 HitStruct.
- The HeatCondition can only be 1 HeatConditionDotPtr because of its unique inheritance mechanism.
- The GasCondition can only have a maximum of 10 GasConditionDoT because it has a level limit.
- For example, two different HitStructs trigger SlashCondition, ToxicCondition, ShockCondition, HeatCondition, GasCondition ; regardless of how many DmgSrcs caused these conditions or how many stacks。
- ote: Within the same HitStruct, Slash DoT will merge into a single DmgSrc. The same applies to ShockDot and ToxicDot.
- Heat DoT can only have one HitPtr due to its unique inheritance mechanism.
Blast condition resolution HitPtr formula :
DoT condition resolution formula for one HitStruct:
One HitStruct's DoT Condition Resolution Formula:
HeatDoT's HitStruct Expanded:
HeatDoT's HitStruct Formula:
ReboundPtr[]
- If MainPtrs bounce off a surface and hit an enemy again, a ReboundPtr will be created.
- MainPtrs include: weapon’s MainPtrs and Hall Of Mirrors ClonePtrs.
- ReboundPtr counts as a MainPtr; most ReboundPtr hit timings almost never overlap with other MainPtr hit timings.
- ReboundPtr inherits the Add-type ability bonuses of its MainPtr.
- For example, with Xata's Whisper active, firing Cyanex once: MainPtr has 1 AoE HitPtr and 1 Projectile HitPtr; AddPtrs are 2 Xata's Whisper HitPtrs. When that hits an enemy and bounces to hit again, it will again deal 1 AoE HitPtr and 1 Projectile HitPtr plus 2 Xata's Whisper HitPtrs.
- ClonePtr cannot have AddPtrs; so Clone-generated ReboundPtrs can calculate HitPtr counts based on HitAtk-type abilities.
- Because ReboundPtr is on a different timeline than OtherPtrs mainPtrs , a ReboundPtr count formula cannot be derived.
Supplement[]
- Xata's Whisper, Toxic Lash, Resupply, Melee Duplicate each count as 1 in HitPtr calculations.
- Tornado counts as 1~3 in HitPtr calculations.
- Funnel Clouds counts as 1 in HitPtr calculations.
- Hall Of Mirrors clones count as 0~6 clones based on actual number. (Some weapons like Syam’s Heavy Attack can use 6 clones to attack.)
- BlastCondition resolution counts as the number of stacks at resolution time for Status-type HitPtr, with Resupply’s Status-type separate.
- Hall Of Mirrors will clone 0 to 6 WF clones that follow WFMain’s attacks from different positions depending on weapon, making hit counts unstable.
- AoE attack and projectile attack HitPtrs are different MainPtrs and must be calculated separately.
- Each attack hit’s HitPtr count must be calculated independently (i.e., attacks hitting at different times).
- Status-type Condition calculations must be separate because those formulas operate on the HitStruct timeline, not the others.
- Each weapon’s each attack counts as 1 MainPtr. For example, Kronen performing two Heavy Attacks counts as 4 MainPtrs.
- Each HitStruct can have only one HitPtr of the same condition type.
- In the HitStruct, the SlashDot in the Dot class of Ptr will, regardless of the number of DmgSrcs, combine all the DmgSrcs of SlashDot into a single DmgSrc if they are within the same HitStruct.