This repository is a fork of K4ryuu/CS2-Egg, modified to allow advanced plugin management and admin role automation for Counter-Strike 2 servers via Pterodactyl Panel.
- Automatic updates for CounterStrikeSharp, MetaMod, and CS2 Modded Server (from
kus/cs2-modded-server) on every startup. - Plugin Management:
- Enable/disable plugins individually via environment variables at install time or via the panel.
- Plugin activation/deactivation is reflected by moving plugin folders in/out of the
disableddirectory – changes survive updates! - The full plugin list is always generated dynamically from the actual directory structure.
- Custom variables:
- Hostname and RCON password can be set through the Pterodactyl UI.
- All relevant server settings (map, player count, Steam token, custom params, etc.) remain configurable.
- Admin/Moderator Roles Management:
- Server roles (
admins.jsonfor CounterStrikeSharp) are fully configurable via four panel fields:CSS_ADMIN_FLAGS– Comma-separated admin group flagsCSS_MOD_FLAGS– Comma-separated moderator group flagsCSS_ADMINS– Comma-separated admin users inusername:steamidformatCSS_MODS– Comma-separated moderator users inusername:steamidformat
- The script
set_css_roles.shautomatically generates a validadmins.jsonfrom these variables at install/startup. - Example:
CSS_ADMIN_FLAGS:@css/reservation,@css/kick,@css/rootCSS_MOD_FLAGS:@css/generic,@css/kickCSS_ADMINS:admin1:76561190000000001,admin2:76561190000000002CSS_MODS:mod1:76561190000000003,mod2:76561190000000004
- Roles can be changed any time from the panel UI.
- Server roles (
- Robust update script:
- Full error handling for downloads, extraction, and updates.
- Version file management for each addon.
- Clean separation of enabled and disabled plugins based on user selection.
- The update logic in
update.shhas been extended and made more robust:- All plugins are dynamically managed – you can enable/disable plugins via an environment variable (
ENABLED_PLUGINS), and the script will move folders accordingly between/pluginsand/plugins/disabled. - Plugin list is always up-to-date with the actual state on disk, not hardcoded.
- Additional environment variables for hostname and RCON password, safely injected into the startup command with proper escaping.
- Automated roles/config:
set_css_roles.shcreates youradmins.jsonbased on four new variables. - Improved error handling and clearer logging throughout the update process.
- Supports future plugin changes without further scripting.
- All plugins are dynamically managed – you can enable/disable plugins via an environment variable (
Default enabled plugins:
(Examples – actual list is maintained in the egg)
CS2-CustomVotes, CS2AnnouncementBroadcaster, CS2Rcon, CS2_ExecAfter, FixRandomSpawn, GameModeManager, MatchZy, OpenPrefirePrac, MapConfigurator, Deathmatch, WASDMenuAPI, RetakesAllocator, RetakesPlugin, RollTheDice, ExecutesPlugin, FunMatchPlugin, GG2, STFixes, SharpTimer, GameModifiers, MutualScoringPlayers, InstadefusePlugin, cs2-OneInTheChamber, WarcraftPlugin, BotsNoKnife
Default disabled plugins:
Advertisement, CS2-Remove-Map-Weapons, DeathrunManager, InventorySimulator, K4-Arenas, K4-Arenas-Bots, K4-DamageInfo, QuakeSounds, STFixes, SharpTimer, WeaponSpeed, WhiteList, cs2-advanced-weapon-system
You can adjust which plugins are enabled in the panel at install/startup time.
This project remains under the license of the upstream repositories unless otherwise noted.