XP

XPX

CounterStrikeSharp plugin for CS2 servers with persistent XP, levels, ranks, missions, achievements, stats, economy, crates, RTV, admin tools, and custom loadout modes

by Azuyah10NOASSERTIONcounterstrikesharp
achivementsadmin-toolscommunity-servercounter-strike-2counterstrikesharpcratescs2cs2-plugindedicated-servereconomyleveling-systemmap-votemissionsprogressionrtvserver-pluginshop-systemsqlitestatssteamcmd

XPX

Persistent progression, missions, economy, and admin tooling for serious CS2 community servers.

Counter-Strike 2 CounterStrikeSharp .NET Windows SQLite License

CS2 XPX Banner

XPX is a CounterStrikeSharp plugin for Counter-Strike 2 that adds a full server-side progression layer:

  • level and XP progression up to level 500
  • rank, top list, tags, and level rewards
  • persistent SQLite-backed player data
  • missions, achievements, stats, economy, shop, crates, and XP boosts
  • RTV and admin map voting
  • admin tools for maps, modes, XP, credits, bots, and special rounds
  • forced global loadout modes for rifle, pistol, or knife-only servers

The plugin is designed for self-hosted CS2 community servers and is currently deployed with a local Windows + SteamCMD setup.

License and Usage

XPX is source-available and proprietary.

  • personal or internal server use is allowed
  • redistribution, resale, sublicensing, repackaging, and public reposting are not allowed
  • modified copies must not remove or obscure the original authorship, branding, or attribution
  • derivative versions must not be presented as an unrelated original work

See LICENSE.md for the full notice.

Preview

Preview Banner

Player Hub Admin Menu Shop / Crates
Player Hub Admin Menu Shop
Help Missions Crate Reward
Help Missions Crate Reward
Level Up Admin Page 2 Chat Progression
Level Up Admin Page 2 Chat Progression

What XPX Includes

Includes Banner

Core progression

  • XP from kills, wins, bomb plants, bomb defuses, assists, MVPs, first blood, clutches, killstreaks, and multikills
  • separate rewards for normal modes and fast modes such as Deathmatch / Arms Race
  • bot XP scaling
  • warmup XP disabled
  • persistent level, tag, and reward state per SteamID

Player systems

  • !me, !rank, !level, !top
  • !rewards to view the full level reward ladder
  • !stats with K/D, HS%, playtime, favorite weapon, streaks, and economy state
  • !missions for daily and weekly mission progress
  • !achievements for permanent badge unlocks
  • !shop, !wallet, and !inventory
  • !gamble <xp>

Economy and crates

  • server-side Credits economy
  • shop purchases for XP and crate tokens
  • weighted crate drops with Common, Rare, Epic, and Legendary tiers
  • crate rewards are limited to XP, Credits, crate tokens, and temporary XP boosts
  • active boosts persist and expire automatically

Server and admin tools

  • !rtv / !vote map voting
  • map and workshop map rotation
  • admin menu with map, mode, vote, bot, XP, and credit actions
  • special rounds such as knife rounds, pistol rounds, and warmup events
  • forced server-wide loadout mode for all players
  • global toggle for progression notifications

Requirements

  • Counter-Strike 2 dedicated server
  • CounterStrikeSharp

Install Options

Install Banner

Manual install from a ZIP

Download this release package:

XPX-v1.0.2-plugin.zip

Then:

  1. extract it locally
  2. copy the plugin files into your CS2 CounterStrikeSharp plugin folder
  3. restart the server

See docs/SETUP.md for the full install path.

Quick Start

1. Copy the plugin files

Copy the extracted plugin files into your server's CounterStrikeSharp plugin folder.

Typical plugin paths:

  • plugin path: game\csgo\addons\counterstrikesharp\plugins\XPXLevels
  • config path: game\csgo\addons\counterstrikesharp\configs\plugins\XPXLevels\XPXLevels.json
  • data path: game\csgo\addons\counterstrikesharp\data\XPXLevels

2. Configure XPX

Open and edit:

