Mechanics

Controls

InputAction
Right-click groundMove hero to location
Right-click enemySet auto-attack target (hero or minion)
SStop movement immediately (hold position)
Q / W / E / RCast ability toward current cursor position
Scroll wheelZoom camera (0.3× – 2.0×)
Tab (hold)Show scoreboard: K / D / A · CS · Gold · Level
ESCOpen/close settings menu
All game inputs (movement, abilities, attacks) are blocked while the settings menu is open.

Auto-Attacks & Targeting

Right-clicking an enemy sets them as your current auto-attack target. Your hero moves toward that target, then fires a homing projectile whenever in range and off cooldown.

If you right-click ground (no target), your hero walks to that point and auto-attacks any enemy that enters range automatically — no manual targeting needed.

Projectiles home on their assigned target. If the target dies mid-flight, the projectile disappears.

Projectile Speed25 u/s
Hero Attack CD1.25s
Auto TargetsHeroes + Minions

Abilities (Q / W / E / R)

Each hero has 4 abilities. All abilities are targeted at the cursor position when the key is pressed. Abilities cost mana and trigger a cooldown — if you have insufficient mana, the ability will not fire.

Mana regenerates at 0.25 MP per tick (5 MP/second). It fully restores at spawn and on respawn.

Server enforces both cooldown and mana costs. Client also shows when abilities are unavailable, but the server is authoritative.

Ability types in use:

"Target ally" buffs (Sage W / Sage E / Paladin W / etc.) cast at the cursor onto the nearest ally hero within 200 u. Press Alt + the ability key to self-cast.

Buffs & Debuffs

Buffs and debuffs are time-limited modifiers tracked server-side per actor. Each has a duration (in ticks) and applies via a generalised helper — apply_slow, apply_speed_boost, apply_shield, apply_poison, apply_burn, apply_stun, apply_silence, apply_blind, apply_tint, apply_as_boost, apply_hp_regen_mult. Stacking takes the max of the existing and new effect per-field, then clears when the timer runs out.

EffectStatVisualNotes
Slow-40% to -60% move speedWater-drop icon above spriteFrom Sage Q, Monk Q, Guardian E, ice-tagged projectiles. CC penetrates shields.
Speed Boost+40% to +100% move speedWhite-blue ring around spriteClears active slow on application. Used for movement buffs (Barbarian R = +100%, Guardian R = +50%) and ally support.
Attack-Speed Boost+100% AS (2× swing speed)Paired with sprite tintBarbarian R. Halves the swing time as long as the buff is active.
Shield130–350 absorb HPWhite segment on HP barTime-limited (5 s default). Absorbs incoming damage; expires by timer or by being fully drained.
PoisonHybrid flat + 1.5% × max HP per pulsePoison icon above spritePulses every 0.5 s. Refreshes on reapply (stronger pulse wins). Kill credit goes to latest applier.
Burn~12 flat dmg per pulse, stacks ×3Burn icon above spriteEach stack adds 25% per pulse. Reapply adds a stack and refreshes duration.
StunNo movement / no auto-attack / no castingStun icon + hero shows hurt frameHard CC. HP+MP regen halved. Cleared on respawn.
SilenceNo ability casts (Q/W/E/R blocked)Silence icon above spriteAuto-attacks and movement still work. From Baby Dragon Q/R and Monk R.
BlindAuto-attacks deal 0 damageBlind icon + "Miss!" text floats upAbilities NOT affected. Applied by Guardian Q.
HP Regen Multiplier10× regen rateSubtle green glowWayrunner W (Runner) and Guardian R (Victory Lap).

HP-bar render with shield: the bar denominator becomes max_hp + shield, so the green (HP) and white (shield) segments share the fixed-width bar. When the shield expires, the denominator drops back to max_hp and the green grows back to its actual HP percentage — your real HP never changes from a shield expiring.

Sprite tint: some self-buffs wash a colour across the whole hero silhouette via an alpha-mask render (not a circle halo). Barbarian R = red, Monk R = orange. The tint covers exactly the visible pixels of the sprite.

Status icons display above the hero's head AND in the top-left corner of the bottom-HUD portrait, so you can see your own debuffs without panning the camera.

Melee Attack Ranges (Oval)

Melee heroes have a horizontal oval attack zone, not a circle. Top-down perspective makes circular ranges feel too generous in the N/S direction — hero sprite bodies are stacked vertically on screen for N/S adjacencies but visually overlap for E/W. The oval compensates: full reach to the sides, ~55% reach above/below.

AxisReach
X (east / west)Full rng stat
Y (north / south)rng × 0.55 (MELEE_Y_RATIO)

Applies to both acquisition (auto-pick a target when idle or attack-moving) AND damage (does the swing actually land). Towers, minions, the Nexus, and ranged heroes keep the circular shape.

When you press A for attack-move on a melee hero, the range indicator drawn around your hero is an ellipse — that's the exact area where enemies will be acquired.

If a target ends up directly above or below you and out of oval-Y range, your hero will walk closer until in range — the chase logic respects the oval just like the acquisition does.

Acquisition Radius (Auto-Attack)

When your hero is idle (or in attack-move mode) and there's no current target, they scan for enemies within max(rng, 200) units. The 200 u floor means melee heroes with shorter ranges will still chase enemies in walking distance — not stand around until contact.

Hero priority: within the acquisition radius, enemy heroes are picked over minions. So if you're walking through a creep wave and an enemy hero strolls past, your auto-attack switches to the hero (LoL-style priority).

Pressing S sets the hero to hold-position mode, which disables auto-acquisition entirely until you issue a new move/attack command.

Jungle Camps (Heal & Burn Zones)

Behind each Nexus there's an elliptical jungle camp (rx=200, ry=170) that grants powerful regen to your own team and burns enemies.

ZoneHP regenMana regenDamage
Own camp+7% / second8× base regen
Enemy camp20% max HP burn / second (lethal if you linger)

Camp centres: Blue (500, 2000) · Red (5000, 2000). The CPU bot pathfinder actively avoids the enemy camp; the visual is a cobblestone ellipse with a team-coloured glow (green = friendly, red = hostile).

Ground Puddles

