Competitive CS2.
Self-hosted.
FLICKED is a free, open-source platform for running your own CS2 ladder: matchmaking, parties, ratings, match history and demos. You bring the servers. FLICKED finds the players, makes the match, tells one of your servers to run it, and records what happened.
# 1. the database
docker compose up -d
# 2. the backend, on http://localhost:5165
cd backend/Flicked.Api && dotnet run --launch-profile https
# 3. the launcher
cd launcher && npm install && npm run tauri devWhat FLICKED does#
Matchmaking
Queue solo or with a party and get matched with players of a similar rating. The window widens the longer you wait.
Map vote
Everyone accepts, then everyone votes. The highest vote wins and ties are settled at random.
Server pool
Owners register their CS2 servers once. FLICKED hands one out per match and takes it back when the match ends.
Ratings and history
Every match updates ratings and is kept, with its demo. A win never loses you rating.
Parties
Invite friends and queue as one. Parties are always drafted whole onto the same team.
Self-hosting
One docker compose up for the database, and the API migrates itself on startup.
What it does not do#
Being clear about this saves everyone time.
No server hosting
It coordinates CS2 servers you already run. It does not create or host them.
No anti-cheat
Use a community anti-cheat on your servers if you need one.
Not a Valve service
It has nothing to do with official CS2 matchmaking.
Why these lines are drawn where they are is written down in Roadmap & decisions.
The pieces#
Four programs and a database. The backend owns every decision; everything else asks it.
| Part | Built with | Who uses it |
|---|---|---|
| Launcher | Rust + Tauri, React and TypeScript in the webview | Players: queue, friends, parties, history |
| Backend | C# and .NET 10 (ASP.NET Core), EF Core | Everyone, indirectly. Every rule lives here |
| Database | PostgreSQL | The backend only |
| Dashboard | Next.js and Tailwind | Admins: the server pool and the news feed |
| Website | Next.js and Tailwind | Anyone |
| CS2 side | Metamod, CounterStrikeSharp and MatchZy | Your game servers |
Explore the docs#
Quickstart
Database, backend and launcher running on your machine in three commands.
Architecture
What talks to what, in what order, and which piece is trusted with what.
Self-hosting
Build and run FLICKED on a Windows or Linux VPS your friends can reach.
Rating
How a match changes your rating, and why performance is bounded.
Running the CS2 server
The plugin chain, surviving CS2 updates, and telling which link broke.
API reference
Every endpoint, grouped by who calls it and how it authenticates.
Project status#
The whole path works end to end, on a real server, with real people: two players signed in through Steam, queued, accepted, voted a map, and CS2 connected them itself. The match finished and the result was written to Postgres.
Steam sign-in, tokens held in Rust
Server pool with leases
Matchmaking, accept and map vote
Results reported back by MatchZy
Parties and rating (merged and tested)
Short-handed matches for small groups
News feed written from the dashboard
Deployment guides for Windows and Linux
Parties and rating are merged, tested and deployed, but have not yet been proven in a live match. The known gaps list is an honest account of what is wrong today, and a good place to start if you want to contribute.