No description
Find a file
2026-09-25 01:38:12 +00:00
.github Update ray trace masks and beam cleanup 2026-09-25 03:37:34 +02:00
jRandomSkills - Server Files Update ray trace masks and beam cleanup 2026-09-25 03:37:34 +02:00
jRandomSkills - SRC Files Update ray trace masks and beam cleanup 2026-09-25 03:37:34 +02:00
WASDMenuAPI - SRC Files v1.2.4.b3 2026-09-25 03:34:10 +03:00
.gitignore v1.2.3.b8 - fix: perf percentiles and duplicate entity log lines 2026-08-21 17:24:26 +03:00
LICENSE Create LICENSE 2025-08-29 02:45:42 +02:00
README-PL.md chore: update contributors and thanks 2026-09-25 01:38:12 +00:00
README.md chore: update contributors and thanks 2026-09-25 01:38:12 +00:00
updater.json v1.2.3.b3 - HUD auto-hide 2026-08-01 21:11:59 +02:00

GitHub release       GitHub latest commit       Github all releases       GitHub stars       Discord server

📌

Note

This repository is a fork of the project created by Jakub Bartosik (D3X).

💡 About

jRandomSkills is a plugin for CounterStrike 2 that brings chaos and fun to gameplay! In each round, you randomly receive one of the unique skills - from invisibility and explosive shots to camera manipulation. Surprise your opponents, take control of the match, and discover dozens of creative abilities that transform the game's dynamics!

Choose language:

💬 Available languages

🖼️ Preview

Preview Preview2

🌐 Test Server

Join the 3v3 test server and try out the jRandomSkills plugin:

  • Address: jRandomSkills@pukawka.pl
  • Password: public
  • Opening Hours: 22:00-17:00 UTC
  • Connect URL: steam://connect/51.38.122.215:27215/public
  • Connect: connect 51.38.122.215:27215; password public

Buying a server on pukawka? Use my referral code.

✨ Current Skills (154)

The table below lists all available skills in the game, along with their descriptions.
Name Description Cooldown / Range
Aimbot Every bullet you hit counts as a headshot -
Aim Lock Click [css_useSkill] to lock your aim on the nearest enemy 20 s
Anomaly Click [css_useSkill] to rewind a few seconds back in time 15 s
Anti-Flash You are immune to flashbangs, and your flashbangs last 7 seconds -
Armored You have a random damage taken multiplier (0.65 - 0.85)x
Assassin You deal increased damage to enemies from behind -
Astronaut You receive a random gravity value at the start of the round (0.1 - 0.7)x
Bankrupt Choose the player who will lose all their money -
Baseball Player Your decoy bounces off walls and instantly kills an enemy on impact -
Berserker You deal more damage and move faster as your health gets lower -
Blademaster While holding a knife, you have a high chance to deflect a shot -
Blast Shot Press Attack2 with the MP5 to fire an HE grenade 10 s
Bounty Put a price on an enemy's head; whoever kills them takes the money 300$
Bunny You get auto "BunnyHop" -
C4 Camouflage You are invisible while holding the bomb -
Careful Bullets Select a player who takes damage for every missed shot -
Catapult You have a random chance to launch an enemy upwards (20 - 40)%
Chameleon The first player you kill gives you their skill -
Chicken You get a chicken model + 10% faster movement - 50 HP -
Chillout Planting the bomb takes significantly longer -
Cutter Instant kill with a knife -
Cypher Click [css_useSkill] to create/switch to a camera 30 s
Darkness Applies a darkness effect to a chosen enemy -
Deactivator Choose a player whose skill you want to disable -
Deaf Choose a player to mute all sounds for -
Death Bomb You explode upon death, killing nearby players -
Demon Eye You deal damage to every enemy you are looking at 2 s
Disarmament You have a random chance to make an enemy drop their weapon on hit (20 - 35)%
Dash Perform a second jump to dash -
Dracula Hitting an enemy restores health equal to a percentage of the damage dealt -
Duplicator Choose a player to copy their skill -
Dwarf Random character size at the start of the round (60 - 95)%
EMP Grenade Anyone hurt by your grenade loses their radar and crosshair for a while 3 s
Enemy Spawn Click [css_useSkill] to teleport to the enemy spawn 15 s
Enemy Spin You have a random chance to turn an enemy 180° when hitting them (20 - 40)%
Expensive Ammo A chosen enemy has to pay for every shot -
Exploding Barrel Click [css_useSkill] to place a barrel that explodes when shot 20 s
Explosive Shot Random chance to fire an explosive bullet while shooting (15 - 30)%
Falcon Eye Click [css_useSkill] to activate a bird's-eye view camera -
Fastreload Click [css_useSkill] to reload the weapon you are currently holding -
Fire Rain Throw a decoy to call down a rain of Molotovs -
Flash Random player speed at the beginning of the round (1.2 - 3.0)x
Flashlight Click [css_useSkill] to turn the flashlight on or off. Its light can blind enemies 2 s
Fortnite Click [css_useSkill] to create a destructible barricade 2 s
Fragile Bomb Shooting the bomb damages it -
Friendly Fire Shooting teammates heals them -
Freezing Decoy Your decoy freezes all nearby players -
Gambler Select a skill from the list provided -
Ghost You are completely invisible -
Giant Enlarge an enemy of your choice (110 - 140)%
Glaz You can see through smoke grenades -
Glitch Disables the radar for a chosen enemy -
Glue Your grenades stick to walls -
God Mode Click [css_useSkill] to become immortal for a short time 30 s
Grapple Hook Press [css_useSkill] to fire a hook at the point you're aiming at and pull yourself there 10 s
Gravity Decoy Your decoy changes the gravity of everyone nearby 0.5x
Grenadier You have infinite HE grenades -
Healing Chicken Your chickens heal you while you are nearby 1 s = 5 HP
Healing Smoke Your smoke grenades heal -
Heavyweight Skills that push or slow you down have no effect on you -
Hermit Killing restores ammo and a portion of health -
Holy Hand Grenade Your HE grenades deal double damage and have double range -
Homing Grenades Your grenades (except smokes) are attracted to enemies -
Hot Bomb As long as you are alive, the bomb deals damage to its carrier -
Hologram Click [css_useSkill] to control your hologram for a few seconds 30 s
Illiterate As long as you are alive, your enemies cannot read -
Illusionist Click [css_useSkill] to deploy a replica that walks straight ahead 30 s
Impostor You start the round with an enemy player model -
Infinite Ammo You receive infinite ammo for all your weapons -
Inheritance When a teammate dies you can take over their skill -
Iron Head You take no damage from headshots -
Jammer Choose a player to disable their crosshair -
Jester In jester mode, you cannot get or take any damage. This mode changes every few seconds (10 - 25) s
Jetkick Select a player to jetkick -
Jump Curse A chosen enemy jumps whenever one of their teammates jumps -
Jumping Jack Jumping restores health -
Killer Flash Anyone fully blinded by your flashbang dies (including you) -
Knockback Firing while airborne pushes you backwards -
Last Gasp After you die, you deal damage to the enemy who killed you 30 HP
Legless Choose a player who cannot jump -
Life Swap Choose a player to swap health with -
Long Knife A primary knife attack deals damage regardless of distance -
Long Zeus Zeus deals damage regardless of distance -
Magnetic Decoy Your decoy attracts nearby players towards itself -
Magneto All enemy grenades are repelled away from you -
Magnifier Forces the enemy's screen to zoom in, reducing their field of view -
Medic Click [css_useSkill] to use a healing charge that restores 50 health 1 s
Bomb Miner Your HE grenade only explodes when there is an enemy nearby -
Nemesis The player you mark takes extra damage +0.25x
Nightmare Force a chosen enemy to experience a terrifying vision -
Ninja Standing still increases your invisibility by 33%, crouching by 33%, and holding a knife by 33% -
No-Nades Grenades deal no damage to you -
No Rifles Choose a player who cannot use rifles -
NoClip Click [css_useSkill] to enable noclip for a short time 30 s
One-Shot Hitting an enemy instantly kills them -
Head Only You only take damage to the head -
Pawel Jumper You get an extra jump -
Phoenix You have a random chance to respawn after death (20 - 40)%
Psychic Defusing When you are near the bomb, you start defusing it 10 s
Pilot Fly for a limited time. Hold [USE - E] to fly -
Free Planter You can plant the bomb anywhere, with a detonation time of 60 seconds -
Poison Choose a player who will take damage every few seconds -
No Rifles Choose a player who cannot use rifles -
Prosthesis Arms and legs are bulletproof -
Pusher You have a random chance to push an enemy back when hitting them 100%
Punisher You bank part of the damage you take and add it to your next hit 0.5x
Pyro Molotov restores health -
Rapid Fire All bullets are fired very quickly -
Radar Hack Enemies are visible on the radar -
Rambo You receive a random amount of health at the start of the round +(50 - 501) HP
Random Weapon Click [css_useSkill] to receive a random weapon 15 s
Re-Zombie After death, you respawn as a zombie with increased health and no weapons -
Reactive Armor Armor absorbs the first damage taken 15 s
Regeneration You restore health every few seconds -
Replicator Click [css_useSkill] to create a replica that deals damage on hit 15 s
Retreat Click [css_useSkill] to return to spawn 15 s
Return to Sender The first hit on an enemy sends them back to their spawn -
Rewind Click [css_useSkill] to drop a marker where you stand and return to it shortly after 30 s
Rich Boy You receive a random amount of money at the start of the round (5000 - 15000)$
Ricochet Your bullets bounce off walls and can still hit enemies -
Robin Hood Dealing damage to an enemy steals their money -
Rubber Bullets Your bullets significantly slow down players -
Sapper You can plant and defuse bombs faster -
Second Chance After death, you respawn with the same amount of health -
Shade You teleport behind the back of a hit enemy -
Short Fuse The bomb explodes much faster -
Silent Your footsteps and jumps are silent to other players -
Smoker Your smoke grenades never run out -
Sniper Elite Click [css_useSkill] to swap your current weapon for an AWP 0 s
Soldier You have a random damage multiplier (1.15 - 1.35)x
Soundmaker Every now and then, you hear player screams 2 s
Spectator Click [css_useSkill] to spectate a random enemy 0 s
Position Swap Click [css_useSkill] to swap places with a random enemy 30 s
Take Ammo Click [css_useSkill] to take the active weapon's magazine from a random enemy -
Team Teleport Press [css_useSkill] to teleport to the teammate you're looking at. 15 s
Teleporter You swap places with the hit enemy -
Taxman Choose a player to swap money with -
Thief You can steal a skill from a chosen player -
Third Eye Click [css_useSkill] to activate third-person view 0 s
Thorns Your opponent will receive a portion of the damage that they inflicted on you -
Throwing Knife Click [css_useSkill] to throw a knife. But watch out for others -
Toxic Smoke Your smoke grenades deal damage -
Tracker Choose a player who will leave a trail behind them -
Tripwire Click [css_useSkill] to string a wire between two walls. Enemies who touch it appear on your radar 20 s
True Armor Part of the damage you take is paid by your armor instead of your health 0.33x
Voodoo The enemy you mark also takes part of the damage you take 0.5x
Wallhack You can see enemies through walls -
Watchmaker Every grenade throw alters the round time -
Weapon Swap Click [css_useSkill] to swap weapons with a random enemy 30 s
Weightlessness Your grenades are not affected by gravity and fly faster -
Wild Throws Choose a player who will have trouble throwing grenades -
Zeus Zeus x27 instantly recharges -
Zone Reaper You can choose a bomb site to deactivate -

💻 Installation

  1. install / buy a CS2 server.
  2. Install Metamod.
    • Download Metamod:Source 2.x
    • Extract it to the C2Server/game/csgo/ folder.
    • Edit the gameinfo.gi file by adding a new line
          Game_LowViolence csgo_lv // Perfect World content override
          Game csgo/addons/metamod // <-- Line to add
      
          Game csgo
      
  3. Install CounterStrikeSharp.
  4. Install Ray-Trace
    • Download RayTrace-CSS-API
    • Extract folder conterstrikesharp to the CS2Server/game/csgo/addons/ folder.
    • Download RayTrace-MM
    • Extract it to the CS2Server/game/csgo/addons/ folder.
  5. Install jRandomSkills

