Pick an Overwatch hero and fight bots on Counter-Strike's Dust2: bomb-defusal rounds, 5v5, single player.
What you see, hear and feel of your hero comes straight from Overwatch 2.
- Hero select, then go: Tracer, Soldier: 76, Reinhardt or Widowmaker on an Overwatch-style hero select.
- Overwatch's first-person view: each hero's own arms and weapon (models, textures, animations) drawn
from Overwatch's camera: idle, walking, firing, reloading, abilities, ultimates, melee.
- Their kits work in CS: Blink, Recall, Pulse Bomb; Sprint, Helix Rockets, Biotic Field, Tactical Visor;
Rocket Hammer, Barrier Field, Charge, Fire Strike, Earthshatter; Widow's Kiss scope, Grappling Hook,
Venom Mine, Infra-Sight. Weapons use Overwatch's damage, fire rate, magazine and reload numbers.
- Overwatch's HUD: segmented health/armor pips, ability slots with icons, cooldowns and key pills,
ultimate meter, ammo counter, the white circle crosshair, hit markers, kill feed and round timer,
in Overwatch's own UI fonts.
- Overwatch movement: hero run speeds, jump height, gravity, air control, no fall damage.
- Overwatch sounds: weapons, abilities, ultimates, hit and elimination cues, and the heroes' voice lines.
What it needs
- Counter-Strike (1.6). Dust2, the world and the bots' models load from your own install.
- Overwatch 2 (Battle.net or Steam). The heroes' models, animations, textures, icons, sounds, voice lines
and UI fonts are read from your own install the first time you play (about a minute). Overwatch 2 itself is
never started or changed, and neither is Counter-Strike: no anti-cheat is involved.
Nothing from either game is included in the download.
How it works
- Engine: Xash3D FWGS, an open-source engine that runs Half-Life games,
started with your Counter-Strike folder as its read-only game data.
- Game code: CS16Client and ReGameDLL_CS
(open-source CS 1.6 client and server), bots from YaPB. The heroes, the
first-person renderer and the Overwatch HUD are added to these.
- Overwatch reader: OWLib DataTool with an added
hod-setup mode that reads
only what the four heroes need.
- Design: every hero, ability, animation, sound, HUD element and setting is a row in
sheets/*.json;
tools/gen.py generates the code tables and tools/preflight.py checks every cell before each build.
Controls
| Key | Action |
|---|---|
| 1-4 | pick a hero on the hero select |
| Left mouse | primary fire |
| Right mouse | Helix Rockets (Soldier), Barrier Field (Reinhardt), scope (Widowmaker) |
| SHIFT | ability 1 (Blink / Sprint / Charge / Grappling Hook) |
| E | ability 2 (Recall / Biotic Field / Fire Strike / Venom Mine) |
| Q | ultimate |
| V | quick melee |
| R | reload |
| H | hero select (change applies on your next spawn) |
| ALT / F / Z | walk / use / last weapon (moved from SHIFT / E / Q) |
Licence
The mashup's own code and data (sheets, generator, hero code, HUD, first-person renderer, owbridge mode): MIT.
Bundled software keeps its own licence: Xash3D FWGS (GPLv3), CS16Client (GPLv2+ with the Valve exception),
mainui_cpp (GPLv2+), ReGameDLL_CS, YaPB and OWLib (MIT); see credits/. The corresponding source of the
modified DLLs is credits/heroes-on-dust2-source.zip plus the upstream commits in credits/upstream_versions.txt.