PLUGIN - ZombieSharp
Posted: Tue Feb 24, 2026 9:40 pm
ZombieSharp
Notice 07/13/2025
I decided to discontinue this project due to serveral reason.
CounterStrikeSharp's capability lacking a feature that I want to expand the feature.
Performanace issues, I take a measure after testing with 64 players comparing with CS2Fixes zombie reborn, ZombieSharp is worse.
In real life stuff, I'm hunting for a job right now lol.
Incoming of ModSharp (even it could take to 2035).
Notice 11/08/2025
Modsharp has been released at 10/01/2025, The project is now archived, see you at releasing of ZombieModSharp.
I TESTED RUNNING THIS PLUGIN WITH CS2FIXES. AS LONG AS YOU DON'T ENABLE ZOMBIE:REBORN, YOU CAN USE CS2FIXES ALONG WITH ZOMBIESHARP PLUGIN.
Zombie-Sharp is a Zombie Mode plugin for CS2 referencing the features and functions from the previous SourcePawn Zombie:Reloaded plugin. You can say this is the Zombie:Reloaded remake but in C#. Here is the list of features.
Feature of Zombie-Sharp
Basic Zombie Infection Initial with Timer
Mother Zombie Cycle
Infect and Human Command
Respawn Toggle option
Player Class Module
Weapon Module with purchase command.
Hitgroups Module (Will add later)
Knockback Module
ZTeleport Module
Configuration for Infection Settings (ConVar)
Cash on damage zombie
API for external plugin
Grenade Napalm Effect
Requirements
Metamode:Source Dev build (2.x).
CounterStrikeSharp
CSSharpFixes or MovementUnlocker or CS2-Sigpatcher plugin for knockback.
Newtonsoft.Json (This is already included in Release)
MultiAddonManager for Custom Content for zombie mod.
Recommend Plugin
NoBlock for Zombie Escape mode.
How to Build
Install .NET 8.0 SDK and Git.
Open up Windows Powershell and follow these command
git clone https://github.com/oylsister/ZombieSharp
cd ZombieSharp
dotnet build
Installation
Install a Metamod and CounterStrikeSharp with Runtime build.
Drag All files in zip to game/csgo.
Doing command setting and file configuration.
Start server and enjoy.
Command Setting
It's recommend to set these Convar before using the plugin to prevent crashed and issues that may occur.
// set in server.cfg
mp_limitteams 0
mp_autoteambalance 0
// set in gamemode_casual_server.cfg if file is not existed copy gamemode_casual.cfg and rename it.
mp_disconnect_kills_players 1
mp_roundtime 3 // set it to round time that you want.
mp_roundtime_hostage 0 // this will override mp_roundtime in the map "cs_" if value is more than 0.
mp_roundtime_defuse 0 // this will override mp_roundtime in the map "de_" if value is more than 0.
API Example
Check out ZombieTest for other API usages example.
Here is a list of all the config files available and what they do.
gamesettings.jsonc - Basic Infection timer and more settings you can set. This file existed as to apply game settings in case of ConVar failed to do.
Notice 07/13/2025
I decided to discontinue this project due to serveral reason.
CounterStrikeSharp's capability lacking a feature that I want to expand the feature.
Performanace issues, I take a measure after testing with 64 players comparing with CS2Fixes zombie reborn, ZombieSharp is worse.
In real life stuff, I'm hunting for a job right now lol.
Incoming of ModSharp (even it could take to 2035).
Notice 11/08/2025
Modsharp has been released at 10/01/2025, The project is now archived, see you at releasing of ZombieModSharp.
I TESTED RUNNING THIS PLUGIN WITH CS2FIXES. AS LONG AS YOU DON'T ENABLE ZOMBIE:REBORN, YOU CAN USE CS2FIXES ALONG WITH ZOMBIESHARP PLUGIN.
Zombie-Sharp is a Zombie Mode plugin for CS2 referencing the features and functions from the previous SourcePawn Zombie:Reloaded plugin. You can say this is the Zombie:Reloaded remake but in C#. Here is the list of features.
Feature of Zombie-Sharp
Basic Zombie Infection Initial with Timer
Mother Zombie Cycle
Infect and Human Command
Respawn Toggle option
Player Class Module
Weapon Module with purchase command.
Hitgroups Module (Will add later)
Knockback Module
ZTeleport Module
Configuration for Infection Settings (ConVar)
Cash on damage zombie
API for external plugin
Grenade Napalm Effect
Requirements
Metamode:Source Dev build (2.x).
CounterStrikeSharp
CSSharpFixes or MovementUnlocker or CS2-Sigpatcher plugin for knockback.
Newtonsoft.Json (This is already included in Release)
MultiAddonManager for Custom Content for zombie mod.
Recommend Plugin
NoBlock for Zombie Escape mode.
How to Build
Install .NET 8.0 SDK and Git.
Open up Windows Powershell and follow these command
git clone https://github.com/oylsister/ZombieSharp
cd ZombieSharp
dotnet build
Installation
Install a Metamod and CounterStrikeSharp with Runtime build.
Drag All files in zip to game/csgo.
Doing command setting and file configuration.
Start server and enjoy.
Command Setting
It's recommend to set these Convar before using the plugin to prevent crashed and issues that may occur.
// set in server.cfg
mp_limitteams 0
mp_autoteambalance 0
// set in gamemode_casual_server.cfg if file is not existed copy gamemode_casual.cfg and rename it.
mp_disconnect_kills_players 1
mp_roundtime 3 // set it to round time that you want.
mp_roundtime_hostage 0 // this will override mp_roundtime in the map "cs_" if value is more than 0.
mp_roundtime_defuse 0 // this will override mp_roundtime in the map "de_" if value is more than 0.
API Example
Check out ZombieTest for other API usages example.
Configurationusing CounterStrikeSharp.API;
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Core.Capabilities;
using ZombieSharpAPI;
namespace ZombieTest
{
public class ZombieTest : BasePlugin
{
public override string ModuleName => "Zombie Test";
public override string ModuleVersion => "1.0";
// Declare Capability First.
public static PluginCapability<IZombieSharpAPI> ZombieCapability { get; } = new("zombiesharp:core");
// Declare API class
IZombieSharpAPI? API;
public override void OnAllPluginsLoaded(bool hotReload)
{
// Get Capability.
API = ZombieCapability.Get()!;
// Excute Hook function
API.OnClientInfect += ZS_OnInfectClient;
}
// Hook function is here.
public HookResult ZS_OnInfectClient(CCSPlayerController client, CCSPlayerController attacker, bool motherzombie, bool force)
{
// check which client is infect.
Server.PrintToChatAll($"{client.PlayerName} is infected");
// if client name is Oylsister
if (client.PlayerName == "Oylsister")
{
Server.PrintToChatAll("Oylsister is immunity");
// Blocking infected
return HookResult.Handled;
}
if (force)
Server.PrintToChatAll($"by forcing.");
// Always use HookResult.Continue to allowing other player get infect as usual.
return HookResult.Continue;
}
}
}
Here is a list of all the config files available and what they do.
gamesettings.jsonc - Basic Infection timer and more settings you can set. This file existed as to apply game settings in case of ConVar failed to do.
https://github.com/oylsister/ZombieShar ... s/main.zip{
"FirstInfectionTimer": 15.0, // First infection delaying in seconds
"MotherZombieRatio": 7.0, // First mother zombie ratio (21 players / 7 ratio = 3 motherzombie will spawned.)
"MotherZombieTeleport": false, // Teleport mother zombie back to spawn after infection (Zombie Escape stuff)
"CashOnDamage": false, // Turn damage into cash for human.
"TimeoutWinner": 1, // When round time end specific team will win (0 = zombie | 1 = human.)
"DefaultHumanBuffer": "human_default", // human class unique name for default class
"DefaultZombieBuffer": "zombie_default", // zombie class unique name for default class
"MotherZombieBuffer": "motherzombie", // mother zombie class unique name for default class
"RandomClassesOnConnect": false, // random class on join or not.
"RandomClassesOnSpawn": true, // random class on every player respawn.
"WeaponPurchaseEnable": true, // Enable purchase via command or not. This also will toggle weapon purchase limit too.
"WeaponRestrictEnable": true, // Restrict specific weapon or not.
"WeaponBuyZoneOnly": false, // Only allow player to purchase weapon in buyzone.
"TeleportAllow": true, // allow using !ztele to teleport back to spawn point.
"RespawnEnable": true, // allow respawn after death or not
"RespawnDelay": 5.0, // respawn delay obviously
"AllowRespawnJoinLate": false, // allow player to join during the round and respawn into the game or not.
"RespawnTeam": 0 // 1 for human team | 0 for zombie team | 2 for player's they were before death.
}