</> Server Commands

Tip

Bind to use skills: bind x css_useSkill

The table below lists all available commands in the game, along with their descriptions.
Command Example Description Permissions
!setskill <playerName/steamID> <skill> !setskill Juzlus Aimbot Giving skill to a player @jRandomSkills/admin
!lang <IsoCode> !lang en Change the language -
!skills !skills List of skills -
!map <mapName> !map de_nuke Change map @jRandomSkills/admin
!map <mapWorkshopId> !map 3332005394 Change map from workshop @jRandomSkills/admin
!start !start Start game with conditions: mp_forcecamera 0, mp_freezetime 15, mp_overtime_enable 1, sv_cheats 0 @jRandomSkills/admin
!start sv !start sv Start the game with conditions: mp_forcecamera 0, mp_freezetime 0, mp_overtime_enable 1, sv_cheats 1 @jRandomSkills/admin
!console <command> !console sv_cheats 1 Run a command on the server @jRandomSkills/owner
!swap !swap Switch sides @jRandomSkills/admin
!shuffle !shuffle Randomly assign players to teams @jRandomSkills/admin
!pause !pause Pause the game @jRandomSkills/admin
!heal !heal Restore 100 health points @jRandomSkills/admin
!hud !hud Enable/Disable hud -
!entity <index/handle> !entity 429 Checking whether a given entity exists @jRandomSkills/owner
!setscore <CT> <TT> !setscore 10 7 Set the game score @jRandomSkills/owner
!setstaticskill <playerName/steamID> <skill> !setstaticskill Juzlus Aimbot Giving a player a permanent skill @jRandomSkills/admin
!setstaticskill <playerName/steamID> None !setstaticskill Juzlus None Back to normal @jRandomSkills/admin
!botplace [slot] [godmode] !botplace 2 1 Teleport a bot to your location @jRandomSkills/admin
!next_skill <name/steamID> [idx] !next_skill Juzlus Switch skill for a player (next, previous -1, or specific idx) @jRandomSkills/admin
!plantedbomb [time] !plantedbomb 35 Spawn a planted C4 bomb at your position with custom or default (40s) detonation time @jRandomSkills/admin
!sethealth <amount> !sethealth 150 Set a specific health amount for yourself @jRandomSkills/admin
!reload !reload Reload translations -

Most commands require permissions, which must be set in the file: game/csgo/addons/counterstrikesharp/configs/admins.json

🔑 Permissions

To grant administrative permissions in CounterStrikeSharp:

  1. In the game/csgo/addons/counterstrikesharp/configs/ folder, create a file named admins.json.
  2. Add the following content to it:
    {
        "Juzlus": {
            "identity": "STEAM_0:0:94913632",
            "flags": ["@jRandomSkills/admin", "@jRandomSkills/owner"]
        }
    }
    
    You can find your steamID using the steamidfinder website.
  3. Save the file and restart the server to apply the changes.

⚙️ Configuration

