Skip to content
/SLASHPLAY
Intermediate Video guide Updated October 22, 2026

Warcraft: Source on Counter-Strike: Source

Run Warcraft: Source on your CS:Source server: turn on the mode to play with SLASHPLAY's ten Legends, add community race packs by link, then set admins and XP.

0:00 / 1:25
Read the transcript

This audio was created with Boson AI's Higgs Audio: boson.ai/higgs-audio

Warcraft: Source (WCS) gives every player a race with its own skills, which level up as they earn XP from kills and objectives. The Warcraft: Source mode installs it with SLASHPLAY’s ten Legends, so the server is ready to play. More races come from community race packs, which you add by pasting their link.

Before you start

  • You need Control servers on the team.
  • The server must be Live.

Turn on the mode

  1. Open Game-specific → Modes.
  2. Under Mode preset, pick Warcraft: Source.
  3. Click Apply mode, then Apply mode again in the confirmation. The first time, the server installs WCS and the Legends and restarts once. Wait for Live again.
  4. Join the server and type changerace in chat to pick a race. wcs opens the main menu.
The Modes panel with Warcraft: Source picked as the preset
Pick Warcraft: Source, then Apply mode.

Active mode now reads Warcraft: Source, applied again every time the server starts.

The Legends

Each Legend has four skills of its own and plays on the game’s usual player models.

LegendIn one line
ThorThe thunder god. His hammer always comes back.
ValkyrieChooses who falls, and who gets back up.
HadesLord of the dead, seldom seen coming.
MedusaOne look is all it takes.
AchillesCannot be beaten, except at the heel.
AnubisWeighs your heart, then keeps it.
Sun WukongThe Monkey King: seventy-two shapes and a very long staff.
Robin HoodRobs the rich and rarely misses.
DraculaComes in as mist, leaves well fed.
BlackbeardLit fuses in his beard and a deck full of powder.

Add community race packs

Players have written hundreds of WCS races and share them as race packs, mostly on GitHub. SLASHPLAY doesn’t make or check them. To find one, search GitHub for “WCS race pack”. The largest is ManifestManah’s Master Collection, with over 260 races. Many of its races use the extra commands in his EventScripts Emulator pack, so add both:

  • https://github.com/ManifestManah/Content-Package-Master-Collection
  • https://github.com/ManifestManah/EventScripts-Emulator-For-WCS

With the mode on, a Race packs section appears under it:

The Race packs section with its GitHub link field and Add pack button
Paste a pack's link, then Add pack.
  1. Paste the pack’s GitHub link into GitHub link and click Add pack.
  2. Add the next pack the same way.
  3. Click Restart now.

The pack’s races are in changerace next to the Legends. Players download the pack’s sounds and textures the first time they join.

What a pack adds

The pack’s folders go into the matching folders under cstrike, the same as uploading them in Advanced → Files. Left out:

  • Copies of Source.Python, the emulator, WCS or the Legends. The mode already installed working versions, and a pack’s copy would replace them.
  • Your own settings: cfg/server.cfg, WCS’s config.cfg and privileges.json, and SourceMod’s admin files.
  • Anything that isn’t game content, like the pack’s README.

If the pack has a cfg/autoexec.cfg and your server already has one, the pack’s lines are added at the end of yours under a comment naming the pack. Lines you already have aren’t repeated.

Adding a pack again brings its files up to date. The link can also point at a branch, like https://github.com/owner/repository/tree/branch.

Pick which races load

  • Legends: they’re listed under "Legends" in cfg/source-python/wcs/races.json. Delete a Legend’s line to drop it, then restart. It stays out.
  • Race packs: each es_load wcs/loaders/racepack_… line in cfg/autoexec.cfg loads one group of a pack’s races. Delete a line to drop that group, then restart.

Make yourself a WCS admin

WCS admins can give XP and levels and change anyone’s race from a menu.

  1. After the first start with WCS, open cfg/source-python/wcs/privileges.json in Advanced → Files.
  2. Replace STEAMID_EXAMPLE1 with your Steam ID, for example STEAM_0:1:12345678. Add one block per admin.
  3. Restart the server.
  4. Type wcsadmin in chat.

XP and levels

WCS writes its settings to cfg/source-python/wcs/config.cfg on the first start. Edit the values there and restart. The ones that set the pace:

SettingDefaultMeaning
wcs_kill_xp20XP for a kill.
wcs_headshot_xp15Added for a headshot.
wcs_knife_xp40Added for a knife kill.
wcs_round_win_xp20For the winning team at the end of a round.
wcs_interval80Each level takes this times the level in XP: level 1 takes 80, level 10 takes 800. Lower it to level faster.

Players’ races and levels are saved with the server.

Switching to another mode

Another mode unloads WCS. Its files, the race packs and everyone’s levels stay on the server, so switching back to Warcraft: Source brings it all back without installing again. To remove WCS itself, uninstall Warcraft: Source in Game-specific → Plugins.

Troubleshooting

“GitHub has no public repository at that link.” Use the link of the repository’s main page. Private repositories can’t be added: download the pack and upload it in Advanced → Files instead.

“That repository has no CS:S folders to add.” The pack isn’t laid out like a server’s cstrike folder, with addons, cfg or sound at the top. Upload the files where the pack’s instructions say, in Advanced → Files.

changerace does nothing. Check that Active mode reads Warcraft: Source. sp plugin list in the console should list es_emulator and wcs.

A pack’s races don’t show up. They load from the es_load lines in cfg/autoexec.cfg, at the next restart. Check that the pack’s lines are there, then restart.

A pack’s race loads but its skills do nothing. It needs the extra commands from EventScripts-Emulator-For-WCS. Add that pack, check that cfg/autoexec.cfg has sp plugin load commandsx, and restart.

Some of a pack’s races are missing. A few races in a pack have mistakes in their own files and are skipped. Source.Python’s log in logs/source-python/ names them.