Ready Up
A native CS2 server plugin for scrims, pickups and tournament matches.
In development
Ready Up is not released yet. Auto Tournament CS2 is still the supported plugin, and you should keep using it for now. Ready Up will replace it in a later release. These pages describe how Ready Up works today. Expect breaking changes.
Ready Up runs the match flow on a CS2 server. Players ready up, the match goes live, and results go back to Auto Tournament. It does the same job as Auto Tournament CS2, MatchZy and Get5. It is not a fork of any of them. It reuses their chat commands and event names where that makes sense, so moving over is easy.
- Source: github.com/Auto-Tournament/ready-up
- Bugs and questions: GitHub issues or Discord
- License: PolyForm Noncommercial 1.0.0, free for non-commercial use. Commercial use needs a paid license. See Licensing.
What it does
- Ready-up for scrims and pickups: players type
.r, a short countdown runs, and the scrim goes live on its own. - Matches loaded from Auto Tournament, with a roster whitelist and team locks.
- A knife round with a side pick (
.stay/.switch). - Tactical timeouts (
.tac) and technical pauses (.tech) with limits and an automatic unpause. .forceready, team names in game, a captain forfeit, and a forfeit when a whole team leaves.- An opt-in esports mode that applies Valve's tournament rules.
- A warmup that feels like CS2's own: infinite money, no weapon drops, no bomb.
- A panel in the middle of the screen that shows who is ready, and a welcome card when you join.
- Admin commands for maps, including Workshop maps with a download progress bar.
- A practice mode with tools: saved positions, rethrow, spawns, bots, and flash and damage feedback in chat.
- GOTV demos for each map, with an optional upload.
- Admins, settings and crash recovery in small JSON files. There is no database.
- A local status endpoint (
/health,/status) for monitoring tools. - Webhooks and a heartbeat for Auto Tournament, or one WebSocket link to the platform in fleet mode.
Skins (weapon paints, knives, gloves, agents) are a separate, optional plugin. See Skins.
No Metamod or CounterStrikeSharp
Auto Tournament CS2 needs Metamod:Source and CounterStrikeSharp. Ready Up needs neither.
CS2 finds its server module, libserver.so, through the search paths in gameinfo.gi. Ready Up adds one line there, Game csgo/readyup, above Game csgo. CS2 then loads Ready Up's libserver.so first. Ready Up loads Valve's real libserver.so and passes everything through to it. This is the same trick Metamod uses.
That means fewer moving parts. There is no .NET runtime, and no need to wait for Metamod and CounterStrikeSharp to catch up after a CS2 update. We recommend running Ready Up on its own. Metamod and CounterStrikeSharp can run next to it, with limits. Never run a second match plugin. See Running other plugins.
How it survives CS2 updates
A CS2 update can move the engine functions a plugin calls. Ready Up keeps the number of places it touches the engine small, and checks each one.
- Every engine function Ready Up calls or hooks is listed in one file,
gamedata/engine-surface.json. - Each entry has a byte signature and one or more identity anchors. An anchor is a check such as "this function references the string
say_team". - A function only counts as found when its signature matches exactly once and every anchor passes.
- If a function is not found, only the features that need it turn off. Each one logs a single line. The rest of the server keeps running.
- CI checks the file against every new public CS2 build, so a break is usually known before it reaches a server.
- On a running server,
ru selftestchecks every hook, offset and feature, and ends withPASSorFAIL.
The details are in Engine surface.
Core and plugins
Ready Up is a small core and a set of plugins, like Metamod and its plugins in one package. The core owns everything that touches the engine. Plugins only call a versioned C API, so a CS2 update needs a core fix only. Each plugin can be installed, reloaded or turned off on its own, without a server restart.
| Part | What it does | In Essentials | In Full |
|---|---|---|---|
| Core | Loading, engine surface, hooks, chat and console commands, the plugin host, ru selftest, the status endpoint. | Yes | Yes |
| Match | Ready-up, scrims, knife round, pauses, match configs, webhooks, demos, stats, the ready panel. | Yes | Yes |
| Essentials | Admins (admins.json) and the map commands. | Yes | Yes |
| Practice | Practice mode and its tools. | Yes | Yes |
| Fleet | The link to the Auto Tournament platform. Idle until you set it up. | Yes | Yes |
| Skins | Weapon paints, knives, gloves and agents. | No | Yes |
| Whitelist | Only listed players may join. Off until you turn it on. | No | Yes |
| Midas | For fun: gold weapons for chosen players. Off until you turn it on. | No | Yes |
| Deathmatch | Free for all and team deathmatch. Off until an admin starts it. | No | Yes |
| Addons | Steam Workshop addons without Metamod. Idle until you list one. | No | Yes |
| Hello | A small example plugin for developers. | No | Yes |
You can also use Ready Up without a platform. What each plugin does, and which ones to pick, is in Plugins. Anyone can write a plugin with the Ready Up SDK.
Coming soon
These are being built now:
- The platform side of fleet mode, including failover to another server.