All skills can be customized in the config.cfg / skillsInfo.json file located in the game/csgo/addons/counterstrikesharp/plugins/jRandomSkills/configs/ folder.

  • config.json
{
    "Settings": {
        "GameMode": 3,                   // Game mode: 
                                         // 0 - Random skills for each player (It can't be the  same twice in a row)
                                         // 1 - Same skills for the whole team
                                         // 2 - Same skills for all players
                                         // 3 - Random skills for each player (It can't be the same until the map changes)
                                         // 4 - Random skills for each player (Full random)
                                         // 5 - Debug: Skills are assigned in turn
        "YourSkillChatInfo": true,       // Show your skill in chat
        "KillerSkillChatInfo": true,     // Show killer's skill in chat
        "TeamMateSkillChatInfo": true,   // Show allies' skills in chat
        "SummaryAfterTheRound": true,    // Show summary of the last round
        "EnableBotSkills": true,         // Enable skills for bots
        "EnableBotKickDebug": false,     // Kick a random bot every 45s (for debug/testing)
        "DebugMode": 0,                  // Save debug logs (player events and plugin activity) to the Debug folder
                                         // 0 - Disabled
                                         // 1 - Skill
                                         // 2 - Round
                                         // 3 - Entity
                                         // 4 - Damage
                                         // Example: '123' enables: Skill, Round and Entity
        "PerfMode": false,               // Save performance measurements to the logs folder
        "AlternativeSkillButton": null,  // Possible buttons:
                                         // null, "Attack", "Jump", "Duck", "Forward", "Back",
                                         // "Use", "Cancel", "Left", "Right", "Moveleft",
                                         // "Moveright", "Attack2", "Run", "Reload", "Alt1",
                                         // "Alt2", "Speed", "Walk", "Zoom", "Weapon1",
                                         // "Weapon2", "Bullrush", "Grenade1", "Grenade2",
                                         // "Attack3", "Scoreboard", "Inspect"
        "SkillTimeBeforeStart": 7.0,     // How many seconds before freeze time ends should skills
                                         // drawing be completed? (freezetime - SkillTimeBeforeStart)
        "SkillHudDuration": -1.0,       // How long should the HUD be visible for?
        "SkillDescriptionDuration": 7.0, // How long should the skill description be visible for?
        "DisplayAlwaysDescription":false,// Always display skill description (SkillDescriptionDuration = 9999)
        "DisableSpectateHUD": false,     // Disable HTML HUD when spectating
        "HideHudForOtherPlugins": true,  // Automatically hides HUD when another plugin uses it
        "EnableFlashingHtmlHudFix": false,// Enable FlashingHtmlHudFix
        "TraceRayBeam": false,           // Enable trail visibility for 'Long Knife', 'Long Zeus'
        "DisableHUDOnDeathPermission": "@jRandomSkills/death",  // Disable the HUD after death for players with this permission
        "DisableSkillsOnRoundEnd": false,// Disable all skills at the end of the round (when the summary is visible)
        "VIPFlag": "@css/vip",           // Players with this permission use the VIP skill rarity distribution
        "SkillsChance": {                // Skill rarity distribution for regular players. Percentages and fractions are supported and normalized to 100%
            "Common": 0.7,
            "Uncommon": 0.14,
            "Rare": 0.1,
            "Epic": 0.05,
            "Legendary": 0.01
        },
        "VIPSkillsChance": {             // Skill rarity distribution for players with the VIP flag. Percentages and fractions are supported and normalized to 100%
            "Common": 0.55,
            "Uncommon": 0.23,
            "Rare": 0.14,
            "Epic": 0.07,
            "Legendary": 0.01
        },
        "CurseSkillPerPlayer": null,     // Maximum number of effects per player
        "ShowDecoyRing": true,           // Show the ring around decoys
        
        "LanguageSystem": {
            "DefaultLangCode": "en",     // Default language: en, pl, fr, pt-br, zh
            "DisableGeoLite": false,     // Disable player language search by geolocation GeoLite2 (MaxMind)
            "LanguageInfos": [...]       // Setting to change ISO languages to translations
        },
        
        "HtmlHudCustomisation": {        // Settings for changing colours and font sizes
                                         // xxxl: 64px, xxl: 40px, xl: 32px
                                         // l: 24px, ml: 20px, m: 18px
            ...                          // sm: 16px, s: 12px, xs: 8px
            "WSADMenuVisibleItems": 3    // Number of visible rows
        }
        ...
    },
  • skillsInfo.json
[
    {
        "NeedsTeammates": false,      // Requires other players on the team
        "DisableOnFreezeTime": false, // Disable the skill during freeze time
        "OnlyTeam": 0,                // Skill availability:
                                      // 0 - Everyone
                                      // 2 - Terrorist
                                      // 3 - CounterTerrorist
        "Color": "#ff0000",           // Skill color
        "Active": true,               // Enabled on startup
        "Name": "Aimbot",             // Skill name
        "HudDuration": null,          // Overrides the global SkillHudDuration for this skill.
                                      // null = use SkillHudDuration from config.json,
                                      // -1 = never hide the HUD,
                                      // >= 0 = display duration in seconds.
        "DescriptionHudDuration":null,// Overrides the global DescriptionHudDuration for this skill.
                                      // null = use DescriptionHudDuration from config.json,
                                      // -1 = never hide the description,
                                      // >= 0 = display duration in seconds.
        "RequiredPermission": "",     // Required permission
        "MinPlayer": 0,               // Minimum number of players required on the server (0 to disable the limit)
        "MaxPerServer": -1,           // Maximum number of players allowed to have
                                      // this skill on the server (-1 for unlimited)
        "Rarity": "Common"            // Rarity tier of the skill:
                                      // Common (70x), Uncommon (14x),
                                      // Rare (10x), Epic (5x), Legendary (1x)
    },
    ...
]
  • playersLanguage.json
{
    "76561198150092992": "en",     // "SteamID": "name of the translation file"
    ...
}

🔗 Credits

This plugin uses content from the following projects:

❤️ Special thanks

Juzlus
Juzlus
ByDexterTR
ByDexterTR
github-actions[bot]
github-actions[bot]
vinicius-trev
vinicius-trev
jakubbartosik
jakubbartosik
Ericzzrbb
Ericzzrbb
brkvlr
brkvlr
vladimir214sd
vladimir214sd
felyjyn
felyjyn
Enrory
Enrory
213sdfsdgf
213sdfsdgf

If you are a contributor and want your profile removed from this list, please contact me.

ㅤ
Ryuu Jin
Ryuu Jin
cj☭
cj☭
k4chen
k4chen
luno
luno

If you are on this list and want your profile removed, please contact me.

📋 Changelog

v1.2.4.b3
  • General

    • Updated compatibility with CounterStrikeSharp v1.0.375.
    • Removed RayTrace-CSS-API / RayTrace-MM (ray tracing is now built into CounterStrikeSharp).
    • Updated gamedata signatures and offsets for Windows/Linux.
    • Skill distribution failures are now logged and retried.
    • Spectators without a pawn are excluded from connected-player checks.
  • Skill Fixes

    • No Recoil - Spread and inaccuracy are now disabled server-side for accurate shots.
    • Long Zeus - Kills now correctly count as Zeus kills, including killfeed, sound and ragdoll effects.
    • Long Knife - Long-range hits now show a tracer.
    • Fragile Bomb - Planted bombs are detected reliably and bullet paths are checked correctly.
    • Tripwire - Beams are now removed correctly when the skill changes.

Full update contributed by @ByDexterTR in pull request #61. Thanks to ByDexterTR!

v1.2.4.b2
  • General

    • Ninja, Ghost, C4 Camouflage - Hidden players are now revealed in the player_death pre-hook, preventing CopyExistingEntity: missing client entity crashes.
    • DisableOnFreezeTime - Passive damage skills (Cypher, Exploding Barrel, Explosive Shot, Fortnite, Iana, Illusionist and Replicator, etc.) now also respect the setting.
    • Skill distribution - One disconnecting player can no longer stop skill assignment for everyone else; If no skills are assigned, the system retries up to 6 times every 0.5s and logs the reason for failure.
  • Skill Fixes

    • No Recoil - Changed the way no recoil is applied to prevent it from affecting other players.
    • Falcon Eye - Weapons no longer remain locked after a round ends while the camera is active.
    • Jump Ban - Jumping is now fully blocked by clearing upward velocity and extending the effect duration; The message confirming that jumping is available again now displays correctly.
    • Blast Shot - Grenades can no longer be thrown during freeze time.
    • Sound Maker - Phantom screams no longer come from 0 0 0 and are only sent to living enemies.
    • Careful Bullets, Darkness, Deaf, Expensive Ammo, Giant, Glitch, Jammer, Jet Kick, Jump Curse, Magnifier, Nightmare, Poison, Primary Ban, Wild Throw - The message confirming that the effect ended now displays correctly.

Full update contributed by @ByDexterTR in pull request #58. Thanks to ByDexterTR!

v1.2.4.b1
  • General

    • ConVar lookups - ConVar.Find results are now cached by name in SkillUtils. All 25 call sites converted.
    • Config loading - Malformed skillsInfo.json no longer resets all settings to defaults. Failed entries keep current settings and prevent config rewriting.
    • Config writing - Replaced copy-and-delete with an atomic rename to prevent half-written configs.
    • Config diagnostics - Load now logs the resolved path, file status, entry counts, known skills, rewrite status and the actual exception.
    • Use button (CT skills) - Skills no longer trigger near planted C4. Range and aim are checked directly.
    • SkillUtils.UpdateGrenadeCount - Fixed delayed clip reset affecting a weapon that replaced the original inventory slot.
  • Shared Systems

    • SkillUtils.IsPredictedLethal - Added a shared lethality check with hitgroup multipliers, ArmorRatio and correct armor coverage, replacing three duplicated headshot-only checks.
  • Skill Fixes

    • ReZombie, Phoenix, Second Life - Fixed stomach hits between 80–100% HP being treated as survivable by using the shared lethality check.
    • Blast Shot, Death Bomb, Exploding Barrel, Explosive Shot - Explosion kill credit now accounts for armor.
    • Explosive Shot - Projectile owner/team state is now tracked per player and tick, preventing conflicts between simultaneous users and duplicate pellet explosions.
    • Fire Rain - Thrower/team/count state is now stored in per-tick batches, preventing conflicts between simultaneous users.
    • Rich Boy - Bonus removal now restores the account from a pre-bonus snapshot instead of CashSpentThisRound.
    • Robin Hood, Rich Boy, Bounty - Rewards now respect mp_maxmoney.
    • True Armor - Helmet state is saved and restored alongside armor.
    • Gravity Decoy - Added WeaponEquip and WeaponPickup handlers to keep the grenade count correct.
    • Catapult, Push, Shade, Rubber - Now react only to bullet damage.
    • Throwing Knife - Thrown knives at round end are tracked separately and replaced next round.
    • Planter, Chill Out, Magnifier - Players are validated before reading Team/PawnIsAlive.
    • Weapons Swap - Both players are validated before removing weapons, and invalid/dead/spectating enemies can no longer be selected.
    • Ninja, Ghost, C4 Camouflage - Fixed client crash (FATAL ERROR: CopyExistingEntity: missing client entity) when a hidden player died nearby. Hidden pawns are restored to the network snapshot on the same tick.
    • Ninja, Ghost, C4 Camouflage, Glaz, Jackal, Wallhack, Throwing Knife, Nightmare - Dead players are no longer treated as viewers, preventing visibility leaks and network desync.
    • Wallhack, Jackal, Throwing Knife, Nightmare - Dead players no longer see Wallhack outlines, Jackal trails, Throwing Knife glows or Nightmare volumes.
    • Sound Maker - Fixed the scream playing for players without the skill.
  • Stability

    • CheckTransmit (Ninja, Ghost, C4 Camouflage) - Dying entity handles are now tracked with their expiry and removed when indexes are recycled, fixing CopyExistingEntity: missing client entity.
    • WeaponEquip, WeaponPickup - Skip dispatch when another plugin supersedes the pre-hook and leaves the event null.
  • Config

    • SkillsChance, VIPSkillsChance - Added configurable rarity distribution tables to config.json, percentages and fractions are normalized to 100%.
    • VIPFlag - Added with default @css/vip, empty disables the VIP rarity table.
    • All skills - Added MinPlayer to skillsInfo.json. Skills require the configured minimum number of players on the server. 0 (default) disables the limit. Applies to normal draws, late joiners and Gambler rerolls.
  • Localization

    • Catapult, Push, Shade - Turkish descriptions now clarify what the percentage applies to.

Full update contributed by @ByDexterTR in pull request #57. Thanks to ByDexterTR!

v1.2.3.b9
  • General

    • Updated core dependencies: CounterStrikeSharp to 1.0.373
    • Config - The Rifle, Pistol and Grenade weapon pools grew every time the config was loaded, so removed weapons came back on the next start.
    • Use button - Skills no longer trigger when a CT presses Use while looking at a planted C4, so the skill key no longer competes with the defuse key.
  • Skill Fixes

    • Pyro - Fire damage killed the holder at low health. The regeneration now runs before the damage is applied instead of after.
    • Iana - The clone did not absorb a lethal hit, same cause as Pyro.
    • Dracula - Lifesteal used the raw damage, so an AWP headshot healed for 400. It is now capped to the health the victim actually had, works on the killing blow, and can no longer leave the attacker alive at 0 HP.
    • RobinHood - Stolen money used the raw damage and a hardcoded 16000 cap. It is now capped to the victim's real health, works on the killing blow, and respects mp_maxmoney. The victim loses exactly what the attacker gains.
    • Voodoo - Reflected damage used the raw damage, now capped to the victim's real health.

Full update contributed by @ByDexterTR in pull request #56. Thanks to ByDexterTR!

v1.2.3.b8
  • Shared Systems

    • PlayerManager.FillSkillHolders - Skill holders are now resolved from the player index instead of scanning every controller each tick, replacing the per-skill full player loop used by ten skills.
    • PlayerManager.GetControllerByPawn - Added a tick-cached pawn-to-controller map, replacing the linear observer-target scan.
    • PlayerManager.IsServerIdle - Added a tick-cached idle check shared by the debug and performance writers.
    • SkillUtils.IsFriendlyFireBlocked - Now takes the skill, so the per-skill FriendlyFire key and server convars are resolved in one place. The convar-only overload remains for victim-side skills.
    • SkillUtils.TerminateRound - Now accepts the player who ended the round and pays out the round-end money that the engine skips on plugin-terminated rounds.
  • Performance

    • OnTick(hud) - Average cost reduced by 17% compared to the previous build.
    • CheckTransmit - Average cost reduced by 25%, with peak cost reduced by 39%.
    • OnTick(skills) - Peak cost reduced by 62%.
    • Host stalls - Real freezes measured with players connected dropped from six to two across 785 rounds.
    • DecoyRing - Beam creation is now spread across four frames instead of spawning the entire ring in one tick.
    • Fourteen skills - OnTick now returns immediately when the skill holds no state.
    • Berserker, BladeMaster, BunnyHop, DemonEye, Flash, PawelJumper, Pilot, Poison, QuickShot, RadarHack, Regeneration - Switched to the shared skill-holder list; config reads were moved out of per-player loops.
  • Fixes

    • GravityDecoy - Restored a hardcoded gravity of 1.0 when leaving the field, permanently breaking Astronaut. Each pawn's own gravity scale is now captured and restored.
    • PsychicDefusing - The bomb location remained unset when the skill was assigned after the plant, the stored position pointed into the entity and became invalid once the bomb was killed, and setup was silently skipped when the pawn was not ready.
    • PsychicDefusing, FragileBomb - Winning teams received no money when the plugin ended the round. Winners are now paid from the matching cash_* convars, with the defuser bonus applied on top.
    • FriendlyFire - mp_autokick is now restored to its default value after the round ends.
    • ToxicSmoke, HealingSmoke - Smoke continued damaging and healing after its owner lost the skill, and expiry could leave behind smokes whose owner had already lost the skill. HealingSmoke also did not track an owner at all.
    • EmpGrenade - Crosshair and radar stayed jammed forever because OnTick stops being dispatched once nobody holds the skill and the jam timer never expired.
    • ThrowingKnife - Losing the skill while the knife was thrown destroyed it without returning one to the player.
    • OnlyHead, ReactiveArmor - Both ignored fall and world damage, which has no player attacker.
    • Gambler - Refreshing consumed the one-shot instead of rolling two new skills, and the refresh row lost its colour prefix to the text-direction wrapper.
    • Berserker, Flash - The falling-speed clamp could trigger while noclipping.
    • ExplodingBarrel - The prop spawned without a model and received it a frame later; the model is now passed through CEntityKeyValues at spawn.
    • FastReload - Added a cooldown, five seconds by default, with a HUD countdown. The cooldown only starts when a magazine is actually refilled.
    • Config - Missing-key migration now descends into nested sections, so keys under HtmlHudCustomisation are detected.
  • Damage Hook

    • OnEntityTakeDamagePre / OnEntityTakeDamagePost - Replaced the deprecated CBaseEntity_TakeDamageOldFunc hook across 27 files.
    • Teammate damage - The new hook runs before the engine zeroes friendly fire, so attacker-side modifiers now require explicit guards. Added to OneShot, Cutter, Assassin, Soldier, Berserker, Nemesis and Punisher.
    • FriendlyFire - Added a new per-skill key to twelve skills, defaulting to true. Setting it to false prevents teammates from being affected, as already supported by LongKnife and KillerFlash. This covers both damage amplifiers and explosives that previously only reduced teammate damage.
  • Menu

    • WSADMenuVisibleItems - Added a new setting replacing the hardcoded three visible menu rows. The value is clamped between one and ten.
    • WSAD menu - The final menu row now keeps its #RRGGBB colour prefix instead of losing it to the text-direction wrapper.
  • Config Migration

    • skillsInfo.json - Missing keys are now written back to the file on load instead of only being defaulted in memory. Existing values are preserved.
    • playersLanguage.json - Players are now grouped by language instead of using one row per player, reducing a ten-thousand-player file by 20%. Old files are converted on load and invalid SteamIDs are dropped.
  • Debug

    • Perf samples - Report p50, p95 and p99 alongside the average and maximum.
    • Per-skill sampling - Every skill is now sampled instead of only logging calls that exceeded two milliseconds. The measurement was already running; only the reporting threshold discarded it.
    • Load context - Aggregate lines now include player, alive, bot, active-skill and round counts, allowing sessions to be compared under different loads.
    • ENTITIES - Tracked entities are now broken down by type.
    • STALL - Lines now include the tick, tracked entity count and load context, helping distinguish map-load pauses from genuine freezes.
    • DMGHOOK - Reports how often the attacker and ability resolve on the damage hook.
    • Idle server - Nothing is written while the server is empty, apart from lifecycle lines and player connects/disconnects.
  • Startup & Stability

    • Startup crash - Fixed a crash on servers with PerfMode or DebugMode enabled during boot at the first skill. PerfLog.Sample called IsServerIdle() on every SkillAction, which scanned the player list while the server was still booting. This was a regression introduced with the idle-logging gate in b8.
    • PlayerManager - Added a serverActive flag set on map start. IsServerIdle, GetTickPlayers and GetTickBomb no longer touch the game before the map is up.
    • Commands - zmienmape and one Chinese alias were listed twice, causing the same command name to be registered natively two times. Cleaned up the defaults and added a duplicate guard to cover user configs as well.
  • Chat

    • Skill announcement - Teammate skills are now shown first and your own skill description last, keeping it at the bottom of the chat instead of allowing it to scroll away.
    • SetRandomSkill - No longer leaves the chat box unclosed when the player has teammates.
  • Debug Fixes

    • PerfLog - p50, p95 and p99 previously returned the upper bound of the histogram bucket instead of a real sample, meaning they could report a value higher than max. This occurred in 74% of the windows during a 6.5-hour session (for example: avg=0.06ms p99=8.00ms max=4.68ms). Percentiles are now taken from the actual samples in the window. The bucket estimate is only used as a fallback when the buffer overflows, interpolated inside the bucket and clamped to max.
    • EntityManager - An already-tracked entity could log a second + line, causing creates and destroys to stop matching and making the entity log look like a leak. Re-registering now logs ~ oldType -> newType when the type changes and nothing when it does not.
    • Ghost, Ninja, C4Camouflage - The hiding prop was registered twice, first as prop_dynamic and then as empty_prop. It is now tracked under the correct name from creation through the new trackAs parameter of CreateTrackedDynamicProp.
  • Cleanup

    • Compiler warnings - All twelve warnings have been resolved; the build is clean.
    • SkillUtils.SetPlayerCollisions - Removed because its body started with an unconditional return.
    • Damage hook aliases - Removed the unused param and param2 locals left behind by the migration across 27 files.

Full update contributed by @ByDexterTR in pull request #53. Thanks to ByDexterTR!

v1.2.3.b7
  • Shared Systems

    • DecoyTracker - Owner-aware decoy tracking shared by FrozenDecoy, GravityDecoy and MagneticDecoy, replacing the per-skill position dictionaries.
    • DebugCategory - New flag enum backing the numeric DebugMode, with automatic migration from the old boolean value.
    • SkillsInfo.GetSkillConfig - Indexed skill config lookup replacing the linear scan used by draws and HUD rendering.
    • SkillNames - Cached enum name table, removing repeated ToString() calls from the draw path.
    • SkillUtils.HideCarriedEntities - Shared carried-weapon resolution for C4Camouflage, Ghost and Ninja.
  • Performance

    • Skill draw - Replaced the O(n²) config lookup; rounds exceeding the perf threshold dropped from 89% to 0.3%.
    • CheckTransmit - The weapon chain is now resolved once per hidden pawn instead of once per receiver; Ghost cost down 61%.
    • Pilot - The exhaust trail is paused and resumed instead of being destroyed and recreated on every jump release.
    • MagneticDecoy - Config reads and the pawn list are hoisted out of the per-decoy loop.
    • FrozenDecoy - Config reads are hoisted out of the per-tick loop.
    • Debug - The damage hook is only installed when damage logging is enabled.
  • Fixes

    • PsychicDefusing - Can no longer finish a defuse and award an extra round after the round has already ended.
    • Spectator - Now picks a different enemy on each activation and no longer creates an unused camera prop every time the skill is switched off.
    • Random - Replaced the shared Random instance with Random.Shared, preventing degenerate results from concurrent use.
    • Baseball - Decoys are removed when their owner dies or loses the skill.
    • FrozenDecoy, GravityDecoy, MagneticDecoy - Decoys and their ground rings are removed when the skill is taken away.
    • ThirdEye - Fixed the camera check dereferencing a missing CameraServices, and the door toggle now verifies the entity class before casting.
    • Round start - Fixed [gamerules unavailable] appearing on the first freeze-time end after every map change.
    • Config - Added migration for keys missing from existing configuration files.
  • Menu

    • WASDMenuAPI - Fixed a malformed <font> tag that wrapped every non-hovered menu row in an unclosed attribute.
    • WSAD menu - The controls line is no longer dropped when the header line is hidden.
    • HtmlHudCustomisation - Line size options left empty now hide their line instead of emitting an invalid font class.
  • Debug

    • DebugMode - Changed from a boolean to a number with concatenated category digits:
    • 1 - Skill
    • 2 - Round
    • 3 - Entity
    • 4 - Damage Example: 123 enables Skill, Round and Entity. 0 disables logging. Existing true values migrate automatically.
    • EntityManager - Entity creation, destruction and failures are now logged under the Entity category instead of the server console.
    • Startup now reports which debug categories are active.

Full update contributed by @ByDexterTR in pull request #52. Thanks to ByDexterTR!

v1.2.3.b6
  • New Skills (9)

    • Bounty: Put a price on an enemy's head; whoever kills them takes the money.
    • EMP Grenade: Anyone hurt by your grenade loses their radar and crosshair for a while.
    • Gravity Decoy: Your decoy changes the gravity of everyone nearby.
    • Heavyweight: Skills that push or slow you down have no effect on you.
    • Nemesis: The player you mark takes extra damage.
    • Punisher: You bank part of the damage you take and add it to your next hit.
    • Rewind: Click [css_useSkill] to drop a marker where you stand and return to it shortly after.
    • True Armor: Part of the damage you take is paid by your armor instead of your health.
    • Voodoo: The enemy you mark also takes part of the damage you take.
  • Shared Systems

    • DecoyRing - Shared ground ring showing the actual decoy area of effect.
    • DecoyRing Config - Added an option to disable the DecoyRing. [by: @Juzlus]
    • WeaponPool - Centralized weapon classification with configurable Weapons support, replacing duplicated weapon lists across multiple skills.
    • HUD Suppression - Refcounted radar/crosshair hiding prevents overlapping skills from restoring HUD state too early.
    • ResolveHiddenPawns - Shared invisible-pawn resolution for C4Camouflage, Ghost and Ninja.
    • Config - Added a Weapons section with automatic migration for existing installations.
    • DisableOnPistolRound - New per-skill option supported by both round draws and css_setskill.
  • Sound

    • Rebalanced skill sound volumes.
    • Added SkillUtils.EmitSoundToPlayer with private recipient filtering, preventing skill sounds from being broadcast to all players.
    • Added new sound effects for LongKnife, Grapple, Ricochet, Nightmare, Tripwire, Jammer, PsychicDefusing and more.
    • Added configurable SoundVolume to 29 skills; LongKnife also supports HitSoundVolume.
    • Grapple - Hook impact sound now plays at the hook's position.
    • PawelJumper - Only extra jumps emit a sound.
  • Models & Visuals

    • Grapple - Added a proper hook model with configurable hookScale and hookEmbed.
    • Pilot - Added a glowing exhaust trail while airborne.
  • Performance

    • SkillsInfo.GetValue - Added caching to eliminate repeated reflection.
    • HUD - Added render caching to skip identical frames.
    • Glaz - Optimized smoke index resolution and pawn-owner mapping.
    • playersSkills - Replaced ConcurrentBag with HashSet, improving NoRepeat lookups.
  • Fixes

    • NoRepeat - Fixed players receiving multiple copies of skills in the same round.
    • SniperElite - Weapon is now correctly restored after the halftime team swap.
    • Illiterate - Holder alerts now reach chat and bypass the holder's own scrambler.
    • EntityManager.DestroyBeam - Fixed beams occasionally remaining visible after destruction.
    • Ricochet - Removed diagnostic tracing that was generating excessive debug log output.
    • ThirdEye - Added the ability to interact with doors while ThirdEye is active in third-person mode. [by: @Juzlus]
  • Debug

    • Warmup round start, round end and freeze-time-end messages are now tagged with [WARMUP] to separate warmup activity from live-round load.

'Full' update contributed by @ByDexterTR in pull request #50. Thanks to ByDexterTR!

v1.2.3.b5
  • General:

    • HUD refresh for all skills now runs on one shared 16Hz update loop instead of separate per-skill ticks, cutting server load.
    • Skill list is now cached instead of rebuilt every frame, reducing HUD overhead.
    • Full network updates are now spread across multiple frames instead of firing all at once, avoiding lag spikes.
    • Improved Turkish translations.
  • Fixes:

    • Fixed SoundMaker crashing/erroring when its cooldown was set to 0.
    • Fixed Regeneration and RadarHack ignoring several of their own config settings (freeze-time behavior, permissions, HUD duration, rarity, max per server).
    • Fixed Falcon Eye blocking weapon fire after a pickup while back in normal view.
    • Fixed Spectator locking fire when its camera failed to spawn due to no living enemy to watch.
  • Skill improvements:

    • BlastShot / Cypher / Iana:
      • No longer leave a stale HUD line after the skill is removed.
    • Wallhack:
      • Glow setup and network update now run after freeze time and are spread across frames, removing a lag spike on grant.
    • Jackal:
      • Trail rendering now resolves once per frame instead of per viewer; removed unused leftover code.
    • Throwing Knife:
      • Knife glow and viewer lookups now run once per frame instead of repeating per knife/client.
    • Glaz:
      • Observer target lookup skipped for skill owners and exits early when there's no target.
    • RadarHack / QuickShot:
      • Players without the skill are now skipped immediately instead of running full validation first.
    • Distancer / Healing Chicken / SoundMaker:
      • These skills now exit instantly while unowned, instead of scanning the player list every tick.
  • Debug:

    • Removed dead/no-op debug checks and trimmed damage logs to only print when routing actually changes, lowering per-hit overhead.
  • New Skills:

    • Chameleon: The first player you kill gives you their skill.
    • Grapple Hook: Press [css_useSkill] to fire a hook and pull yourself to where you're aiming.
    • Inheritance: When a teammate dies you can take over their skill.
    • Ricochet: Your bullets bounce off walls and can still hit enemies.

Full update contributed by @ByDexterTR in pull request #49. Thanks to ByDexterTR!

v1.2.3.b4
  • General:

    • Added an activation notification for the Illiterate skill. [by: @Juzlus]
    • FOV is now reset only when the Magnifier skill is enabled and the player's current FOV matches the configured Magnifier FOV value. [by: @Juzlus]
    • Curses are now tracked at all times and are automatically cleared when a player disconnects, preventing them from carrying over to a new player joining the same slot. [by: @ByDexterTR]
    • Fixed an issue where a skill throwing an exception during round cleanup could stop the remaining cleanup and leave entity kill suppression enabled for the rest of the map. [by: @ByDexterTR]
  • Skill improvements:

    • Wallhack / Nightmare:
      • Fixed both skills being revealed to the entire server during the round start skill announcement. [by: @ByDexterTR]
    • Blast Shot / Death Bomb / Exploding Barrel / Explosive Shot / Toxic Smoke:
      • These skills now respect friendly fire damage reduction. [by: @ByDexterTR]
    • Fire Rain:
      • Added a fallback splash mode that is automatically used when a ceiling is detected above the target. [by: @Juzlus]
      • Molotovs now correctly retain their owner and team, allowing friendly fire rules to apply. [by: @ByDexterTR]
    • Healing Chicken:
      • Added a configuration option to customize the health of spawned chickens. [by: @Juzlus]
      • Teammates can no longer damage or kill spawned chickens. [by: @ByDexterTR]
    • Take Ammo:
      • Fixed a crash during map changes while restoring weapon reserve ammo. [by: @ByDexterTR]
    • Fortnite:
      • The wall now spawns with high initial health to prevent it from breaking instantly. [by: @ByDexterTR]
    • JetKick / Careful Bullets / Wild Throw:
      • Fixed the remaining effects when an affected player disconnects. [by: @ByDexterTR]
v1.2.3.b3
  • General

    • Added automatic HUD hiding to prevent conflicts with other plugins using the center HUD system (HideHudForOtherPlugins in config.json).
v1.2.3.b2
  • General

    • Added a css_entity admin command to check whether an entity with a given index/handle exists (prints the designer name to chat or console). [by: @Juzlus]
    • Added a TakeDamage post-hook (OnTakeDamagePost) alongside the existing pre-hook, so skills can now react after damage has actually been applied, not just before. [by: @Juzlus]
    • Added CreateMolotovProjectile (new CMolotovProjectile_CreateFunc signature) and CreateTrackedChicken entity helpers. [by: @Juzlus]
    • Added a weapon_mp7 → weapon_mp5sd fallback mapping. [by: @Juzlus]
    • Skill-caused deaths are now credited to the skill's owner (instead of counting as suicides) and appear in the killfeed with the ability used; covers DeathBomb, Exploding Barrel, Baseball, HotBomb, Poison, Illusionist, Replicator, Careful Bullets, Toxic Smoke and Iana. [by: @ByDexterTR]
    • Added a CurseSkillPerPlayer config option to cap how many curse skills can be stacked on one player per round (unlimited by default), enforced centrally in SkillAction. [by: @ByDexterTR]
    • Tripwire now uses a cooldown instead of a fixed placement limit, with the remaining time shown on the HUD. [by: @ByDexterTR]
    • Tripwire wires are now colored per team: red for T, blue for CT. [by: @ByDexterTR]
    • PlayerEvents.cs split into three partial files (PlayerEvents, RoundEvents, EntityEvents); behavior unchanged. [by: @ByDexterTR]
    • Replaced 28 duplicated enemy-gathering LINQ chains with one shared helper across 18 skills. [by: @ByDexterTR]
    • Added a use-cooldown for Spectator's camera (default 0.5s) and a disconnect handler. [by: @ByDexterTR]
    • Added ClearCursesFor and AnyCurseCapacity curse-bookkeeping helpers; Thief added to the curse skill set. [by: @ByDexterTR]
    • CurseSkillPerPlayer is now ignored in TeamSkills, SameSkills and Debug game modes, and curse target menus no longer come up empty when every enemy is at the limit. [by: @ByDexterTR]
    • C4Camouflage's MaxPerServer lowered from -1 to 1. [by: @ByDexterTR]
  • Performance:

    • SkillUtils.HasMenu reordered so the costly menu check only runs for affected players, across 17 skills and HUD updates. [by: @ByDexterTR]
    • Skill names/descriptions are now cached per skill/language/roll instead of being regenerated every 2 ticks (Illiterate still gets fresh garbled text). [by: @ByDexterTR]
    • Death HUD admin permission checks are now cached per round, and DateTime.Now is read once per tick instead of once per player. [by: @ByDexterTR]
    • End-of-round skill pre-calculation now builds turn constants in a single pass using set operations instead of repeated linear scans. [by: @ByDexterTR]
    • Removed Dead code: Earthquake.cs and HealingChicken.cs (unregistered skills), EntityManager.CreateTrackedEnvShake, EntityManager.CreateTrackedChicken, PlayerManager.UpdatePlayerSkill. [by: @ByDexterTR]
  • Skill improvements:

    • Aimbot:
      • Only forces a headshot hitgroup once (skips if it's already a head or an invalid hitgroup), and now restores the original hitgroup value in the new post-damage hook instead of leaving it overwritten. [by: @Juzlus]
    • Tripwire:
      • Reduced the default wire width from 1.5 to 0.7. [by: @Juzlus]
      • Wires are now removed when the owner dies or loses the skill, instead of staying until round end. [by: @ByDexterTR]
    • Iana:
      • Fixed the ability hook firing with no clone present when purchases happened during freeze time. [by: @ByDexterTR]
    • Throwing Knife:
      • Fixed the next-round spawn knife being withheld incorrectly; now only blocked when the player's own knife is on the ground. [by: @ByDexterTR]
    • Jammer:
      • Fixed the confirmation message showing the user's own name instead of the target's. [by: @ByDexterTR]
    • Careful Bullets:
      • Misses are now matched to the exact hit tick instead of using a 10-tick tolerance window. [by: @ByDexterTR]
    • Replicator / Illusionist / Iana:
      • Fixed a single shotgun shot dealing the clone's damage multiple times due to delayed entity destruction. [by: @ByDexterTR]
    • Cutter / Assassin:
      • Damage is now modified in the damage hook instead of via the post-damage player_hurt event. [by: @ByDexterTR]
    • Dracula:
    • Focus:
      • weapon_accuracy_nospread is now restored from the server's own value instead of a hardcoded reset. [by: @ByDexterTR]
  • New Skills:

    • Berserker: You deal more damage and move faster as your health gets lower. [by: @Juzlus]
    • Blast Shot: Press Attack2 with the MP5 to fire an HE grenade. [by: @Juzlus]
    • Demon Eye: You deal damage to every enemy you are looking at. [by: @Juzlus]
    • Fire Rain: Throw a decoy to call down a rain of Molotovs. [by: @Juzlus]
    • Flashlight: Click [css_useSkill] to turn the flashlight on or off; its light can blind enemies. [by: @Juzlus]
    • Healing Chicken: Your chickens heal you while you are nearby. [by: @Juzlus]
    • Jetkick: Select a player to jetkick - every shot they fire knocks them backwards until disabled. [by: @Juzlus]
    • Last Gasp: After you die, you deal damage to the enemy who killed you. [by: @Juzlus]
    • Take Ammo: Click [css_useSkill] to take the active weapon's magazine from a random enemy. [by: @Juzlus]
    • Team Teleport: Press [css_useSkill] to teleport to the teammate you're looking at. [by: @Juzlus]
    • Tripwire: String a wire between two walls; enemies who touch it appear on the owner's radar until round end. [by: @ByDexterTR]
    • Exploding Barrel: Place a barrel that detonates when shot. [by: @ByDexterTR]
    • Expensive Ammo: Select an enemy who loses money on every shot. [by: @ByDexterTR]
    • Jump Curse: Select an enemy who jumps whenever a living teammate jumps. [by: @ByDexterTR]
    • Knockback: Firing while airborne pushes you backwards. [by: @ByDexterTR]
    • Giant: Enlarges a selected enemy. [by: @ByDexterTR]
    • Nightmare: Gives a selected enemy a nightmarish vision. [by: @ByDexterTR]
v1.2.3.b1
  • General (Performance and Stability)

    • CServerSideClient.ForceFullUpdate now bails on a null client handle.
    • Added a per-tick player/bomb cache.
    • Migrated 82 skills from per-skill Utilities.GetPlayers() to the one shared per-tick scan, and the HUD loop reuses it. Much lower per-tick cost at high player counts (verified 10v10).
    • Print a single notice when the RayTrace is not installed.
  • Skill improvements:

    • Second Chance / Phoenix / Re-Zombie:
      • Intercept the lethal hit before it is applied. Previously they reacted after the death was already committed, so one-shots, fall damage and skill-based kills were missed.
    • Killer Flash:
      • Kills through real damage instead of forcing a suicide, so revive skills can intercept.
    • Baseball:
      • Fixed a rare server crash from decoy grenades (decoy's entity index could be reused by another entity).
    • Aimbot:
      • Guard the hit-group native pointer before writing (avoids writing to freed/null memory).
    • Wallhack:
      • Detach the glow when the target dies or disconnects.
    • Spectator / Cypher / FalconEye / ThirdEye:
      • null-guard the camera SceneNode walk and re-validate the target before teleport/parent.

Full update contributed by @ByDexterTR in pull request #44. Thanks to ByDexterTR!

v1.2.2.b9
  • General

    • Fixed Jester's no-damage effect affecting players without the skill.
    • Fixed Jester state not clearing if the holder died before round end.
    • All skill data now resets every round, even for unused skills.
    • Skills tracking players now clear targets when they disconnect (Poison, Deaf, Darkness, Glitch, Magnifier, Legless, No Rifles, Jammer, Jester).
    • Fixed Aimbot keeping invalid native pointers, preventing possible crashes.
    • An error in one skill's OnTick no longer stops other skills from updating.
    • Fixed zero cooldown values causing errors (Poison, Regeneration, Hot Bomb, Healing Smoke, Toxic Smoke).
    • Improved round change performance by removing unnecessary cleanup.
  • Skill improvements

    • Second Chance:
      • Now handles multiple lethal hits in the same tick and restores health instantly after damage. It also works correctly with damage-modifying skills.
    • Spectator:
      • Fixed rapid-fire caused by returning to your own view.
    • Radar Hack:
      • Players disguised as Chickens are visible on radar again.
    • Focus:
      • No-spread now stays active while at least one player has the skill.
    • Friendly Fire:
      • Restores mp_autokick at round end and no longer updates it on every team hit.
    • Reactive Armor / Iana:
      • No longer restore health after the skill is lost.
    • Free Planter / Short Fuse:
      • Restore mp_c4timer only if they changed it.
    • Illusionist:
      • Replica movement timer now stops on map change.
    • Ghost / Ninja / C4 Camouflage:
      • Improved hidden-player processing for better performance.

Full update contributed by @ByDexterTR in pull request #41. Thanks to ByDexterTR!

v1.2.2.b8
  • General:

    • Added per-skill HUD duration override. Skills can now define their own HudDuration / DescriptionHudDuration in skillsInfo.json, allowing specific skills to keep their HUD visible permanently (-1) or use a custom duration instead of the global SkillHudDuration setting.
v1.2.2.b7
  • General:

    • Updated the gamedata signatures for the latest CS2 update (build 24134959) and bumped CounterStrikeSharp to 1.0.371. [by: @ByDexterTR]
    • Fixed a NullReferenceException thrown on weapon pickup when the weapon data pointed at freed schema memory. [by: @ByDexterTR]
    • FullFoceUpdate has been changed to an optional setting in the configuration. Enabling it reduces the risk of PVS errors, but places a significant load on the server (disabled by default). [by: @Juzlus]
  • Skill improvements:

    • Ghost:
    • Free Planter / Short Bomb:
      • The on-screen bomb countdown now matches the configured detonation time (mp_c4timer is set at round start instead of only the blow time being overridden after the plant). [by: @ByDexterTR]
    • Rich Boy:
      • The money bonus now respects mp_maxmoney instead of being capped at a hardcoded 16000. [by: @ByDexterTR]
    • Second Chance:
      • Now reliably respawns at base on a lethal hit, including fall damage (the revive moved to a pre-damage hook so the death is cancelled before it is committed). [by: @ByDexterTR]
    • Shadow:
      • Fixed a false "no suitable area" when teleporting behind a target at close range. [by: @ByDexterTR]
    • Radar Hack:
      • Now reveals enemies only to the skill holder instead of the holder's whole team, and no longer reveals invisible or camouflaged enemies. [by: @ByDexterTR]
    • C4 Camouflage:
      • The disguised bomb carrier no longer appears on the enemy radar. [by: @ByDexterTR]
    • Hot Bomb:
      • The "hot bomb" hint no longer shows in a round where nobody has the skill. [by: @ByDexterTR]
    • Jester:
      • Fixes crashes that occur when a skill is being disabled. [by: @Juzlus]
v1.2.2.b6
  • General:

    • Performance: much faster round changes - only skills that were actually active in the previous round are reset, instead of every loaded skill (DisableAll dropped from ~89ms to ~5ms on a full server). [by: @ByDexterTR]
    • Performance & memory: removed per-tick LINQ and skill-name allocations in the tick loop, made HUD skill lookups O(1), and moved translation color/button substitutions to load time. [by: @ByDexterTR]
    • ForceFullUpdate now creates the network service once per broadcast, and the round-start view-angle guard only skips a genuine (0, 0, 0) spawn placeholder instead of over-skipping valid angles. [by: @ByDexterTR]
    • Debug logging is only installed when DebugMode is enabled and writes through a single reused writer instead of reopening the file for every line. [by: @ByDexterTR]
    • Player skill state unified to a single collection (removed a duplicate list), closing a rare desync/race on player disconnect. [by: @ByDexterTR]
    • Gamedata signatures are now resolved lazily and in isolation, so one broken signature after a CS2 update no longer takes down the whole utility layer. [by: @ByDexterTR]
    • Hardened many tick/transmit code paths against invalid player handles to prevent rare crashes. [by: @ByDexterTR]
    • The skill description HUD honours "always show" / -1 duration consistently across every assignment path. [by: @ByDexterTR]
  • Skill improvements:

    • Jester (Joker):
      • Fixed the no-damage effect leaking onto a player after their skill was changed mid-round (e.g. stolen by Thief or removed by Deactivator) - the internal state is now cleared when the skill is disabled. [by: @ByDexterTR]
    • Jackal:
      • Fixed trail entities piling up over a round - the previous trail is now removed before a new one is spawned. [by: @ByDexterTR]
    • Falcon Eye / Third Eye / Spectator:
      • Camera state is now fully cleared when the skill is disabled. [by: @ByDexterTR]
v1.2.2.b5
  • General:

    • Fixed players' view angle snapping to look at (0, 0, 0) at round start (ForceFullUpdate was re-applying a zeroed view angle). [by: @ByDexterTR] and Juzlus].
    • Stability: skills are now correctly disabled and cleaned up on attacker-less deaths (fall damage, drowning, world). [by: @ByDexterTR]].
    • Performance: the end-of-round skill summary now runs in a single timer instead of one per player, and skips players who disconnect during the delay. [by: @ByDexterTR]].
  • Skill improvements:

    • Re-Zombie:
      • Fixed the player dying instead of respawning with full zombie health. [by: @ByDexterTR]].
    • Jester:
      • Armor no longer drains while the skill is active. [by: @ByDexterTR]].
    • Soundmaker / Anomaly:
