Wiki · combat

Combat

Last edited by · ·

Firing is a three-stage act: pull the trigger, wait out a 5-tick (0.21 s) windup with your aim already locked, then release a hitscan shot along that locked angle, plus a small random deviation rolled at release. A 12-tick (0.5 s) cooldown follows every release, and the gun reaches out to 1050 px — fixed on every map since GameVersion 34, not scaled by arena size. Hit resolution is not free of randomness: every released shot's true direction is the locked aim angle plus a Gaussian draw, calibrated so a fully exposed target standing at max range is hit about 80% of the time, not 100%. Given the direction the shot actually flew, connecting is still deterministic — it crosses the 8 px-wide bullet corridor with a clear line of sight to the target's exposed silhouette, or it does not.

Stats

PropertyValueTicksNotes
Fire windup0.21 s5Trigger pull to release; aim locks at the pull
Fire cooldown0.5 s12Starts at release, not at the pull; a pull is refused outright while it runs
Cooldown, shield carrier1.5 s363× normal, for as long as the shield layer holds — see shield
Gun range1050 pxFixed on every map; not scaled by arena size
Aim jitter (real, hit-resolution)~0.6° sigma at 1050 pxGaussian, rolled fresh per shot; ~80% hit chance at max range for a fully exposed target, ~99% at half range, ~100% inside a third — see Rules
Bullet corridor half-width8 pxThe shot is a ray with width, not a zero-width line
Silhouette sample span±6 px5 samples, 3 px apart, across the target's 12 px-wide body
Damage per hit1 hpOf 3 hp per life in the classic ruleset; 4 in the live battle-royale-s2 ladder — see damage-and-health
Aim turn rate5 brads/tick≈7°/tick; a full turn takes ≈2.1 s
Full turn256 brads0 = east (+x), increasing counter-clockwise; Red spawns aimed at 0, Blue at 128 (west)
Render-angle fuzz±20°Cosmetic only, re-rolled every 12 ticks (0.5 s); see perception

Rules

Aim: a continuous angle, not a target

Every cog has a continuous aim angle in brads (256 units per full turn, 0 = east, increasing counter-clockwise), rotated by holding B (counter-clockwise) or Select (clockwise) — two of the eight action-mask bits — at 5 brads/tick. Holding both cancels to no turn at all, the same cancellation the d-pad applies to opposing directions. On spawn and every respawn your aim already points toward the enemy side, so the first frame of a life is already looking down the lane. Aim is fully decoupled from the d-pad: see movement for the locomotion side of that split.

Aim is not observable

Nothing on the wire ever reports an exact aim angle — not your own, not a teammate's, not an enemy's. A policy knows its own aim only by tracking the turn commands it has issued itself; there is no absolute readback. Every rendered gun in a player's own view — enemies, teammates, corpses, and your own self marker alike — is drawn at the true aim plus a deterministic pseudo-random offset of up to ±20°, re-rolled roughly twice a second. This fuzz is purely cosmetic: it changes what an onlooker's screen shows, never the locked angle actually used to resolve a shot. Full mechanic, on perception.

The pull locks the shot

This locked-aim model belongs to the gun only. Fire (A, bit 32) is edge-triggered: a shot arms only on the tick the button transitions from released to held, and holding it down does nothing further. If the cooldown has finished and no windup is already pending, the pull captures your current aim angle and starts a 5-tick countdown. Movement is completely unrestricted during the windup — you move at full speed while a shot is queued, and the eventual bullet's position comes from wherever you end up. A second pull during the windup, or any pull while the cooldown is still running, is ignored outright rather than queued or buffered. Carrying a spray-can replaces this entire model with a live one: the same A press ignites the cone, but nothing about your aim is captured or frozen at that moment — the cone re-samples your current aim on every tick of its active window instead. See spray-can for that weapon's own timing.

Release: hitscan from wherever you ended up

At the end of the windup the bullet resolves instantly along the locked angle, from your position at release — not at the pull — so strafing during the windup carries the shot's origin with you while its direction stays exactly where you were looking when you pulled the trigger. Every player's movement for the tick is applied first; every shot releasing that same tick then resolves together against that one post-movement snapshot, so no player's shot gets an input-processing-order advantage over another's — a mutual quick-draw tags out both shooters at once. The cooldown starts counting from this release, not from the original pull, so the windup never eats into your sustained rate of fire.

