Competitive ranking system plugin for CS 1.6 and Czero
Inspired by ranked matchmaking in Valorant, CS2, R6: Siege and Halo
You can test the plugin with bots on my servers
1.6: connect 51.68.155.216:27015
Plugin rates players by earning hidden points each round based on their performance (damage, kills, objectives, etc)
At map end, players are sorted by SPM (score per minute)
and then compared to each other to determine MMR gain/lose
Participation scaling - The more rounds player played, the bigger percentage of final MMR gain/lose he will get
Anti-smurf - Player cannot drop down below 1/2 of their highest MMR in the current season
Shield - Player loses less MMR on lower ranks, less frustrating for casual players
Placement games - player receives first rank after 5 placement matches
Seasons - Each season is an independent leaderboard
Ragequit protection - If player disconnects, his data will be saved until map change or reconnect
Previous season data is preserved in database. Server admins launch new ranked season using admin command.
HIDDEN SCORING SYSTEM
1 dmg = 1 point
+20 Headshot/knife/nade/pistol kill
20% bonus for dealing damage with bad weapon
+10 Longshot kill
+30 Bomb Plant
+40 Bomb Defuse
+15 Hostage rescued
-50 Hostage killed
+25 Round win
-15 Round lost
-50 Death
-25 Teamkill
5*killstreak Killstreak bonus until ACE
They modify SPM at the end of the match
| PRESENCE % | SPM |
|---|---|
| <50% | -20% |
| 50-65% | -10% |
| 80-90% | +10% |
| 90-100% | +20% |
| KD RATIO | SPM |
|---|---|
| <0.5 | -20% |
| 0.5-1.0 | -10% |
| 1.5-2.0 | +10% |
| >2.0 | +20% |
Just like CS:GO, from Silver 1 to Global Elite (at 5000 MMR)
You can use this plugin on both public and private/pub/scrim servers BUT for public servers, make sure You are using:
- Good team balancer like PTB for example
- AFK Kicker
- High ping kicker
Make sure You have latest ReHLDS with libraries, AMXX 1.10 and Karlib
Download plugin package from Releases and put into server/cstrike/addons/amxmodx/
Open server/cstrike/addons/amxmodx/configs/plugins.ini with text editor and at the end of the file, create a new line csr.amxx
rank_debug 0 - Toggle additional logging
rank_min_players 4 - Minimum amount of human players to start ranked match
rank_ideal_players 10 - Ideal amount of players (human+bots) for max MMR gain/loss
rank_min_minutes 5 - Minimum amount of minutes a player need to play to be eligible for MMR change
rank_score_cap 750 - Maximum score a player can earn in a single round, doesn't work in round-less modes
rank_match_win_bonus 0 - Give team that won a match extra map score(useful for pro/scrims/pugs)
rank_warmup_time 45 - Unranked warmup time in seconds
rank_double_gain 0 - Enables 2x MMR gain on server(useful for happy hours/2xp weekends events)
rank_karlib_port 8090 - Open port to use for HTML Motd pages
rank_db_type sqlite - Saving type: "sqlite" or "mariadb"
rank_db_host localhost - MariaDB database host
rank_db_user CSR - MariaDB user
rank_db_pass password - MariaDB password
rank_db_name CSR - MariaDB database name
amx_rank_adjust - Add/Substract player MMR by specified number
amx_rank_recalc - Force map-end calculation
amx_rank_cancel - Cancel ranked match on current map
amx_rank_status - Show player match data in console
amx_rank_newseason - Start a new ranked season
amx_rank_seasons - List all ranked seasons
/top - Open Top leaderboard for current season
/top 1 - Open Top10 leaderboard for season 1
/rank - Show You and players close to you in leaderboard
/history - Show your seasonal rank history
To add MySQL/MariaDB support, I used Claude AI. You have been warned