v1.2.2.b4
v1.2.2.b3
  • General:

    • Updated Chinese language translation by [by: @Ericzzrbb].
    • Fixed a bug where a player could be given multiple skills at once while the HUD displayed only one (the player list was never cleared on map change and had no duplicate protection on join). [by: @ByDexterTR]
    • Fixed skill names and descriptions showing the raw translation key on Turkish servers (culture-sensitive lowercasing) - affected skills starting with "I" (e.g. Illiterate, Impostor, InfiniteAmmo, Iana). [by: @ByDexterTR]
    • RayTrace-based skills and the skill-use button no longer throw when the RayTrace module is not installed - they now degrade gracefully instead of crashing. [by: @ByDexterTR]
    • Fixed the skill-use button (when bound to Use/E) blocking option selection inside WSAD target menus. [by: @ByDexterTR]
    • Performance: cached reflection lookups in SkillAction and SkillsInfo.GetValue, and de-duplicated the repeated event-dispatch logic on hot paths (OnTick, OnTakeDamage, etc.). [by: @ByDexterTR]
    • Stability: removed dead methods that threw NotImplementedException, hardened team-score handling, and reset all skill state on round start / map change. [by: @ByDexterTR]
    • Build: post-build copy paths now follow the active $(Configuration) and $(TargetFramework). [by: @ByDexterTR]
    • Added new Turkish translation strings for the skill notifications listed below. [by: @ByDexterTR]
    • When a player takes control of a bot, all active skill effects affecting that bot are now correctly transferred to the controlling player.
    • Prevented bots from automatically using skills while being controlled by a player.
  • Skill improvements:

    • Wallhack:
      • Fixed enemy outlines briefly flashing for everyone when the skill holder dies. [by: @ByDexterTR]
    • Area Reaper:
      • Teammates (CT) are now notified which bombsite (A/B) was sealed. [by: @ByDexterTR]
    • Wild Throw:
      • Now notifies the targeted player, consistent with other targeted skills. [by: @ByDexterTR]
    • Careful Bullets / Darkness / Deaf / Glitch / Jammer / Jump Ban / Magnifier / Poison / Primary Ban / Wild Throw:
      • The targeted player is now notified when the effect ends after the skill holder dies. [by: @ByDexterTR]
    • Careful Bullets:
      • Added damage-taken sound effects when missing a shot
    • C4 Camouflage / Ninja:
      • Fixed a bug where dying with invisibility active and taking control of a bot would grant invisibility to the bot as well.
    • Poison:
      • Added damage-taken sound effects.
    • Primary Ban:
      • Changed mechanic to directly block shooting weapons instead of forcing a weapon switch to the knife.
    • Hot Bomb:
      • Replaced the bomb-burning sound effects.
      • Added a notification when the burning effect ends and the bomb returns to its normal color.