Persistent AoE pools that pulse damage over time inside a fixed radius. Spawned by abilities (currently Plague Doctor's Bio Blaster acid pool) when a projectile detonates.

Each puddle carries radius, dmg, pulse_every (tick cadence), and ticks (lifetime). The client renders the puddle as a frame-strip animation that plays ONCE across the full lifetime — so the visual splash → grow → settle → dry-up is perfectly in sync with the gameplay duration.

Puddles render UNDER units, so heroes and minions visibly stand inside them. They're filtered by team vision (fog of war) like everything else.

XP & Leveling

You gain XP by being within 500 units of an enemy unit when it dies — minions, towers, or heroes. You don't need to deal the killing blow.

XP to Level Up100 × Level
Max Level20
HP per Level+65
AD per Level+4
MP per Level+10
Ability Points1 per level

Example: Level 1 → 2 needs 100 XP. Level 5 → 6 needs 500 XP. Level 19 → 20 needs 1,900 XP.

Spend ability points by clicking the Q/W/E/R icon or pressing Shift/Ctrl + the key. Q, W, E max out at level 5; R maxes at level 3. Putting your first point in R requires character level ≥ 4. Ability damage scales 65% at level 1 → 100% at level 5.

SourceXP ValueNotes
Melee minion death30Must be within 500 units
Caster minion death20Must be within 500 units
Tower destruction200Must be within 500 units
Hero kill200Goes to the killer only

Gold Economy

All heroes start with 500 gold. Gold accumulates automatically and from actions during the match.

SourceGoldNotes
Starting gold500All heroes begin with this
Passive income5 / 10sAuto-granted while alive
Melee minion last hit21You must land the killing blow
Caster minion last hit14You must land the killing blow
Tower destruction150Goes to last-hitting hero
Hero kill300Goes to the killer
First Blood bonus+100Added to the first hero kill of the match
Last-hit gold requires landing the killing blow. Missing the last hit means no gold, even if you dealt most of the damage.

[NOT YET IMPLEMENTED] Shop and item purchases. Gold currently accumulates but cannot be spent.

Death & Respawn

When a hero's HP reaches 0, they die and cannot act for 8 seconds. A respawn timer is visible on screen. On respawn, the hero returns to their team's spawn point — directly in front of their Nexus, not inside it — with full HP and mana.

Respawn Time8s
Respawn (Blue)x=920, y=2000
Respawn (Red)x=4580, y=2000
HP on RespawnFull

Assists are awarded to teammates who dealt damage to the victim within the last 8 seconds before the kill.

Unit Collision

Heroes, minions, towers, and the Nexus all have a collision radius. After all unit movement each tick, the server pushes any overlapping units apart in up to three resolution passes. You cannot walk through buildings, allies, or enemies.

UnitCollision RadiusMovable?
Hero24Yes
Minion20Yes
Tower45No (immovable)
Nexus75No (immovable)

Push rules:

The map is clamped to (60..4940, 60..3940) so a chain of pushes can't shove anyone off the playable area.

AFK System

Player activity is tracked by actions: movement commands, attacks, and ability casts all reset the AFK timer. Standing still and doing nothing triggers warnings and eventual removal.

Idle TimeEvent
60 seconds[WARN] First AFK warning — dismiss prompt to reset timer
120 seconds[ALERT] Final warning — time remaining is shown
150 seconds[KICK] Removed from game — returns to lobby automatically
Being dead does not trigger AFK checks. The timer only runs while your hero is alive.

Win Condition

Destroy the enemy team's Nexus to win. There is no invulnerability mechanic on the Nexus itself, but it defends itself — it shoots cannonballs at any enemy within 420 units (80 damage per shot, 1.2s cadence). Taking down a Tower or two first removes the outer defences and gives your team breathing room to dive the Nexus.

On Nexus destruction, a 20-second game-over screen plays, then all players are returned to the main lobby for a new game.

Display Settings (ESC → General)

The ESC settings menu has three tabs: General, Audio, Controls. The General tab carries display preferences that persist via localStorage and survive reloads.

SettingRangeDefault
Minimap Size150 – 360 px240 px
Cursor Size1.0× – 3.0× (0.1 step)2.0×

Cursors are 32×32 native; selecting a non-1× size upscales them via offscreen canvas (pixel-perfect nearest-neighbor) and updates the CSS cursor on the fly. Hotspots are anchored at the sprite's visible click point and scale linearly with size, so the click always lands where you'd expect regardless of cursor scale.

The Audio tab has SFX + Music volume + track picker + announcer settings (defaults: SFX on @ 80, Music muted, voice announcer on).

The Controls tab has the Quickcast toggle (default ON: plain Q/W/E/R fires instantly at cursor, Alt+key enters targeting mode; OFF swaps the two) and a full Controls Reference table.

Camera & Zoom

Scroll wheel zooms the camera. Default zoom is 1.2×. The range was extended in session 11 to make tighter zooms practical.

StatValue
Min zoom (most zoomed out)1.2×
Max zoom (most zoomed in)3.4×
Step0.1× per scroll-wheel notch

Camera tracks the hero by default. Middle-click and drag to free-pan; release to resume tracking (or use Space to snap back). Click the minimap to jump-pan.

HUD Reference

Bottom strip: HP bar · Mana bar · XP bar · Ability icons (Q/W/E/R with cooldown overlay) · Gold amount (left) · Clock + settings hint (right).

Top: Blue team panel (left) and Red team panel (right) — live player count and Castle HP bar. Bar turns orange below 40% HP.

Kill feed: Centered top — last 5 events (first blood, hero slain, castle destroyed). Events fade after 7 seconds.

Minimap: Bottom-right corner — shows lane, towers, castle dots, minion dots, player dots, and camera viewport rect.

Scoreboard (Tab): Hold Tab to see full stats for all players: Kills · Deaths · Assists · CS (minion kills) · Gold · Level.