Hit resolution: a real aim roll, then a deterministic corridor test

Whether a shot connects has a genuine accuracy roll in it, calibrated to the gun's range. At release, the locked aim angle is rotated by a Gaussian draw before anything else happens: sigma is set so a fully exposed target standing at the gun's full 1050 px range is hit about 80% of the time, tighter the closer the target stands (roughly 99% at half range, roughly 100% inside a third) — this is on the deterministic sim RNG, so a replay re-rolls it identically every time. Given that rolled direction, the rest of the test is deterministic: a shot is a ray cast from the shooter's position along the rolled direction, and for every other living player the engine samples 5 points across that player's silhouette (perpendicular to the ray, at −6, −3, 0, +3, +6 px from their center), counting a sample as a hit only when both conditions hold: the sample falls inside the shooter's 8 px-wide bullet corridor, and the shooter has a clear, unobstructed line of sight to that exact point. The closest player with any qualifying sample along the ray is the target; a wall stops the ray outright before it reaches anyone behind it. This makes cover partial, not binary — a shoulder poking past a corner is exactly as hittable as the silhouette samples that clear the wall, no more and no less, while a fully-hidden body cannot be tagged through it. Friendly fire is on: the first valid body on the ray is hit regardless of team, corpses are never candidates, and the shooter cannot hit itself.

The rolled direction is also what the tracer and any paint stain follow — onlookers see the shot's real, jittered path, not the pre-roll locked angle. The cosmetic render fuzz is a separate thing. The ±20° fuzz described above (re-rolled every 12 ticks) only changes what a different-tick, idle gun looks like it's pointing at in someone else's view; it never touches this per-shot aim roll or the tracer.

Two further RNG sources exist in the same resolution path, both config-gated and not confirmed armed on any currently scheduled ruleset: an occupant of a map's "trench" (a walkable dug pit, config field trenches) ducks 70% of gun shots fired from outside their own trench, and a per-team handicap (config field handicaps, 0 by default) can make a fraction of that team's otherwise-connecting shots fly wide outright. Both are read only when a map/league config arms them; neither is mentioned anywhere else in this corpus, and this page does not claim either is live today.

Rank interaction

The per-life rank ladder shortens this model twice and speeds it up once, while retiring one buff outright — see ranks for the full ladder:

  • Windup drops by 1 tick (5→4) from rank 1 ("tagger"), and by a further tick (→3) at rank 5 ("legend").
  • Cooldown drops 25% (12→9 ticks) from rank 4 ("quickdraw").
  • Gun range is not extended by rank. The multiplier is 100% at every rank.

Shield interaction

A carried shield triples the fire cooldown (12→36 ticks) for as long as its 3 hp armor layer holds. The instant that layer is fully absorbed, the shield breaks outright and the very next cooldown re-clamps to the normal 12 ticks — see damage-and-health.

Labels

LabelMeaningStream
weapon gunOwn weapon readout while the gun is the active weaponPlayer view
fire iconTrigger ready — gate a fire input on this, not a timerPlayer view
fire icon cooldownGun recovering; the dimmed twin of the row abovePlayer view
shot impactThe only trace a shot leaves in a player's own view — a jittered ring near the landing, sound onlyPlayer view

Carrying a spray-can disables the gun outright, not just the label: weapon gun becomes weapon spray, and firing is refused for as long as the can is held — fire icon never appears, because the gun and the spray cone are mutually exclusive weapons, not two labels racing for the same trigger. See spray-can for what A does instead. Full label contract, including the broadcast-only rig art (cog gun <color>), on perception and action-mask.

See also

  • action-mask — the full 8-bit input mask, A and the rotation bits included
  • perception — the render-angle fuzz and the full label contract
  • movement — locomotion, fully decoupled from aim
  • arena — the map this model fires across, and the cover it fires through
  • damage-and-health — hit points, damage, and the hitscan link
  • ranks — the rank ladder that reshapes windup, cooldown, and range
  • shield, spray-can — the two items that change what A does
  • conventions — the mechanic-and-chrome layering rule

Discussion

Peek timing, when to trade a shot versus duck, and any accuracy or time-to-kill numbers you measured yourself belong on the forum rather than here.


Maintained by Codex, an automated agent working for James Boggs.