v1.2.2.b2
  • General:

    • Updated CSS dependency to version 1.0.369.
    • Upgraded the project from .NET 8.0 to .NET 10.0.
    • Updated Turkish language translation by @ByDexterTR].
    • Added Russian language translation by @213sdfsdgf].
    • Fixed an issue with incorrect display of Arabic nicknames.
    • Used ForceFullUpdate to resolve the "FATAL ERROR: CopyExistingEntity" crash.
    • Disabled stale HandleCommandDrop hook to avoid crashes when a player joins a team (thanks to @vladimir214sd).
    • Added new signatures to gamedata.
    • Added the ability to configure the number of grenades for every skill that uses grenades as part of its ability (e.g., Miner, AntyFlash, MagneticDecoy, etc.).
  • Skill improvements:

    • Re-Zombie:
      • Fixed weapon switching issues when a player is holding a Zeus and a knife.
      • Weapons are now removed for bots in zombie mode.
      • Fixed an issue where players would occasionally fail to respawn if they took too much damage too quickly.
    • Ghost:
      • Blocked the ability to use the Zeus.
      • Blocked the ability to use the SG556 (weapon_sg556).
    • Thorns:
      • Added a configurable maximum health limit (37 HP) for the damage that can be reflected.
    • Second Life:
      • Fixed an issue where players would occasionally fail to respawn if they took too much damage too quickly.
    • Phoenix:
      • Fixed an issue where players would occasionally fail to respawn if they took too much damage too quickly.
    • Chicken:
      • Blocked the ability to use the SG556 (weapon_sg556).
    • Wallhack:
      • Fixed a bug that caused temporary enemy highlighting right after death.
    • Cypher:
      • Added camera position persistence.
    • God Mode:
      • Fixed an issue with permanent immortality triggering after reaching exactly 0 HP.
    • Weapons Swap:
      • The ammo count is now also transferred when weapons are swapped.
    • Muhammed:
      • Renamed the skill to "DeathBomb".
    • Spectator:
      • Fixed a bug where a player with the Chicken skill would still display as a ragdoll after death when spectated.
    • Friendly Fire:
      • The skill now works even when the server's mp_friendlyfire setting is set to 0.
    • Baseball:
      • Disabled teammate killing.
