How to play
Web Soccer is a 2D online soccer game that runs in the browser. No install, no account. You play it with the arrow keys and a single button. Create a room and invite friends, or practise on your own against bots.
Controls
- Move: WASD or the arrow keys
- Dash: Space or X (has a cooldown)
- Toggle sound effects: M
- Back to the menu: Esc, or the "Menu" button at the top right
On phones and tablets, move with the virtual stick at the bottom left and dash with the button at the bottom right. The stick snaps to 8 directions — how far you push it does not change your speed.
Dash is one button with three jobs: it shoots or clears when you have the ball, tackles when an opponent has it, and is a burst of speed otherwise. You carry the ball by pushing it with your body.
Acceleration is stronger while you hold the key opposite to the way you are moving, so you can turn back quickly after a long run. Top speed and the glide after you release a key are unchanged.
Rules
- Two minute matches. After time is up the result shows for 5 seconds and everyone returns to the lobby (no automatic rematch)
- Kick-off counts down 3→2→1. The red team starts the match; after a goal the ball goes to the team that conceded. During the countdown everyone stays in their own half and nobody can touch the ball. Until the kicking team touches it first, the other team may not cross the halfway line or enter the centre circle
- Goals freeze for about a second with the ball in the net, then restart with a countdown
- Corners are 45° diagonal walls that only the ball bounces off — this structurally prevents the ball from getting stuck in a corner. Players can still move into the full rectangle
- Empty slots are filled by server-side bots. Players who join or leave mid-match swap with a bot, so play never stops
Rooms
There are two ways into a match: create a room, or pick one from the list. There is no permanent room.
-
Create a room → choose public (listed, anyone can join)
or private 🔒 (the code is not shown in the list). Either way you get a
four-character code (for example
K7QM), shown at the top right during play. The "Copy URL" button gives you an invite link - The room list shows the host's name, the player count and whether the room is in the lobby or in a match (it refreshes every few seconds). Public rooms are one tap to join. Full rooms cannot be tapped
- Private rooms are marked 🔒 and open a code prompt. Only people who know the code can get in
- An invite link opens the prompt with the code filled in — it never connects you automatically
- Rooms disappear once they are empty, and expire 12 hours after they were created
Inside a room you start in warm-up — a lobby that doubles as free play against bots. Press start (even alone) to reset everyone and kick off. Only the host (the first person who joined) can start the match or change the settings.
Settings
Use the bar at the bottom left. Always available in practice; in a match only the host can change them, and only in the lobby.
- Team size: 1v1 to 11v11
- Field size: small, medium or large (the goals scale with it)
- Bot strength: weak, normal or strong (movement speed and how slowly they react; normal by default)
Bots have a reaction delay — roughly 0.1 to 0.4 seconds between deciding and acting, varying each time — so they cannot read the play with inhuman reflexes.
Name and language
- Your name is set in the start menu (up to 10 characters, optional). It appears above your player and is saved in your browser for next time
- The language toggle (below the menu) switches between Japanese and English and is saved in your browser. The first visit follows your browser's language setting
Contact
Operator: uc
Please send bug reports and requests through the form. No email address is published for this site.
When reporting a bug, it helps a lot to include
the line at the very bottom of the start menu (the one starting with
build …) so we know which version it happened on.