How ISL works
Everything you need to play a season: the match-day path start to finish, quick answers to the small stuff, and a reference for captains and league staff.
The match-day playbook
Read this before your first match. Working things out after kickoff is too late. Five minutes, same path every time.
1 Once · Get match-ready Set up your profile
Do this once and you're set for the season.
Open the link, enter your email, confirm the magic-link. That's your account. You can add a password later on My profile.
On My profile: alias, photo, country, in-game role. This is what shows on your player page and in lineups.
Easiest: hit Link Steam account. Or paste your steamcommunity.com/profiles/... link. It must be the numeric SteamID64 (starts with 7656); vanity /id/ URLs don't work.
Your SteamID is what puts you on the right match server and ties your stats to your name. No SteamID, no spot on the server.
At the start of the season a moderator locks identities: your name, country, birth date and SteamID freeze. Get them right early; after that a moderator handles changes. Photo, role and stream link stay editable.
2 Before each match Answer availability
The one recurring thing you do. On the Match tab, mark yourself unavailable for any match you can't play. Leave it alone and you stay in the pool, your captain can still pick you. Only an explicit unavailable takes you out.
3 Minutes before kickoff Be ready
The five locks and goes public 20 minutes before kickoff. Nothing left to decide, just be there.
- Be online, Steam running, on the account that matches your SteamID.
- If you're in the five, a Connect to match button appears on My profile once the server is up.
- Coaching? A Connect as coach button appears instead. Connect, then type
.coach tor.coach ctin chat to lock to your team's side (see in-game commands). - Streaming? Go live before kickoff.
4 In the match In-game commands ⚠ Important
No referee sits on the server, you run the match from in-game chat. Open chat (Y all-chat, U team-chat), type a command, send. A dot or a bang both work: .ready = !ready.
Every player must know these before stepping on the server. "I didn't know the command" is not grounds for a replay, a restored round, or any score change.
The commands below are the only ones you may use. Touching any other server command is a rules breach and will be acted on, even if it was an accident, so don't experiment.
Every match is recorded and logged (server console logs + demo). Disputes are settled from the recording, not from memory. When in doubt, .forcepause and ask in the Discord before doing anything you can't undo.
.readyMarks you ready. The match starts when both teams are ready. Short: .r.
.unreadyTakes back your ready. Short: .ur.
.forcereadyReadies your whole team at once, one player is enough.
.tacTactical timeout. 4 per team per map, 30s each. Starts next round.
.techTechnical timeout, for a real problem (disconnect, crash, hardware). 2 per team per map, up to 5 min.
.pauseA plain stop. Stays paused until both teams .unpause. Use only when it's not a .tac or .tech.
.unpauseResume a .pause. Both teams must type it.
.stopRolls back the current round if it started wrong. Both teams must type it, and only while the round is clean (locks once anyone takes damage).
Every player is technically a match admin, so these work for you too. By convention the captain calls them, and only to fix a broken match.
.forcepausePauses so players can't lift it, only an admin resumes. Use when someone's crashed and the game must hold. Short: .fp.
.forceunpauseResumes without both teams agreeing. Short: .fup.
.restore <round>Rolls back to the start of any round, e.g. .restore 12. Unsure? .forcepause first and ask a moderator.
.startForces the match live without ready-up. Only if the ready system is stuck.
.restartResets the whole match. Only when a match must be abandoned and replayed, tell the other captain and a moderator first.
A coach connects like everyone else, then claims the coach slot from chat. Type it the moment you're in — until you do, you're sitting in a player seat. Once you're coaching you're locked to your own team's view, invisible to the players, and can't touch the round.
.coach ctTake your team's coach slot while it's on the CT side.
.coach tTake your team's coach slot while it's on the T side. Match the side your team is on right now — sides swap at halftime, so re-type .coach for the new side if your view doesn't follow.
.uncoachLeave the coach slot and go back to spectating free. There's one coach slot per team, so step out if another coach needs it.
Go: .ready. Break: .tac, or .pause / .tech then both .unpause. Round went wrong: both .stop. Anything bigger, let the captain call it.
5 After the match Always screenshot the scoreboard
Every player, every map, every time. At the end of each map, hold Tab to bring up the full scoreboard with player stats and take a screenshot. Win or lose, make it a habit, you never know when something breaks.
The system records the result and stats automatically, so normally nobody uploads anything. The screenshot only matters in the rare case auto-capture fails, then your captain can upload it on Team admin to recover the game. So take it, you almost never need it, but when you do it's the only way back.
How do I…
The small stuff, with a link straight to where you do it.
Change my alias
You can't change it yourself, your alias anchors your stats and pages. Contact the league to request a change and we'll sort it.
Set up streaming
Add your stream URL on My profile. When you go live during a match, your stream shows up on the broadcast card automatically, nothing to toggle.
Switch teams, or leave my team
You can't move yourself, a player holds one team per season. Contact the league and a moderator will transfer you.
Find or fix my SteamID
On My profile hit Link Steam account. It fills your SteamID in for you — nothing to find or type.
Prefer to enter it by hand? You'll need your numeric SteamID64 (17 digits, starts 7656):
Find your Steam profile link
- Open Steam and go to your own profile (in the app: click your name top-right → View my profile).
- Right-click anywhere on the profile page → Copy Page URL (or copy it from the address bar if you opened it in a browser).
- Look at the link. If it reads
steamcommunity.com/profiles/7656…, that long number is your SteamID64 — paste it into My profile and you're done. - If it reads
steamcommunity.com/id/yourname(a name, not a number), it's a custom URL — do the next step.
Not a number? Convert it with steamid.io
- Go to steamid.io.
- Paste your full profile link into the box and hit lookup.
- Copy the steamID64 value (17 digits, starts
7656) and paste it into My profile → SteamID.
If the field is locked, your details are already set for the season — contact the league to change it.
Sign in with a password
Set one under My profile → Password. The email link still works too. Forgot it? Use "Forgotten your password?" on any sign-in panel.
If you're a captain
For captains, team moderators, and coaches. Coaches have the same controls here but can't be picked into the playing five — instead they get a Connect as coach button on match day and take the coach slot in-game with .coach t / .coach ct (see in-game commands). On top of the player playbook above, you run the team and own the result: lineup, map picks, and the occasional screenshot recovery when a game doesn't record on its own.
Get your players in
Add players on Team admin → Invitations. Two sections: pick the one that fits, create the link, send it. Links don't expire.
Already on your roster, marked “Unclaimed”? Use Invite existing team member, it keeps their stats. Anyone new gets New team member. Using New for someone who's already there makes a duplicate, so check your roster first.
Check here first. Their profile already exists (marked Unclaimed); this just gives them their login, keeping their stats.
Choose them from the “Which player is this for?” dropdown (only unclaimed players on your team show). Empty means everyone's logged in, use New team member instead.
Hit Create invite link and send it to that one person.
They open it and sign in with their email. They're attached to that profile, stats and all, and just add a SteamID if it's missing.
Everyone else, joining for the first time.
Hit Create invite link. Nothing to fill in.
Share it directly with them (a DM, not a public channel).
They open it and sign in with their email. A fresh profile lands on your roster; they finish it on My profile (alias, photo, SteamID).
Each season has a roster-lock date. After it passes you can't add players until the season ends, so get your full roster in before the deadline.
Roles and roster
The rest of your team setup, also on Team admin.
Each member is a Player, Moderator, Captain, or Coach. Moderators can help with the lineup and screenshot uploads. Coaches get full captain controls but never appear in the playing five. There's one captain at a time; hand it over from the roster if needed.
Move players between active and benched. Upload your team logo and edit notes. Team name, abbreviation, country, and color are set by league moderators (they're brand and stats anchors), so reach out if one is wrong.
Maps and the playing five
Two jobs per match: pick the map(s) and lock your five. Do them any time before the 20-minute reveal window.
Every format works the same way: both captains rank the season pool from most to least wanted, and the system runs the veto automatically. Best-of-1 is six bans — the last map standing is played. Best-of-3 and best-of-5 interleave picks. You never see the opponent's ranking.
Choose exactly five, then lock the lineup. You can pick anyone except players who've marked themselves unavailable; "not answered" players are still pickable (they often confirm to you off-site).
Twenty minutes before kickoff, your locked five and the picked map(s) go public on the match page. That's the broadcast moment for spectators.
Everything's frozen
Once the reveal window opens, the five, the map picks, and the veto are locked for you.
If something genuinely breaks inside the window (a late injury, the wrong five locked), a league moderator can fix it for you. Reach out rather than scrambling; you can't change it yourself once it's public.
With no referee on the server, the captains run the game from in-game chat, the pauses, round restores, and recovery commands are yours to call. The full command cheat sheet (everyday and admin) is in the match-day playbook above; know it before kickoff. "I didn't know the command" never earns a replay or a score change.
Upload screenshots (edge cases only)
Normally you don't touch this, the system records every result and player stat from the server automatically. Uploading is only for the rare case auto-capture fails and a game needs recovering.
For each affected map, hold Tab for the full scoreboard with player stats and screenshot it (any player on the team should have one, that's why the habit matters). Upload it on Team admin for that match.
Each team uploads its own. The system reads the scores and player stats; if both agree it scores on its own, if they disagree a moderator reviews.
If you're a caster
For crew with the caster role. You connect from the Caster console to the in-game GOTV relay (delayed) and broadcast it to the league channel.
Set up so a match doesn't drop you
Connect (GOTV) on Caster launches CS2 and joins the delayed relay — and sets engine_no_focus_sleep 0 + fps_max 120 for you, so alt-tabbing to OBS won't drop the stream. That applies on a cold launch only; if CS2 is already open, hit copy cmd and paste it into the console instead.
Not exclusive Fullscreen. In fullscreen, alt-tabbing to OBS minimises CS2 and the engine throttles — you fall behind the relay and get kicked ("Client delta ticks out of order"). Borderless keeps it rendering while you work in OBS.
NVENC (NVIDIA), QuickSync (Intel) or AMD VCE — not x264 (CPU). Software x264 steals the CPU CS2 needs to keep up with the GOTV relay on the same machine.
When you start streaming on the official channel, toggle Go live in the console — the public "Watch live" link then shows on the landing page and match page (works before kickoff for a pre-show). Toggle it off when you're done.
GOTV is intentionally delayed and in-game only — it's your input, not the audience's path. Viewers watch your Twitch broadcast (≈90s behind), so the live scoreline on the site can run ahead of what they see.
If you're an admin
For league moderators and gods. The map below is a quick orientation to Admin; each section there has inline help.
What the admin tools cover
Draft and publish seasons, and choose the spotlight season (the public default) and the active one (where you and captains edit) — usually the same. A season carries its map pool, reveal offset, roster-lock and start/end dates; lock a finished one to freeze it.
Create teams and assign captains (a player can hold a place on only one team per season). Team color is auto-assigned; name, abbreviation, and country are locked anchors. Lock and unlock player identities, set photos, and override a SteamID when a player can't.
Create and edit matches, set maps and scores, and move status. Map names come from the season pool, never free text. Changing a match's date by a lot, or postponing it, offers to reset that match's stale lineup and map picks.
Approve pending uploads (the OCR writes player stats on approval), step in when two teams' screenshots disagree, and backfill historical screenshots into older matches.
The database is the single source of truth. Every public page reads from it, match status is written only by the system or an admin, and there's no spreadsheet sync. If a surface looks wrong, fix the data, not the page.