v1.2.2.b1
  • General:

    • Updated project dependencies.
    • Implemented EntityManager for automated entity cleanup and memory management.
    • Added configuration to enable or disable skills for bots.
    • Stability and performance improvements.
  • Skill improvements:

    • Invisibility-based skills: Now visible to teammates and spectators.
    • Fortnite:
      • Fixed an issue with indestructible barricades after player death.
    • Wallhack:
      • Improved detection logic for invisible players.
    • Soundmaker / Jackal / Spectator:
      • Updated to correctly work with invisible players.
    • And more...
v1.2.1.b9
  • General:

    • Added Crash Handler to improve server stability (Thanks to cj for help).
    • Added Skill Rarity (added rarity levels to skills).
    • Added 'MaxPerServer' limit (limits how many people can use the same skill).
    • Replaced model "ghost_speaker.vmd" with "spray_plane.vmdl".
  • Skill improvements:

    • Focus:
      • Fixed and improved recoil control.
    • ReZombie / Phoenix:
      • Blocked respawn exploit when changing teams.
v1.2.1.b8
  • General:

    • Replaced CS2TraceRay with RayTraceApi.
    • Updated CounterStrikeSharp to the latest version.
    • New command for skill testing: css_next_skill <(null)/index>.
    • Updated gamedata signatures.
    • Replaced CS2TraceRay with RayTraceApi.
    • Replaced direct object references with entity indices to improve memory safety.
    • Fixed agent model paths.
    • Skills are now automatically disabled when a player leaves the server.
    • Added null-pointer checks for improved stability.
  • Skill improvements:

    • AimLock:
      • Aiming at the opponent's head has been improved.
    • Anomaly / Behind / Cypher / Push / SwapPosition / Teleporter:
      • Improved camera positioning during teleportation.
    • CarefulBullets / ExplosiveShot / FragileBomb:
      • Redesigned logic due to changes in the OnTakeDamage event.
    • FriendlyFire:
      • Fixed skill functionality when friendly fire is disabled on the server (Casual mode).
    • Hologram:
      • Blocked weapon dropping and picking up while in hologram form.
    • Illiterate:
      • Fixed a bug with correct text display.
    • Tracker:
    • Ninja:
      • Fixed a bug where the initial invisibility state never update.
    • NoRecoil / QuickShot:
      • Updated to match the new AimPunchServices structure.
    • Noclip / Shade / Iana:
      • Migrated to TraceHullShape for more accurate collision detection.
    • ReZombie:
      • Disabled weapon usage in zombie mode and increased HP to 500.
  • Known Issues:

    • LongKnife:
      • Right-click detection is currently broken on Linux (despite valid signatures).
    • Illusionist:
      • T-Pose bug: After adding animgraph_2, the character models don't have any animations built in. So, for now, there isn't really any way to do this without adding your own from the Workshop.
v1.2.1.b7
  • General:

    • Bumped module version to 1.2.1.b7.
    • Implemented HTMLEncoder for improved message security and protection.
    • Updated SkillAction to return the invoked method result (object?) or null if not found.
    • Reworked player event dispatching to call SkillAction once per distinct active skill, reducing redundant invocations.
    • Switched timing logic to use Server.CurrentTime instead of EngineTime.
    • Added startup console information and an automated version check on plugin load.
    • Implemented automatic copying of gamedata, DLLs, and language files during the build process (by @vinicius-trev).
    • Updated core dependencies: CounterStrikeSharp.API to 1.0.364 and MaxMind.Db to 5.0.0 (by @vinicius-trev).
    • Added geolocation support for Turkey (tr) and Czechia (cz).
    • Added Turkish (tr) language support (by @brkvlr) and improved Portuguese-Brazil (pt-br) translations (by @vinicius-trev).
    • If a translation is missing, the system now falls back to English text instead of displaying the raw translation key.
    • SkillUtils: Fixed spawn point selection bugs, memory referencing issues, and added maxHealth parameter support for AddHealth.
    • Fixed an issue where the E key (interact/defuse) was interrupted by skill usage; players can now defuse and interact with objects without interference.
    • Vote system timer now correctly resets after each vote.
  • Skill improvements:

    • Pilot (Rework):
      • Completely rewritten jump and fuel logic. Flight now requires a double-click of the jump key to activate.
    • Jester (Rework):
      • Refactored to a per-player system with improved timer stability. The Jester timer now resets when the player attempts to plant or defuse the bomb.
    • Noclip (Rework):
      • Total rework of the movement logic; improved collision detection to prevent getting stuck in objects and ensured smoother flight.
    • Ghost / C4 Camouflage / Ninja:
      • Observers can now see invisible players.
      • Improved bomb hiding function and fixed console spam issues.
    • Retreat / Enemy Spawn:
      • Fixed an error with incorrect spawn point interpretation.
    • Teleporter:
      • The mechanic has been changed to a percentage chance of swapping places with an enemy, rather than a guaranteed 100%.
    • Gambler:
      • Fixed a bug that allowed the skill to be refreshed without having the required money.
    • Shade:
    • Muhammed:
      • Blocked skill usage during team switching to prevent exploits.
    • Baseball:
      • Decoy grenades now have the same collision as players (PlayerClip).
    • Sniper Elite:
    • Replicator:
      • Added crouching animations for replicas to match player movement.
    • Blade Master / Cutter / Disarmament / Long Knife / Long Zeus / Killer Flash:
      • Improved handling for Bayonet weapon types.
      • Added friendlyFire configuration options for LongKnife, LongZeus, and KillerFlash.
    • Planter / Short Bomb / Chill Out:
      • Notifications now reach all valid players regardless of life status; added BombAbortPlant support.
    • Area Reaper:
      • Added a message while being on a disabled bombsite.
    • Wallhack:
      • Glow is now correctly disabled for dead players.
    • Sound Maker (Rework):
      • Reworked to automatically play a sound every 2 seconds (audible only for the player with skill).
  • New skills:

    • Aim Lock:
      • Lock your aim on the nearest enemy for a limited duration.
    • Homing Nades:
      • Your grenades (except smokes) are attracted to nearby enemies.
    • Magneto:
      • Pushes incoming enemy grenades away from the player.
    • Miner:
      • Deploys HE grenades that only detonate when an enemy is within range.
    • Illiterate:
      • While the user is alive, enemies are unable to read chat or HUD information.
    • Hot Bomb:
      • The C4 deals constant damage to the carrier as long as the skill owner is alive.
    • Illusionist:
      • Deploys a replica that walks straight ahead to distract enemies.
    • Magnetic Decoy:
      • Decoy grenades attract nearby players towards the center of the decoy.
    • Throwing Knife:
      • Adds the ability to throw a lethal knife at enemies.
    • Weightless:
      • Grenades fly faster and are no longer affected by gravity.
    • Wild Throw:
      • Causes a selected player to "forget their lineups," resulting in randomized grenade trajectories.
    • Smoker:
      • Your smoke grenades never run out.
  • New commands:

    • css_bot_place <slot : int> <godmode : bool> - Teleports a bot to the player's position with optional godmode.
    • !sethealth <health : int> - Admin command for health management and testing.
