Guide
Game trade frag and teammate revenge elimination systems explained
Harbor Ridge, a 5v5 tactical shooter, shipped ranked without any notion of a trade frag — the moment when a teammate kills your killer within a short revenge window. Entry duels on A site followed a brutal pattern: the first attacker died peeking a held angle; the refragger traded the defender 0.4 seconds later but received no credit, no feed tag, and no MVP bonus. The surviving defender kept full HP, repositioned, and won the next duel. Telemetry tagged 61% of coordinated site hits as “double-death frustration” — teams lost two players for one enemy without the scoreboard reflecting a fair exchange. Players stopped refragging because the game treated their revenge kill as a routine elimination with no narrative weight.
The refactor added a server-authoritative revenge ledger: each death registers a trade window, proximity radius, optional line-of-sight requirement, and credit types (trade, refrag, anti-trade). The kill feed shows traded badges; MVP scoring weights successful trades; and death recaps explain whether your death was traded. Double-death frustration on entry duels fell from 61% to 11%; refrag participation rose 34%. This guide explains what trade frags are, how detection FSMs work, HUD and scoring integration, economy coupling with death drops, the Harbor Ridge refactor, a decision table, pitfalls, and a production checklist.
What trade frag systems do
A trade frag (also called a revenge kill or refrag in competitive slang) occurs when player B eliminates player C shortly after C killed player A, where A and B are teammates. The mechanic recognizes that tactical shooters are team duel games: one-for-one exchanges are often successful outcomes for the attacking side even when the scoreboard shows a net zero kill differential for that micro-engagement.
Core responsibilities
- Revenge window tracking — server timestamps each death and opens a configurable trade window (typically 3–5 seconds).
- Proximity and context gates — credit trades only when the refragger was near the victim, shared the same site, or had mutual line of sight to the duel.
- Credit classification — distinguish trade, refrag, anti-trade (defender refrags attacker), and denied trades (killer survived outside window).
- Feedback surfaces — kill feed icons, death recap lines, minimap trade pings, and optional voice-callout hooks.
- Scoring integration — feed MVP and assist systems without double-counting damage credit.
Trade systems are distinct from raw assist thresholds in the kill feed. Assists reward damage contribution; trades reward timing and positioning in team duels.
Server detection FSM
Implement trade detection as a small state machine on the authoritative death event bus, not as client-side kill-cam guesswork:
- DEATH_REGISTERED — victim V dies at time T; create ledger entry with killer K, site tag, position, and team roster snapshot.
- WINDOW_OPEN — for each living teammate Tm within radius R of V (or sharing site volume), mark eligible refragger until T + window_ms.
- REVENGE_KILL — if Tm kills K before window closes, evaluate gates: distance, LOS optional, same-site optional, killer still alive and not respawned.
- CREDIT_ISSUED — emit trade event with type TRADE | REFRAG | ANTI_TRADE; attach to kill row and MVP pipeline.
- WINDOW_EXPIRED — if K survives, mark victim death as UNTRADED for recap UI and analytics.
The server must handle edge cases atomically: simultaneous deaths (both players die same tick), trade-through-smoke (no LOS but audio cue valid), and friendly fire kills that should not open revenge windows against teammates.
Configurable gate profiles
| Profile | Window | Radius | LOS required | Use case |
|---|---|---|---|---|
| Ranked strict | 4.0 s | 12 m | Yes | Competitive integrity; reduces false trades from cross-map picks |
| Ranked relaxed | 5.0 s | 18 m | No | Fast TTK titles; site volume tag substitutes for LOS |
| Casual | 6.0 s | 25 m | No | Encourage refrag habit in new players |
| Training | 8.0 s | 30 m | No | Practice range trade drills with generous credit |
Trade vs refrag vs anti-trade
Competitive communities use overlapping terms. Standardize them in code and UI:
- Trade — teammate B kills enemy C within the revenge window after C killed teammate A. Net team outcome: even exchange.
- Refrag — same as trade; some titles use refrag for the second duel in a chain (A dies, B trades C, D trades B).
- Anti-trade — defender refrags an attacker who just got a pick; credit type flips perspective but detection logic is identical.
- Untraded death — killer survives the window; flagged in death recap as a punishable pick for coaching overlays.
- Trade denied — refragger dies before killing the original killer; chain ends UNTRADED for both victims.
Chained trades (2-for-2 in four seconds) should emit separate credit rows per link, not collapse into one blob. Spectators and coaches read trade chains as momentum graphs.
HUD, feed, and audio feedback
Detection without presentation is invisible design. Minimum viable feedback:
- Kill feed badge — small “TRADED” or crossed-swords icon on the revenge kill row; victim row shows “TRADED BY [teammate]” in personal recap only.
- Death recap line — “You were traded by Nova” vs “Untraded pick — killer escaped” reduces tilt from perceived unfairness.
- Minimap ping — optional 1 s flash on trade location for nearby teammates not in the duel (helps rotation timing).
- Audio sting — subtle team-positive cue on trade (not celebration spam); distinct from personal kill confirm.
Streamer mode should anonymize traded-by names while keeping the traded/untraded state visible — same policy as kill feed anonymization.
MVP and economy coupling
Trade credit belongs in performance scoring but must not dominate raw impact:
- MVP weight — Harbor Ridge adds +0.15 round_score multiplier for a trade that saved a full-buy teammate; +0.08 for pistol-round trades. Cap trade bonus at 30% of round MVP total.
- Assist deduplication — if the refragger also dealt 80+ damage to the victim, award trade credit OR full assist weight, not both at maximum tier.
- Death drop timing — traded killer drops weapon per death drop rules; surviving refragger should not inherit victim's kit automatically unless design explicitly allows trade-pickup (rare in ranked).
- Economy rounds — trade metrics on eco and force rounds are tracked separately; a pistol trade that breaks a full-buy team is higher leverage than a rifle trade in a 5v5 post-plant.
Harbor Ridge refactor
Before shipping the revenge ledger, Harbor Ridge counted only raw kills. Entry pack success rate (defined as gaining site control within 8 s of first contact) was 38% despite players verbally calling “trade me.” Post-refactor changes:
- 4.0 s trade window with 12 m radius and site-volume tag fallback when LOS blocked by smoke.
- Kill feed TRADED badge and personal death recap untraded callout.
- MVP round_score trade multiplier with per-round cap.
- Analytics dashboard: untraded_death_rate per map site and rank tier.
Entry pack success rose to 52%; double-death frustration fell from 61% to 11%. Support tickets about “unfair refrags” dropped because the feed made exchanges legible.
Decision table: trade system vs alternatives
| Approach | Strength | Weakness | When to use |
|---|---|---|---|
| Full trade ledger (this guide) | Rewards team duels; coaching-ready; lowers tilt | Engineering + UI cost; false-positive tuning | Ranked tactical shooters with site-based play |
| Assist-only attribution | Already exists for damage | Misses timing trades with low prior damage | TTK games without refrag culture |
| Raw K/D only | Simple | Punishes entry players; hides team success | FFA or solo modes |
| Client-side trade callout | Fast to prototype | Exploitable; desync on high ping | Never in ranked |
| No trade concept | Zero dev cost | 61% frustration in Harbor Ridge playtest | Avoid for 5v5 tactical |
Pitfalls
- Window too long — cross-map AWPer picks count as trades; inflates MVP for passive players.
- Window too short — legitimate refrags on 80 ms peek latency miss credit; entry players still feel unsupported.
- No untraded state — victims assume trade happened because teammate shot the killer later on a different duel.
- Double MVP dip — trade bonus stacks with assist, objective, and clutch multipliers; one player dominates round_score.
- Ignoring self-trade edge cases — killer dies to environment same tick as victim; window should close cleanly.
- Spectator spoilers — traded-by name reveals alive positions in clutch 1vX; delay or anonymize in broadcast mode.
- No per-site analytics — designers cannot see that B site has 3× untraded rate vs A; map balance rots silently.
Production checklist
- Define trade window, radius, LOS, and site-volume gate profiles per playlist.
- Implement server-authoritative DEATH_REGISTERED through WINDOW_EXPIRED FSM.
- Classify TRADE, REFRAG, ANTI_TRADE, UNTRADED, and TRADE_DENIED outcomes.
- Emit trade events to kill feed, death recap, MVP, and analytics bus.
- Add kill feed badge and personal recap traded/untraded copy.
- Cap MVP trade multiplier; deduplicate against max-tier assist credit.
- Handle simultaneous deaths, FF, and respawn-before-revenge edge cases.
- Streamer/broadcast mode: anonymize traded-by names; optional delay.
- Dashboard untraded_death_rate by site, rank tier, and agent/role.
- Playtest entry packs, post-plant retakes, and clutch 1vX trade chains.
- Document trade rules in competitive rulebook and onboarding tooltip.
- Re-QA after TTK, respawn timer, or smoke vision system changes.
Key takeaways
- Trade frags are team-duel outcomes — not just another kill row.
- Server revenge windows with proximity gates make refrags measurable and fair.
- Untraded death callouts matter as much as traded badges for tilt reduction.
- MVP weighting should reward trades without letting them dominate round_score.
- Harbor Ridge cut double-death frustration from 61% to 11% with a revenge ledger, feed tags, and recap copy — not by changing TTK.
Related reading
- Kill feed and death recap systems explained — attribution, assist credit, and feed row anatomy
- Round MVP and performance rating systems explained — weighted round_score and trade multipliers
- Weapon death drop and pickup systems explained — loot timing after traded kills
- Tactical shooter design explained — round structure, TTK, and team duel pillars