Multiplayer & controls

Counter-Strike in a browser: 1.6 matches, bunnyhop or surf?

Choose CSJS for a 1.6 match with the least preparation, WebXash for your own files and server, or a dedicated movement game for hopping and surfing.

By Playable · Written

Counter-Strike players carrying rifles through a sunlit courtyard. Original-game reference.
Counter-Strike publisher screenshot. Original-game reference; not the CSJS browser build. Image credits

Choose your client

For a Counter-Strike 1.6 team match, start with CSJS. Its live server list removes the need to prepare a server address or import your own folders. Choose WebXash when you already have your own game files and a compatible server to join. For a short solo movement session, choose Surfd instead.

CSJS and WebXash are separate browser clients for 1.6 using Xash3D work. bunnyhop.lol and Surfd build games around Source-style movement. Their time trials are not Counter-Strike: Source’s complete team shooter, and none of these listings is Counter-Strike 2.

Swipe or scroll to compare all columns →

Choose the session, then the client
ProjectChoose it forMain tradeoff
CSJSA 1.6 match from a live server list; desktop or touch controlsAvailable rooms, maps and rules depend on the server
WebXashYour own files and an explicitly chosen compatible serverManual import and WebSocket address; keyboard and mouse recommended
bunnyhop.lolRepeated jumping, timed routes and movement stylesDesktop keyboard and mouse; no phone/tablet support
SurfdRamp surfing, solo practice and checkpoint feedbackKeyboard and mouse; practice runs do not set public records

Join a CSJS server

Open the CSJS server browser, select a server or Quick play, enter your player name and join. A named server is the clearer choice when meeting friends: tell them which one you picked. The list can change as servers come and go.

Voice is optional. In the join dialog, enable it only if you want to speak, select your microphone and allow the browser’s microphone prompt. Hold K to talk and release it to mute. The voice room follows your game server; you can join without voice.

If voice fails, check the selected input and site microphone permission before changing the rest of your setup. Do not confuse a working microphone with a successful server connection.

For friends, agree on a named server rather than choosing Quick play separately. A server’s map and rules shape the match; switching client does not guarantee access to that same room. If the immediate goal is movement practice while waiting for friends, Surfd’s Solo option is a separate session you can start without arranging a team match.

Desktop controls

These are the defaults shipped with the current CSJS client. Saved settings or a custom configuration can change them, so check your bindings if a key behaves differently.

Default keyboard and mouse bindings
ActionDefault input
Move and aimWASD and mouse movement
Primary / secondary attackLeft / right mouse button
Jump / crouch / walkSpace / Ctrl / Shift
Reload / useR / E
Buy / choose teamB / M
Last weapon / change weaponQ / mouse wheel
Scoreboard / optional voiceTab / hold K to speak

The voice setup still needs a selected microphone and browser permission. The K binding alone does not enable it.

Use the phone controls

CSJS documents automatic touch detection and the Xash3D touch interface for movement, aiming and actions. Join from the same server list, rotate to landscape and accept fullscreen if offered. Fullscreen and orientation behavior depend on the browser.

A phone-friendly launcher does not tell you how comfortable a long match will be. First check that you can move and aim together, reach the action buttons and return to the menu. See the mobile setup guide for storage and screen-space preparation.

CSJS is the phone choice among these clients because it explicitly enables the engine’s touch interface. WebXash’s own FAQ recommends keyboard and mouse and points mobile players toward native ports; it is not an equivalent touch fallback. Bunnyhop.lol excludes phones and tablets, and Surfd presents keyboard-and-mouse controls.

Joining versus hosting

Joining a listed CSJS server does not require you to run Docker. Hosting is a separate job: the creator’s guide requires an approved server credential and a TLS WebSocket gateway. Follow the current hosting instructions if that is your goal.

For WebXash, select a root folder containing your own valve and cstrike data, or a ZIP preserving those directories. Its multiplayer guide uses a compatible WebSocket server, with port 27016 as the documented default, then the in-game LAN menu. An ordinary native server address alone is not that gateway.

WebXash’s save manager is disabled for CS 1.6. Its single-player Half-Life save tools should not be read as a way to preserve an online Counter-Strike match.

Bunnyhop, surf and records

Choose bunnyhop.lol for hopping and air strafing

Its Source-style 100-tick movement turns repeated jumps into timed courses. Hold jump for automatic hops, release W in the air, and match A or D to the direction of your mouse turn. Pick a movement style before comparing times; different styles have separate records. R restarts the attempt. Bunnyhop controls and styles ↗

Choose Surfd for learning ramps

Surfd uses 66-tick surfing. Release W on a ramp, hold the strafe key toward its face and steer gently with the mouse. Watch route helps you study a course; saved practice positions let you repeat a transfer. Loading one keeps the run in practice mode, outside leaderboard scoring. Surfd’s controls and practice options ↗

Neither has a campaign save to continue like a single-player shooter. Bunnyhop.lol offers linked-account progress across devices; Surfd stores local bests and preferences in the browser and uses sign-in for public records. In Surfd, a downloaded command replay records inputs rather than video, and a practice position is not a ranked finish. Keep those distinctions in mind before clearing site data. Surfd record storage ↗

Project reading

See the creators’ setup instructions and feature guides.

Counter-Strike players carrying rifles through a sunlit courtyard. Original-game reference.

Counter-Strike publisher screenshot. Original-game reference; not the CSJS browser build.

Image credits ↗

Classic Counter-Strike matches through a live browser server list.

A Half-Life security checkpoint viewed in first person in WebXash.

WebXash creator screenshot showing Half-Life: Day One. Browser chrome cropped; not a Counter-Strike match.

Image credits ↗

Load your own Steam folders into a configurable Xash3D browser client.

Original files requiredPlay