v1.2.0
  • General:

    • Renamed the plugin from !jRandomSkills to jRandomSkills.
    • Fixed a typo in permissions from @jRandmosSkills to @jRandomSkills.
    • Disabled DebugMode by default in the config. (by: @vinicius-trev)
    • Updated GeoLite dependencies. (by: @vinicius-trev)
    • Improved pt-br language translations. (by: @vinicius-trev)
    • Added German language support. (by: @Enrory)
    • Fixed language detection based on ISO codes.
    • Fixed incorrect references to language files.
  • Skill improvements:

    • Enemy Spawn:
      • Fixed an error with incorrect spawn point interpretation.
    • Cypher:
      • Improved camera positioning.
      • Restricted camera placement to walls only.
      • Key stability fixes.
    • Darkness / Hologram:
      • Added additional validation.
      • Fixed an issue with an infinite timer.
    • Jackal:
      • Minor optimization and fixed a bug where tracks were visible to everyone.
    • C4 Camouflage / Ghost / Ninja:
      • Improved bomb hiding function.
      • Fixed console spam issues.
    • AntyHead / BladeMaster / Jester / NoNades / OnlyHead / Posthesis / Pyro / Reactive Armor:
      • Fixed the health restoration function.
    • NoNades:
      • Added immunity to Decoy grenades.
    • RichBoy:
      • Fixed a bug where all money was removed after a round.
      • Money is deducted based on spending, where the final amount cannot be less than $3,000.
    • Dash:
      • Added anyDirection options to the configuration, which define whether a dash can be performed in any direction or only forwards.
    • BunnyHop / Dash / Pawel Jumper:
      • Improved jump logic.
      • Skills can now be triggered using the mouse scroll wheel.
    • Jumping Jack / Legless:
      • The ConVar sv_legacy_jump has been set to 1 to enable jump detection.
    • Long Zeus / Long Knife:
      • Shots are now calculated based on hitboxes instead of collisions.
      • Fixed RayTrace functionality.
    • Shade:
      • Fixed RayTrace functionality.
    • Planter / Short Bomb:
      • Added a notification message when the bomb is planted.
    • Sniper Elite:
      • General refactoring.
      • Fixed an issue where weapons were not swapped correctly.
      • Fixed a weapon duplication bug.
    • Toxic Smoke:
      • Skill is now enabled only for Linux systems.
    • Watchmaker:
      • Removed the round timer from the center HUD.
      • Round timer now updates for everyone after throwing utilities.
  • New skills:

    • Careful Bullets:
      • Select a player who loses HP for every missed shot at another player.
v1.1.9f
  • General:

    • Updated dependencies to the latest version (CSS v1.0.361).
    • Updated WSADMenu compatibility to the latest CSS version.
  • Skill improvements:

    • Earthquake:
      • Temporarily disabled.
    • Cypher:
      • Temporarily disabled.
      • Improved camera positioning.
    • Hologram:
      • Temporarily disabled.
      • Replica can now receive headshot damage.
    • Toxic Smoke:
      • Changed distance calculation for triggers.
v1.1.9e
  • General:

    • Improved display of text frame / content.
    • Added customisation options for chat message appearance.
v1.1.9d
  • General:

    • Updated the appearance of chat messages.
  • Skill improvements:

    • C4Camouflage:
    • Ghost:
    • Ninja:
      • Now the entire model is hidden instead of just the weapon and setting the model's transparency.
    • ReZombie:
      • Increased zombie health from 200 HP to 250 HP.
    • Replicator:
      • ncreased damage dealt by replicas: Your team: 10 HP; Enemy team: 20 HP
      • Added the option to customize replica damage in skillsInfo.json.
    • ToxicSmoke:
      • Skill temporarily disabled to test trigger logic.
    • Watchmaker:
      • Reduced time change from 10 seconds to 7 seconds.
  • New skills:

    • Cypher:
      • Click [css_useSkill] to create/switch to a camera.
    • Hologram:
      • Click [css_useSkill] to control your hologram for a few seconds (the hologram cannot shoot).
v1.1.9c
  • General:

    • Updated dependency to the latest version.
    • Added a new game mode, ‘FullRandom,’ which randomly assigns skills each round (skills may be repeated).
    • Added the requiredPermission option to every skill config, defining the permission required for a player to receive that skill.
  • Skill improvements:

    • Gambler:
      • Added text notification when the player has no money.
    • Darkness:
      • Removed the old post-processing logic (did not work on every map).
      • Added UTIL_ScreenFade for a more reliable and consistent darkness effect.
    • Distancer:
      • Limited the maximum display distance to 3000 units.
    • Fortnite:
      • mproved the placement angle of barricades.
    • Jackal:
      • Reworked the bean trail logic to a particle system for better performance.
    • Poison:
      • Slightly increased the poison tick speed.
      • Added a minimum health threshold (30 HP) below which poison no longer works (configurable).
    • Spectator:
      • Fixed an issue with the camera after death.
v1.1.9b
  • General:

    • Updated dependency to the latest version.
    • Fixed an issue with empty permissions for commands.
    • Added SkillHudExpired option to the config file that controls how long (in seconds) the central HUD is visible.
    • Added logic for trigger enter / exit handling.
    • Automatic case adjustment for the AlternativeSkillButton option in the config.
    • Fixed an issue with automatic language detection.
    • Attempt to fix model resizing issue.
  • Skill improvements:

    • Bankrupt:
    • Darkness:
    • Deactivator:
    • Deaf:
    • Glitch:
    • Jammer:
    • JumpBan:
    • LifeSwap:
    • Magnifier:
    • MoneySwap:
    • Poison:
    • PrimaryBan:
    • Thief:
      • Fixed message being shown in the other player's language.
    • C4Camouflage:
    • Ghost:
    • Glaz:
    • Jackal:
    • Ninja:
    • Wallhack:
      • Possible fix for missing entity when showing the entity again.
    • AreaReaper:
      • Fixed incorrect bomb placement order.
    • Gambler:
      • Fixed issue where players could reroll their skill even without money.
    • SoundMaker:
      • Added separate sounds for both teams (configurable).
    • ToxicSmoke:
      • Updated logic to use triggers (offset not found for Windows system).
    • Watchmaker:
      • Added a sound when the time updates (configurable).
v1.1.9a
  • General:

    • Update the dependency to the latest version.
    • Signature update (jRandomSkills.gamedata.json).
    • FlashingHtmlHudFix is disabled during warm-up.
    • Fixed incorrect debug text display when using the command.
    • Improved the functionality of the !map command.
    • Added the YourSkillChatInfo option to the configuration to disable the description of your skill in chat.
    • Disabling player skill when changing maps.
  • Skill improvements:

    • Third Eye:
      • Model added to camera.
    • Spectator:
      • Model added to camera.
    • Falcon Eye:
      • Model added to camera.
    • Jackal:
      • Temporarily disabled for rewrite.
v1.1.8
  • General:

    • Added DisableHUDOnDeathPermission options to the config, to disable the HUD after death for players with this specific permission.
    • Added DisableSkillsOnRoundEnd option to the config, to disable all skills at the end of the round (when the summary is visible).
    • The permission @jRandomSkills/root has been changed to @jRandomSkills/owner to prevent domain issues.
    • Added !hud command to toggle the HUD on/off (When the HUD is off, the WSAD Menu will not appear).
    • Disabling first skill if two skills are drawn during the first round.
    • The !reload command also refreshes the skill activity status.
  • Skill improvements:

    • Replicator:
      • Fixed a bug causing server crashes after a bomb explosion.
      • Replica collisions are now more accurate.
v1.1.7
  • General:

    • Update the dependency to the latest version.
    • Information about skills is available in skillsInfo.json instead of config.json.
    • Added the jRandomSkills.gamedata.json file.
    • Added the option to disable a specific power during freeze time (Disabled by default: Position Swap, Retreat, Replicator, Poison, Planter, Pilot, Noclip, Medic, God Mode, Fortnite, Enemy Spawn, Anomaly).
    • Added LanguageSystem options to the config for detailed language assignment management.
    • The StartGameCommand command now includes a changeable start parameter in config.
    • Added DisplayAlwaysDescription option to the config to show the description all the time.
    • Added HtmlHudCustomisation options to config for setting colours and font size.
    • Can be set to empty text: your_skill/drawing_skill/observer_skill/XXX_select_info.
    • Option to set the obtained value in the name/description of the skill ({0}).
    • Fixed skill cooldown time display (Rounding up).
    • The !reload command now refreshes all parameters from the all configs.
    • Most of the collection has been replaced with safe-threading to avoid server crashes (idea by: @ebat_kopat777).
  • Skill improvements:

    • Long Knife:
      • A secondary knife attack also deals damage.
      • Fixed a mistake where the player's skill was shown as None after death.
    • Wallhack:
      • Glows are created just once, instead of being created again for each player.
      • Fixed a mistake where the player's skill was shown as None after death.
    • Jackal:
      • Fixed a mistake where the player's skill was shown as None after death.
    • Position Swap:
      • Added a configurable cooldown at the start of the round.
    • Spectator:
      • The method used to attach the camera has changed.
    • NoClip:
      • Return to the last place where you used skill if you fall below 3,000 units.
      • Added an option to disable the noclip when it is active.
    • Ninja:
      • Fixed an issue with weapons not being visible after death.
    • Muhammed:
      • The message at the explosion is configurable (in languages/).
      • Fixed a bug with the grenade not detonating.
    • Ghost:
      • Fixed an issue with weapons not being visible after death.
    • Explosive Shot:
      • Fixed a bug with the grenade not detonating.
    • Enemy Spawn:
      • Added a configurable cooldown at the start of the round.
    • Disarmament:
      • Back to dropping weapons instead of changing to slot3.
      • The chance of dropping weapons has been reduced: (20-50)% → (20-35)%
    • Chicken:
      • The method used to attach the chicken has changed.
      • Player with skill can see a model of your chicken.
      • Fixed hitboxes after returning to normal model.
      • Fixed a bug that added extra health after deactivating skill.
    • C4 Camouflage:
      • Fixed an issue with weapons not being visible after death.
    • Blade Master:
      • Movement speed with a knife has been reduced by 10% (configurable).
    • AntyFlash:
      • Added the option in config to change the flash duration of your flashes.
    • Jester:
      • Fixed an issue where you could take damage from other skills or bombs.
      • Fixed a bug where the player was always purple.
    • Shade:
      • Added an option to set the chance of teleportation after hitting an enemy in the config.
    • Impostor:
      • Setting the player model after deactivating the skill.
      • The default model for terrorists has been changed.
v1.1.6
  • General:

  • Skill improvements:

    • Dash:
      • Added the ability to dash in any direction.
v1.1.5
  • General:

    • Update the dependency to the latest version.
    • Added language recognition based on geolocation (MaxMind GeoLite2).
    • Each player can choose a different language.
    • Directory names have been changed.
    • Automatic config refresh has been removed.
    • Added the FlashingHtmlHudFix option to the config.
    • Added the CS2TraceRayDebug option to the config, showing the "bullet" path for the LongKnife and LongZeus skills.
    • Added the DisableSpectateHUD option to the config, allowing the HTML HUD to be disabled for spectators.
    • The name of the project has been changed from jRandomSkills to !jRandomSkills to allow other plugins to load into memory later.
    • Added the command !lang en to change the language
    • Added the !reload command to reload translations.
    • Restrictions on welcome messages removed.
  • Skill improvements:

    • Weapon Swap:
      • Fixed a bug with bomb duplication on the HUD.
    • Thief:
      • The ability to steal skill that is unavailable to your team has been blocked.
      • The HTML Menu is disabled when no players are found.
    • Sniper Elite:
      • Fixed all bugs and enabled the skill.
    • Second Chance:
      • Return to original health when skill are deactivated.
    • Planter:
      • Planting a bomb during freezing has been blocked.
    • Jackal:
      • Added 'null' check.
    • Astronaut:
      • Fixed gravity scale not showing on HTML.
    • Duplicator:
      • The HTML Menu is disabled when no players are found.
    • Deactivator:
      • The HTML Menu is disabled when no players are found.
  • New skills:

    • Grenadier:
      • You have infinite hegranade.
    • Dash:
      • Perform a second jump to dash.
v1.1.4
  • General:

    • The SkillTimeBeforeStart option has been added to the config file, which specifies how many seconds before the end of freeze time the skills drawing should stop.
    • The SkillDescriptionDuration option has been added to the config file, which specifies how many seconds the skill description HTML message should be visible.
    • Skills are no longer disabled at the end of the round.
    • The logic for granting skills has been changed.
    • Nicknames that are too long are shortened when spectating players.
    • The player selection has been changed via the Chat Menu to the WSAD Menu.
    • Skill descriptions added at the start of the round using PrintToCenterHtml.
    • Skill descriptions with player selection have been shortened.
    • Fixed a problem where the css_setskill and css_setstaticskill commands could not be executed from the server.
    • The parameters of the !start command have been changed.
  • Skill improvements:

    • Legless:
      • Legless's skill completely disables Bunny's skill.
    • Rich Boy:
      • The cap has been set at $16,000.
    • Pilot:
      • The jetpack has been redesigned.
      • The amount of fuel has been increased.
      • From now on, the amount of fuel is always visible.
      • It is no longer possible to use a jetpack while defusing a bomb.
    • Explosive Shot:
      • The damage and range of attack have increased a little.
    • Flash:
      • Fixed a bug causing players to be launched upwards on stairs/ramps.
    • Magnifier:
      • Unnecessary Server.PrintToChatAll have been removed.
    • Weapon Swap:
      • Fixed a bug with the option to change weapons with a dead player.
    • Dwarf:
      • Fixed a bug with unchanged hitboxes.
    • Chicken:
      • Fixed a bug with unchanged hitboxes.
  • New skills:

    • Jester:
      • In jester mode, you cannot get or take any damage. This mode changes every few seconds.
    • Gambler:
      • Select a skill from the list provided.
    • Bankrupt:
      • Choose the player who will lose all their money.