game\csgo\addons\counterstrikesharp\configs\plugins\XPXLevels\XPXLevels.json

3. Restart and join the server

Typical local connect:

connect 127.0.0.1:27015

Customize XPX

After the first server start, open this file:

game\csgo\addons\counterstrikesharp\configs\plugins\XPXLevels\XPXLevels.json

Most common edits:

  • Rewards: change tags and milestone reward entries
  • BaseXpToLevel, XpLinearGrowthPerLevel, XpQuadraticGrowthPerLevel: tune the XP curve
  • CasualCompetitiveKillXp, FastModeKillXp, KnifeKillBonusXp, HeadshotBonusXp: tune combat rewards
  • WelcomeMessages: change the join text players see

See docs/CONFIGURATION.md for the quick field guide.

Menu Keybinds

Use !bindmenu in chat first. XPX will try to bind the menu keys locally.

XPX menu controls:

  • 1-6 select visible items
  • 7 is Back on page 1 or Prev on later pages
  • 8 is Next
  • 9 is Close

If !bindmenu does not stick on your client, use these binds manually in the CS2 console:

bind 1 "slot1;css_1"
bind 2 "slot2;css_2"
bind 3 "slot3;css_3"
bind 4 "slot4;css_4"
bind 5 "slot5;css_5"
bind 6 "slot6;css_6"
bind 7 "slot7;css_7"
bind 8 "slot8;css_8"
bind 9 "slot9;css_9"
host_writeconfig

If you do not bind the keys, XPX still supports chat fallback with !1 through !9 while a menu is open.

Main Commands

Commands Banner

Player commands

  • !me
  • !help
  • !commands
  • !rewards
  • !level
  • !rank
  • !top
  • !stats
  • !missions
  • !achievements
  • !shop
  • !wallet
  • !inventory / !inv
  • !rtv
  • !vote
  • !gamble <xp>

Admin commands

  • !admin
  • css_givexp
  • css_removexp
  • css_givecredits
  • css_removecredits
  • css_changemap
  • css_restartmap
  • css_setmode
  • css_kick
  • css_kickbots
  • css_addbots
  • css_forceloadout
  • css_forcevote
  • css_cancelvote
  • css_kniferound
  • css_pistolround
  • css_warmupevent

For the complete command reference, see docs/COMMANDS.md.

Admin Setup

To use !admin and the XPX admin commands, add yourself to CounterStrikeSharp's admin config.

Edit these files on the server:

game\csgo\addons\counterstrikesharp\configs\admins.json
game\csgo\addons\counterstrikesharp\configs\admin_groups.json

Example admins.json entry:

{
  "YourName": {
    "identity": "76561198000000000",
    "groups": [
      "#XPX/admin"
    ]
  }
}

Example admin_groups.json entry:

{
  "#XPX/admin": {
    "flags": [
      "@css/root",
      "@XPX/root"
    ],
    "immunity": 999
  }
}

Replace the example SteamID with your own SteamID64, then restart the server.

Configuration

XPX is driven by XPXLevels.json. The config covers:

  • XP curve and max level
  • XP rewards and credits rewards
  • mission definitions
  • achievement definitions
  • shop items
  • crate definitions
  • map pool and workshop map pool
  • admin XP quick-amount presets
  • level reward ladder
  • welcome messages

For a detailed config guide, see docs/CONFIGURATION.md.

Persistence

XPX stores player progression in SQLite by SteamID. It persists:

  • XP
  • level-derived state
  • Credits
  • crate tokens
  • XP boosts
  • stats
  • missions
  • achievements

The default XPX database path is:

game\csgo\addons\counterstrikesharp\data\XPXLevels\xpx-levels.db

XPX also keeps a short-lived transition snapshot during map changes to protect player XP from map-switch reload edge cases.

Additional Docs

Notes

  • XPX uses custom numbered center menus with 1-9, plus !1-!9 chat fallback.
  • Workshop maps are supported by workshop ID.
  • Local non-workshop custom maps require separate client distribution and are not the preferred path.
  • The project currently targets a Windows-hosted local CS2 dedicated server workflow.