How to Host an IOSoccer Server (SteamCMD, Tickrate, 8v8)

Host an IOSoccer dedicated server: SteamCMD app 673990, srcds -game iosoccer at 100 tick, server.cfg, ports, and loading 4v4, 5v5 or 8v8 configs.

Updated Oct 7, 2026 · 6 min read

On this page

An IOSoccer dedicated server is the free SteamCMD app 673990. Download it with login anonymous and app_update 673990 validate, then start it with ./srcds_run -console -game iosoccer -port 27015 +maxplayers 32 +fps_max 500 -tickrate 100 +map 8v8_vienna (or srcds.exe with the same options on Windows). Set sv_lan 0, a hostname and an RCON password in iosoccer/cfg/server.cfg, open UDP port 27015, and pick the match format in game with exec 8v8, exec 5v5 or exec 4v4. The game itself is free on Steam, so your players only need to install it.

The short version

Thing Value
Server app ID 673990 (the game client is 673560)
Game folder / -game iosoccer
Start map most servers use 8v8_vienna
Tickrate -tickrate 100 is the common standard
Config files iosoccer/cfg/server.cfg, plus format configs like 8v8.cfg
Ports 27015 UDP (game) and TCP (RCON), 27020 UDP for SourceTV
RAM 2 GB for 4v4 or 5v5, 3 GB for 8v8 with spectators

IOSoccer runs on the Source engine, so the server is the same srcds program used by Valve's older games. The difference is what you do once it is up: IOSoccer is run through match settings like players per side, keepers and half time length rather than map rotations and frag limits.

IOSoccer match on a full size pitch

Step 1: Download the server

Windows

  1. Download SteamCMD from Valve's developer wiki and extract steamcmd.exe into a folder such as C:\steamcmd.
  2. Open PowerShell in that folder and run:
.\steamcmd +force_install_dir iosoccer +login anonymous +app_update 673990 validate +quit

This creates C:\steamcmd\iosoccer\ with srcds.exe and the iosoccer game folder inside.

Linux

Install the 32 bit libraries srcds needs, then SteamCMD:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install lib32gcc-s1 lib32stdc++6 steamcmd
steamcmd +force_install_dir ~/iosoccer +login anonymous +app_update 673990 validate +quit

Run it as a regular user. Rerun the same app_update 673990 validate line whenever IOSoccer updates, because players on a newer client cannot join an outdated server.

Step 2: Write server.cfg

Create or edit iosoccer/cfg/server.cfg. Every line here is a real IOSoccer setting:

hostname "Sunday League Club | 8v8"
rcon_password "use-something-long"
sv_password ""                 // set one for private scrims
sv_lan 0                       // must be 0 to list on the internet
sv_region 255

mp_maxplayers 8                // players per team, 1 to 11
mp_timelimit_match 20          // real minutes for the whole match
mp_timelimit_halftime 1        // half time break in minutes
mp_botkeepers 1                // bots in goal when no one takes the gloves
mp_humankeepers 1
mp_offside 1
mp_extratime 0
mp_penalties 0

sv_autostartmatch 1
sv_alltalk 1
sv_allowdownload 1

mp_timelimit_match is in real life minutes without stoppages or half time: 20 real minutes plays as a 90 minute match on the in game clock. The other mp_timelimit_* settings use the same real minute scale.

Leave mp_maxplayers matched to the format. It is players per side, so 8 means 8v8, while +maxplayers 32 on the start line is the total number of connection slots, which leaves room for subs, spectators and referees.

Step 3: Start the server

Windows, from the iosoccer install folder:

.\srcds.exe -console -game iosoccer -condebug -port 27015 +maxplayers 32 +fps_max 500 -tickrate 100 +map 8v8_vienna

Linux:

cd ~/iosoccer
./srcds_run -console -game iosoccer -condebug -port 27015 +maxplayers 32 +fps_max 500 -tickrate 100 +map 8v8_vienna

What each part does:

Option Meaning
-game iosoccer Load the IOSoccer game folder
-condebug Write the console to iosoccer/console.log, handy for debugging
-port 27015 Game port
+maxplayers 32 Total slots on the server
+fps_max 500 Lets the server loop run fast enough to keep up with a high tickrate
-tickrate 100 Simulation updates per second; it must be set at launch
+map 8v8_vienna Starting pitch
+ip 1.2.3.4 Only needed if the machine has several network interfaces

Picking a tickrate

Tickrate is how many times per second the server simulates the ball and players. IOSoccer's ball physics feel noticeably sharper at 100 than at the Source default of 66, and 100 is what most community servers run. Higher values cost CPU on a single core rather than RAM. If players report the ball stuttering, look at CPU use before you raise it further. Our explainer on what tick rate means in games covers the trade off in more depth.

Step 4: Open the ports

Allow UDP 27015 through the firewall and forward it on your router to the server's local IP. Add TCP 27015 if you want to send RCON from outside, and UDP 27020 only if you use SourceTV for streams. The port forwarding guide shows the router side step by step.

Step 5: Join and choose a format

Players turn on the console once: Options, Keyboard, Advanced, tick Enable Developer Console. Then they press ~ and type:

connect 203.0.113.10:27015

To run the server from inside the game, authenticate and send commands with rcon in front:

rcon_password use-something-long
rcon exec 8v8
rcon changelevel 8v8_vienna
rcon sv_restart 0.5

exec 4v4, exec 5v5 and exec 8v8 load the format configs that ship with the server. Pair each with a pitch built for that size, since an 8v8 config on a small pitch packs everyone into the box. Type maps * in the console to list the pitches installed. The full list of match commands, from keepers to red card bans, is in IOSoccer server commands and RCON.

If the server does not show in the in game browser or players cannot get in, see IOSoccer server not showing or cannot connect.

IOSoccer players contesting the ball

Keeping it running

A club server earns its keep by staying up between fixtures, which is where a home PC falls short. It has to stay on, keep its address, and survive your router rebooting. On Windows the server window closes on a crash; on Linux, srcds_run restarts it automatically unless you pass -norestart.

If you would rather not babysit a PC, an IOSoccer server from GamezServers runs the same srcds setup with its own address. Map, Slots, Tickrate, Max FPS, RCON password and Auto update are settings in the control panel, we generate the RCON password for you, and server.cfg is editable in the file manager or over SFTP. It is live in about a minute, there is no port forwarding, and a club can split the bill between up to 10 members.

FAQ

What is the IOSoccer dedicated server app ID?

  1. Download it anonymously in SteamCMD with app_update 673990 validate. The game itself is app 673560 and free on Steam.

What tickrate should an IOSoccer server use?

100 is the common choice and gives responsive ball physics. Set it with -tickrate 100 on the start line, plus +fps_max 500 so the server can keep up.

How do I switch my IOSoccer server between 4v4 and 8v8?

Run exec 4v4 or exec 8v8 in the server console, or rcon exec 8v8 from the game, then change to a pitch built for that size.

Do players need to buy IOSoccer to join?

No. IOSoccer is free on Steam. Players install it, enable the developer console and connect.

How much RAM does an IOSoccer server need?

Very little. 2 GB handles 4v4 and 5v5, and 3 GB is comfortable for a full 8v8 with spectators. CPU matters more at high tickrates.

Skip the setup. Your own IOSoccer server.

$2.49USD first month

Then $4.99/mo. Just trying it? $1.25 for 3 days

Keep reading