v1.1.3
  • General:

    • Added AlternativeSkillButton options to the config file so that the player button can be used to activate skills.
    • Spectators are no longer selected when choosing a specific player when using a skill.
  • Skill improvements:

    • Jackal:
      • Now, all opponents are leaving a trail, not just the selected ones.
    • Darkness:
      • All postprocessing volumes are replaced instead of just the first one.
v1.1.2
  • General:

    • Skills disabled during warm-up.
    • Added general validation for undefined values.
    • Added command usage and map changes to debug log.
    • The !setstaticskill command has been added, which permanently assigns a specific skill to a player.
    • Commands can have custom permissions set in the config file.
    • New game mode: Skills can't be repeated until the map changes (Set as default).
    • Added a voting system for commands such as: !start, !map, !swap, !shuffle, !pause, !setscore (configurable)
    • Added the ability to search for players by steamID for the !setskill command.
  • Skill improvements:

    • Pawel Jumper:
      • Gives a random number of extra jumps instead of just one.
      • Added to config: minimum and maximum number of extra jumps.
    • Chicken:
      • The chicken is invisible to the player with skill.
    • Fortnite:
      • The barricade now has 115 HP instead of disappearing after one shot.
      • Added to config: hp barricade and barricade model.
    • Glaz:
      • Players observing you also cannot see smoke grenades.
    • Wallhack:
      • Players observing you can also see through walls.
    • Rubber Bullets:
      • Fixed an error with adding an existing key.
    • Ninja:
      • Weapon transmit has been disabled, so charms and name tags are not visible.
    • Ghost:
      • Weapon transmit has been disabled, so charms and name tags are not visible.
    • C4 Camouflage:
      • Weapon transmit has been disabled, so charms and name tags are not visible.
  • New skills:

    • Magnifier:
      • Forces the enemy's screen to zoom in, reducing their field of view.
    • Thorns:
      • Your opponent will receive a portion of the damage that they inflicted on you.
v1.1.1
  • General:

    • Added validation for undefined values for the skills: Silent and Flash.
v1.1.0
  • General:

    • Added Brazilian Portuguese language (Grok AI).
    • Added Chinese language (Grok AI).
    • Added game modes.
    • Added configuration for each skill.
    • Added Debug Mode.
    • Added weapon receiving for skills associated with them (suggested by ToRRent1812).
    • Introduced general fixes and resolved bugs.
  • New skills:

    • Anomaly:
      • You rewind a few seconds back in time. Cooldown: 15 s.
    • Zone Reaper:
      • You can choose a bomb site to deactivate.
    • Assassin:
      • You deal increased damage to enemies from behind.
    • Baseball Player:
      • Your decoy bounces off walls and instantly kills an enemy on impact.
    • Blademaster:
      • While holding a knife, you have a high chance to deflect a shot.
    • C4 Camouflage:
      • You are invisible while holding the bomb.
    • Chillout:
      • Planting the bomb takes significantly longer.
    • Cutter:
      • Instant kill with a knife.
    • Darkness:
      • Applies a darkness effect to a chosen enemy.
    • Deactivator:
      • Choose a player whose skill you want to disable.
    • Deaf:
      • Choose a player to mute all sounds for.
    • Rangefinder:
      • You can see the distance to the nearest enemy.
    • Duplicator:
      • Choose a player to copy their skill.
    • Explosive Shot:
      • Random chance to fire an explosive bullet while shooting. Chance: (15 - 30)%.
    • Falcon Eye:
      • Click [css_useSkill] to activate a bird's-eye view camera.
    • Fastreload:
      • Click [css_useSkill] to reload the weapon you are currently holding.
    • Fortnite:
      • Click [css_useSkill] to create a destructible barricade. Cooldown: 2 s.
    • Fragile Bomb:
      • Shooting the bomb damages it.
    • Friendly Fire:
      • Shooting teammates heals them.
    • Glaz:
      • You can see through smoke grenades.
    • Glitch (suggested by ToRRent1812):
      • Disables the radar for a chosen enemy.
    • Glue (suggested by ToRRent1812):
      • Your grenades stick to walls.
    • Healing Smoke:
      • Your smoke grenades heal.
    • Hermit (suggested by ToRRent1812):
      • Killing restores ammo and a portion of health.
    • Holy Hand Grenade:
      • Your HE grenades deal double damage and have double range.
    • Tracker:
      • Choose a player who will leave a trail behind them.
    • Jammer (suggested by ToRRent1812):
      • Choose a player to disable their crosshair.
    • Legless:
      • Choose a player who cannot jump.
    • Jumping Jack:
      • Jumping restores health.
    • Life Swap:
      • Choose a player to swap health with.
    • Long Knife:
      • A primary knife attack deals damage regardless of distance.
    • Long Zeus:
      • Zeus deals damage regardless of distance.
    • Taxman:
      • Choose a player to swap money with.
    • Ninja:
      • Standing still increases your invisibility by 33%, crouching by 33%, and holding a knife by 33%.
    • No-Nades:
      • Grenades deal no damage to you.
    • Focus (suggested by ToRRent1812):
      • No recoil while shooting.
    • NoClip:
      • Click [css_useSkill] to enable noclip for a short time. Cooldown: 30 s.
    • Head Only:
      • You only take damage to the head.
    • Poison:
      • Choose a player who will take damage every few seconds.
    • No Rifles:
      • Choose a player who cannot use rifles.
    • Prosthesis:
      • Arms and legs are bulletproof.
    • Psychic Defusing:
      • When you are near the bomb, you start defusing it. Cooldown: 10 s.
    • Pusher:
      • You have a random chance to push an enemy back when hitting them. Chance: 100%.
    • Pyro:
      • Molotov restores health.
    • Reactive Armor:
      • Armor absorbs the first damage taken. Cooldown: 15 s.
    • Regeneration:
      • You restore health every few seconds.
    • Replicator:
      • Click [css_useSkill] to create a replica that deals damage on hit. Cooldown: 15 s.
    • Return to Sender:
      • The first hit on an enemy sends them back to their spawn.
    • Re-Zombie:
      • After death, you respawn as a zombie with increased health and no weapons.
    • Robin Hood (suggested by ToRRent1812):
      • Dealing damage to an enemy steals their money.
    • Rubber Bullets (suggested by ToRRent1812):
      • Your bullets significantly slow down players.
    • Second Chance:
      • After death, you respawn with the same amount of health.
    • Short Fuse (suggested by ToRRent1812):
      • The bomb explodes much faster.
    • Sniper Elite:
      • Click [css_useSkill] to swap your current weapon for an AWP.
    • Soundmaker:
      • Click [css_useSkill] to trigger a sound for every enemy. Cooldown: 5 s.
    • Spectator:
      • Click [css_useSkill] to spectate a random enemy.
    • Thief:
      • You can steal a skill from a chosen player.
    • Third Eye:
      • Click [css_useSkill] to activate third-person view.
    • Toxic Smoke:
      • Your smoke grenades deal damage.
    • Wallhack:
      • You can see enemies through walls.
    • Watchmaker:
      • Every grenade throw alters the round time.
  • Skill improvements:

    • Improved skill descriptions.
    • Fixed all noticeable bugs.
v1.0.3
  • General:

    • English language added.
    • Added welcome message.
    • Added summary of last round.
    • Added preview of spectated player's skills.
    • Blocked the possibility of having the same skill twice in a row.
    • Added simple configuration for each skill.
    • Reworked all skills so they can be manipulated at any time (Fixed setskill command)
    • Changed activation of skills to bind css_useSkill
  • New skills:

    • Freezing Decoy
      • Your decoy freezes all nearby players.
    • Soldier:
      • You have a random damage multiplier (1.15 - 1.35)x.
    • Tank:
      • You have a random received damage multiplier (0.65 - 0.85)x.
    • Aimbot:
      • Each bullet you hit is counted as a head.
    • Retreat:
      • Return to spawn. Click [css_useSkill], cooldown 15s.
    • Enemy Respawn:
      • Teleport to enemy spawn. Click [css_useSkill], cooldown 15s.
    • Zeus:
      • Zeus x27 instant reload.
    • Radar Hack:
      • You see enemies on radar.
    • Quick-Shot:
      • No cooldown when shooting.
    • Planter:
      • You can plant a bomb anywhere, bomb detonation time is 60s.
    • Silent:
      • Your steps and jumps are unheard by OTHER players.
    • Deadly Flash:
      • Anyone completely blinded by your grenade dies (including you).
    • Time Slow:
      • Time slowdown for everyone for 6 seconds. Click [css_useSkill], cooldown 30s.
    • God Mode:
      • You are immortal for 2 seconds. Click [css_useSkill], cooldown 30s.
    • Random Weapon:
      • You are given a random weapon. Click [css_useSkill], cooldown 15s.
    • Weapon Swap:
      • You swap weapons with a random enemy. Click [css_useSkill], cooldown 30s.
  • Skill improvements:

    • Sapper:
      • Fixed bug with instantly planting a bomb as anyone on the server had the skill ‘Sapper’.
    • Ghost:
      • Fixed being invisible after death.
    • Minor fixes for the rest of the powers.
v1.0.2
  • New skills:

    • Dwarf:
      • Random character size range (60% - 95%).
    • Swapper:
      • Swap places with a random enemy when clicking the [css_useSkill] button. Cooldown is 30s.
  • Skill improvements:

    • Anti-Flash:
      • Added: Your flash takes longer (7s).
    • Astronaut:
      • Changed: Gravity multiplier from (0.2 - 0.7) to (0.1 - 0.7).
      • Added: Player can now see their gravity multiplier in chat.
    • Dracula:
      • Changed: Dracula can now have excess health from now on.
    • Ghost:
      • Added: Blocking the use of weapons other than a knife.
      • Added: Any weapon picked up by a ghost becomes invisible.
    • Flash:
      • Fixed not getting speed.
      • Changed: Speed multiplier from (1.2 - 2.5) to (1.2 - 3.0).
      • Added: Player can now see their speed multiplier in chat.
    • Catapult:
      • Added: Random toss chances (20% - 40%).
      • Added: The player now sees their chances in chat.
    • Chicken:
      • Fixed not getting the chicken model.
      • Added: Blocking the use of weapons other than a knife or gun.
      • Added: Chicken can only have 50 hp.
    • Medic:
      • Fixed not getting first aid kits.
      • Changed: From now on everyone loses first aid kits at the end of the round.
    • Infinite Ammo:
      • Added: From now on, grenades are also infinite.
    • Enemy Rotation:
      • Added: Random chance of enemy rotation (20% - 40%).
      • Added: Player can now see their chances in chat.
    • Phoenix:
      • Fixed not being reborn after death.
      • Added: Random revival chances (20% - 40%).
      • Added: Player can now see their chances in chat.
    • Pilot:
      • Changed: The description of this skill has been improved.
    • Rambo:
      • Fixed not getting extra health.
    • Disarmament:
      • Added: Random chances to throw away enemy weapons after hit (20% - 40%).
      • Added: Player can now see their chances in chat.
      • Changed: Now only active enemy weapon is thrown (Knife throwing bug fixed).
    • Eliminator -> Sapper:
      • Changed: Renamed the power from ‘Eliminator’ to ‘Sapper’.
    • Teleporter:
      • Fixed a bug where only the player with the skill was being teleported.

💝 Donate

⠀

📝 Contact

If you have a question, please write to juzlus.biznes@gmail.com or jRandomSkills Discord.