Skip to content

Kandru/cs2-cheater-troll

Repository files navigation

CounterstrikeSharp - Cheater Troll

UpdateManager Compatible Discord Support GitHub release License issues - cs2-cheater-troll

Tired of cheaters ruining your server? This plugin turns the tables by making their lives miserable with clever server-side tricks. It's inspired by the golden days of my community-driven Counter-Strike:Source server, where admin justice came with a side of entertainment. Whenever a cheater was spotted (wallhacking, spinbots, suspiciously perfect headshots), a little chaos was unleashed on their side only. They'd eventually rage quit or confess, and everyone else had a laugh.

Special thanks to ScriptKid from whom I got the idea years ago initially. You did something really funny and back then that made me laugh so hard. Now, I've brought this concept into CS2!

Best part? It works out of the box with zero configuration needed. But if you want to fine-tune the chaos, all settings are fully customizable.

Current Features

  • Announce Position — Cheater announces his position in the chat
  • Crouch Jump — Pushed back when crouching mid-air to make crouch-jumps harder
  • Damage Control - Cheater is dealing less damage than normal
  • Door Gate — Doors lock shut automatically and are not easy to open
  • Grenade Backfire — Grenades damage the cheater
  • Heavy Knife — Short time slower movement when equipping knife
  • Impossible Bomb Plant — Bomb plants fail silently
  • Invisible Enemies — Do not transfer enemy player data to the cheater (where there is no data, there is no ability for a wallhack)
  • Player Glow — Everybody gets a wallhack to see the cheater
  • Random Sounds — Plays random weapon and grenade sounds every now and then
  • Visible On Radar — Always visible on minimap

Plugin Installation

  1. Download and extract the latest release from the GitHub releases page.
  2. Move the "CheaterTroll" folder to the /addons/counterstrikesharp/plugins/ directory of your gameserver.
  3. Restart the server.

Plugin Update

Simply overwrite all plugin files and they will be reloaded automatically or just use the Update Manager itself for an easy automatic or manual update by using the um update CheaterTroll command.

Commands

cheater

Permission: @cheatertroll/admin

Quick Tutorial

The cheater command is an interactive menu system to enable cheater punishments for individual players. You can run it from either the server console or client console:

  1. Type cheater (without arguments) to list all players on the server, for actions simply prepend the command with the player index / value to change (e.g., cheater 1)
  2. Choose a player by typing the menu number next to their name
  3. Toggle features on/off using the numbers shown in the submenu
  4. Configure settings like distance limits or modes for each enabled feature
  5. Return to previous menu by selecting cheater 0 (Back)

Example command line:

> cheater
[Client] === Overview ===
[Client] 1. X kalle (765611XXXXXXXXXXX, 0.26 min online)
[Client] 0. Exit
> 
> cheater 1
[Client] === Overview -> kalle (765611XXXXXXXXXXX) ===
[Client] 1. Enable Cheater
[Client] 0. Back
> 
> cheater 1
[Client] ✓ Cheater enabled
[Client] === Overview -> kalle (765611XXXXXXXXXXX) ===
[Client] 1. Disable Cheater
[Client] 2.DoorGate
[Client] 3.DamageControl
[Client] 4. X PlayerGlow
[Client] 5. X GrenadeSelfDamage
[Client] 6.ImpossibleBombPlant
[Client] 7. X InvisibleEnemies
[Client] 8. X RandomPlayerSounds
[Client] 9. X VisibleOnRadar
[Client] 0. Back
> 
> cheater 4
[Client] === Overview -> kalle (765611XXXXXXXXXXX) -> PlayerGlow ===
[Client] 1. Enable
[Client] 0. Back
> 
> cheater 1
[Client] ✓ PlayerGlow enabled
[Client] === Overview -> kalle (765611XXXXXXXXXXX) -> PlayerGlow ===
[Client] 1. Disable
[Client] 0. Back
> 
> cheater 0
[Client] === Overview -> kalle (765611XXXXXXXXXXX) ===
[Client] 1. Disable Cheater
[Client] 2.DoorGate
[Client] 3.DamageControl
[Client] 4.PlayerGlow
[Client] 5. X GrenadeSelfDamage
[Client] 6.ImpossibleBombPlant
[Client] 7. X InvisibleEnemies
[Client] 8. X RandomPlayerSounds
[Client] 9. X VisibleOnRadar
[Client] 0. Back
> 
> cheater 0
[Client] === Overview ===
[Client] 1.kalle (765611XXXXXXXXXXX, 0.77 min online)
[Client] 0. Exit

Configuration

This plugin automatically creates a readable JSON configuration file. This configuration file can be found in /addons/counterstrikesharp/configs/plugins/CheaterTroll/CheaterTroll.json.

{
  "enabled": true,
  "debug": false,
  "global_config": {
    "always_door_closed": {
      "enabled": true,
      "enabled_for_new_cheater": true,
      "sound": "Saysound.Knock",
      "speed": 60,
      "delay": 0.1
    },
    "announce_position": {
      "enabled": true,
      "enabled_for_new_cheater": true
    },
    "crouch_jump": {
      "enabled": true,
      "enabled_for_new_cheater": true
    },
    "damage_control": {
      "enabled": true,
      "enabled_for_new_cheater": true
    },
    "glow": {
      "enabled": true,
      "enabled_for_new_cheater": false,
      "color": "#ff00a2"
    },
    "grenade_self_damage": {
      "enabled": true,
      "enabled_for_new_cheater": false,
      "flashbang_duration": 5
    },
    "heavy_knife": {
      "enabled": true,
      "enabled_for_new_cheater": true
    },
    "impossible_bomb_plant": {
      "enabled": true,
      "enabled_for_new_cheater": true
    },
    "invisible_enemies": {
      "enabled": true,
      "enabled_for_new_cheater": false,
      "mode": "Full"
    },
    "random_player_sounds": {
      "enabled": true,
      "enabled_for_new_cheater": false,
      "sounds": [
        {
          "name": "Weapon_Knife.Deploy",
          "amount": 1,
          "interval": 1
        },
        {
          "name": "Weapon_Knife.Slash",
          "amount": 1,
          "interval": 1
        },
        {
          "name": "BaseSmokeEffect.Sound",
          "amount": 1,
          "interval": 1
        },
        {
          "name": "HEGrenade.PullPin_Grenade",
          "amount": 1,
          "interval": 1
        },
        {
          "name": "Weapon_Taser.Single",
          "amount": 1,
          "interval": 1
        }
      ],
      "wait_time": 5,
      "min_time": 5,
      "max_time": 30
    },
    "visible_on_radar": {
      "enabled": true,
      "enabled_for_new_cheater": false
    }
  },
  "cheater": {},
  "ConfigVersion": 1
}

global_config

The global config section contains all available options for each module. Each option has its own subsection containing various parameters such as enabling/disabling specific features, setting thresholds, etc.

enabled <true/false>

Whether or not this modules is enabled or disabled globally.

enabled_for_new_cheater <true/false>

Whether or not a newly marked cheater should have this feature enabled by default. This should be set to false unless you want to make it obvious to a new cheater that he is being punished. Per default everything to obvious is disabled.

Compile Yourself

Clone the project:

git clone https://github.com/Kandru/cs2-cheater-troll.git

Go to the project directory

  cd cs2-cheater-troll

Install dependencies

  dotnet restore

Build debug files (to use on a development game server)

  dotnet build

Build release files (to use on a production game server)

  dotnet publish

License

Released under GPLv3 by @Kandru.

Authors

About

Trolling cheaters on your server. They truly deserve it :)

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages