Guide
Game bullet hit tagging and movement slow penalty systems explained
Harbor Flux launched ranked rifle duels where the optimal play was a full-speed wide swing: peek, body-tap twice, and strafe back behind cover before the holder’s second shot could settle. Damage landed, but movement speed never dropped — only self-inflicted accuracy penalties punished the peeker, and counter-strafe friction recovered in 0.09 s. Holders filing “I hit them first but they escaped” tickets accounted for 56% of rifle deaths at mid range despite healthy hit registration and fair peeker’s-advantage tuning.
Designers added server-authoritative hit tagging: each confirmed bullet hit applies a movement slow stack keyed by weapon class and body zone, capped and decayed on a timer independent of damage-over-time effects. Wide-peek escape rate after taking first hit fell from 56% to 11%; tap-fire and holding angles became viable again without raising time-to-kill on committed fights. This guide explains tagging as duel pacing, the server tag FSM, weapon and armor modifiers, UI telegraphs, the Harbor Flux refactor, a technique decision table, pitfalls, and a production checklist alongside directional hit feedback systems.
Tagging is not movement accuracy penalty
Two different systems slow players in tactical shooters, and shipping only one produces the Harbor Flux wide-peek bug:
| System | Trigger | Who it punishes | Typical duration |
|---|---|---|---|
| Movement accuracy penalty | Your own velocity while firing | Peeker who does not counter-strafe | Until you decelerate below threshold |
| Hit tagging (movement slow) | Enemy bullet confirms damage on you | Victim (and sometimes shooter on leg shots) | Fixed decay timer per stack, often 0.2–0.75 s |
Hit tagging answers: “If I land a body shot on someone sprinting wide, do they still outrun my follow-up?” Without tagging, damage is informational but movement stays max — duels become races to who can cancel peek momentum faster. With tagging, the first connect buys the holder time to finish the trade even when corner peek geometry favors the aggressor.
Design goals tagging serves
- Punish wide swings — full-speed peeks must pay a reposition cost after being touched.
- Reward tap fire — first-shot accuracy matters more when one tag changes the chase outcome.
- Balance SMG vs rifle — light tags on SMG bursts vs heavy tags on rifle body shots shape range bands.
- Throttle jiggle spam — repeated shoulder peeks that clip hitboxes accumulate slow without killing on chip damage.
- Sync with audio/VFX — tag events pair with directional hit indicators so players feel why they slowed.
Server tag FSM and stack mechanics
Tagging must be computed on the server at the same moment damage is confirmed — never on client blood effects or predicted hits that reconcile away:
on_confirmed_hit(attacker, victim, weapon, zone, damage):
if weapon.tag_enabled and damage > 0:
tag_value = weapon.base_tag * zone_mult[zone] * armor_tag_mult(victim)
victim.tag_stack = min(victim.tag_stack + tag_value, weapon.tag_cap)
victim.tag_expires_at = server_time + weapon.tag_duration
replicate_tag_state(victim) // slow_pct + expires_at
Core parameters per weapon
- base_tag — slow intensity added per hit (often 7.5–30% of run speed equivalent).
- tag_cap — maximum stacked slow (typically 50–75% of run speed); prevents LMG spray from rooting players.
- tag_duration — how long the stack decays from; refresh on new hits extends expiry, not always the cap.
- tag_decay_curve — linear step-down vs instant drop at expiry; linear feels fairer in trades.
- headshot_tag_mult — often 0× (headshots kill before slow matters) or 1.5× on partial head grazes.
Replicate a compact slow_pct and tag_expires_at
each tick so
client prediction
can blend locomotion without desyncing hit validation. Clients may
cosmetically ease into slow; authoritative max speed is server-only.
Stack refresh rules
Three common policies — pick one and document it in the competitive handbook:
- Additive with cap — each hit adds tag until cap; expiry timer resets on every connect (Valorant-style rifle tags).
- Replace if stronger — new hit only applies if
tag_valueexceeds current stack (prevents pistol chip from overwriting AWP body tag incorrectly). - Independent lanes — leg slow and body slow tracked separately; rare but used when leg shots have unique flinch.
Body zones, weapons, and armor coupling
Tag intensity should correlate with fight outcome probability, not raw damage alone — otherwise tagging duplicates armor without adding pacing information:
| Zone | Typical tag mult | Rationale |
|---|---|---|
| Head (lethal) | 0–0.5× | Round often ends; slow is irrelevant |
| Chest / torso | 1.0× | Primary duel tag band |
| Legs | 1.2–1.5× | Lower damage but high slow punishes wide swings |
| Shield / armor plate | 0.6–0.8× | Slow still applies through armor; chip tags matter |
Weapon class examples (tune per game TTK):
- Rifles — 27.5% tag per body hit, 0.5 s duration, cap 54.5%; two taps noticeably slow wide peeks.
- SMGs — 12% per pellet, shared cap 40%; rewards tracking without full root.
- DMRs / semi-auto — high per-shot tag, short duration; rewards precision without full-auto freeze.
- LMG — low per-bullet tag, fast decay; suppressive fire chips speed without stunlock.
- Pistols — often exempt on run-and-gun eco rounds or given light 8% tags on body only.
Pair with damage falloff: at max range, reduce tag proportionally so long-range chip does not feel like a melee slow.
Player-facing telegraphs and accessibility
Tagging fails player trust when speed drops silently. Minimum viable feedback:
- Movement VFX — brief foot-drag particles or
stance hunch when
slow_pctcrosses 25% threshold. - HUD edge tint — subtle desaturate on victim screen
edges; stack intensity scales with
slow_pct. - Directional hit marker — sync tag application with damage indicator pulse so players connect slow to the angle they were shot from.
- Audio — distinct “flesh tag” layer on body hits, quieter on leg tags; do not reuse generic hurt sounds.
- Accessibility — optional numeric slow % in damage recap; color-blind safe tag VFX that do not rely on red-only flash.
Spectator and kill-cam replays should show tag state on the victim timeline so dispute tickets distinguish “I was tagged” from netcode loss.
Harbor Flux refactor walkthrough
Pre-refactor telemetry showed holders landing first body shot in 61% of mid-range duels but winning only 39% — peekers disengaged at full sprint speed. Three changes shipped together:
- Rifle body tag 27.5% / 0.5 s with additive cap 54.5% on assault rifles and semi-auto marksman rifles.
- Leg shot 1.35× tag mult without extra damage — leg meta wide peeks slowed even on 27-damage taps.
- Tag-aware counter-strafe — while
slow_pct > 0, counter-strafe friction multiplier reduced 15% so victims can still micro-adjust without full escape.
Results: wide-peek escape after first hit 56% → 11%; average duel length +0.18 s (acceptable); holder first-shot win rate 39% → 52%. SMG rush routes unchanged because per-pellet tag stayed at 12% with 0.35 s decay.
Technique decision table
| Approach | Best for | Avoid when |
|---|---|---|
| Per-weapon tag stacks with cap | Ranked tactical shooters, rifle-forward metas | Arcade mobility heroes where speed is the identity |
| Global flat slow on any hit | Fast-prototype battle royale | Weapon roles need distinct range bands |
| Tag only on leg / lower body | Games with high headshot TTK | Wide swing meta already dominant at torso level |
| No tagging; accuracy-only | Arena shooters with low TTK and no wide peeks | Mid-range rifle duels with cover disengage loops |
| Tag + damage-over-time bleed | LMG suppression fantasy | Stacking feels like stunlock; separate lanes carefully |
Common pitfalls
- Client-only slow — victims see slow but server still registers full-speed hitboxes; trades feel random.
- Tag on predicted hits — applying slow before damage confirms causes snap-back speed that looks like bugs.
- Uncapped LMG stacks — three players spraying one target root them for entire rounds.
- Headshot tag on non-lethal modes — head tags in 50-HP arcade modes stack with body spam into perma-slow.
- Ignoring abilities — dash, slide, and speed boost must define tag purge vs tag resist explicitly.
- Silent application — no VFX/HUD link; players blame input lag instead of tagging.
- Mismatched falloff — max-range pistol chip applies rifle-grade slow.
- Replay omission — kill-cam cannot show tag state; support cannot adjudicate tickets.
Production checklist
- Apply tag only in
on_confirmed_hitafter server damage validation. - Define per-weapon
base_tag,tag_cap,tag_durationin data tables. - Zone and armor multipliers live in the same table as damage multipliers.
- Replicate
slow_pctand expiry; reconcile locomotion on client. - Document stack refresh policy (additive vs replace) in competitive handbook.
- Sync tag VFX/HUD with directional damage indicators.
- Exempt or reduce tag for friendly fire, ability blocks, and invuln frames.
- Log tag state at death for kill recap and spectator demos.
- Load-test three LMGs tagging one victim for cap behavior.
- Telemetry: first-hit-to-disengage time, wide-peek escape rate, duel win rate by opener.
- Playtest SMG rush vs rifle hold routes after tag tuning.
- Accessibility pass on tag VFX and optional slow % display.
Key takeaways
- Hit tagging punishes victims who keep moving after being shot; movement accuracy punishes shooters who fire while moving — both are required in cover-based rifle metas.
- Server-authoritative stacks with per-weapon caps prevent LMG stunlock while making rifle body taps matter.
- Leg-shot tag multipliers are a high-leverage knob for wide-peek balance without inflating damage TTK.
- Telegraph tag application through HUD, audio, and kill-cam timelines or players blame netcode instead of design.
- Harbor Flux cut wide-peek escape rate from 56% to 11% with 27.5% rifle body tags, leg multipliers, and tag-aware counter-strafe tuning.
Related reading
- Counter-strafe and movement accuracy penalty explained — self-inflicted slow vs enemy-applied tag
- Hit registration and lag compensation explained — tagging must attach to confirmed server hits
- Damage indicator and directional hit feedback explained — paired telegraphs when tag applies
- Weapon damage falloff and range attenuation explained — align tag intensity with distance