Quick Play uses real players when available, then clearly labelled server bots. Offline play is always available. Online talks to a dev server on this machine until hosting is live.
Match setup
MATCH SETUP
Esc back · Enter play
MODE pick one — or tick several and Quick play rotates them
MAP
BOTS
DIFFICULTY
Online
ONLINE
Esc back
QUICK MATCH MODE separate public queues
HAVE A CODE?
Leave it blank to open the public lobby instead.
PLAY WITH FRIENDS
Creates a private room code — share the link, then JOIN.
Rooms live in memory on one server: no accounts, ranks or friend lists yet. Server bots are always labelled BOT. Right now this is a dev server on localhost — start it with npm run server.
MATCH OVER
MATCH OVER
0kills
0deaths
0.00K/D
ONE MORE CLICK
Your browser needs a click to hand the mouse to the game.
Still stuck? Allow pointer lock / fullscreen for this site in the address bar.
⟳ Rotate your phone to landscape
PAUSED
CLASSChoose for this or your next life
SETTINGS
GAMEPLAY
VIDEO
AUDIO
CROSSHAIR
CONTROLS
Click a key to rebind it · Esc cancels
ADVANCED dev & self-hosting
Only needed to point the client at a different game server. Leave blank and ONLINE connects to the right one for this page.
CREDITS sound licences
Sound effects are synthesized in-engine, layered with a small
public-domain sample bank. Full per-file licence trail:
public/audio/CREDITS.txt.
Footsteps (metal) — congusbongus, CC BY 3.0 ·
opengameart.org
WASD move · Shift sprint · C crouch · R reload · RMB aim · LMB fire · E interact in S&D — damage, objectives + score are server-side · BOT = server bot
LOBBY
Rooms live in memory on one server (a restart clears them); no accounts,
friend lists, ranked play or persistence yet. Bots here are server bots — always labelled BOT, never counted
as players, and they leave when humans fill the seats.
CONNECTION SECURED
MATCH FOUND
Preparing deployment…
WAREHOUSE
MODEFREE-FOR-ALLMAPWAREHOUSEROSTER1 PLAYER
SELECT CLASSServer validated
Connection lost
The server keeps rooms in memory, so reconnecting starts a fresh session.