Made by aga
SwiftlyS2-Retakes is a CS2 retakes game mode for SwiftlyS2.
It handles:
- Round Flow (automatic site selection, freeze time management, and round cleanup)
- Automatic Bomb Planting (bomb is automatically planted at freeze end at the selected site)
- Instant Plant & Defuse (instant plant support and smart instant defuse logic with molly/enemy checks)
- Weapon Allocation (dynamic weapon, armor, and utility distribution based on round type)
- Weapon Preferences (persistent menus for players to choose their preferred loadouts)
- Map Configurations (custom per-map JSON configs for spawns and smoke scenarios)
- Spawn Editor (comprehensive in-game tools for managing spawns and smokes)
- Queue System (supports max player limits, spectator queues, and late joiners)
- Smoke Scenarios (pre-defined smokes that can be forced or randomly spawned)
- AFK Manager (automatically moves inactive players to spectator or kicks them)
- Anti Team-Flash (blocks teammates from being blinded by friendly flashes)
- Solo Bot System (automatically spawns a bot to play against when only one human is present)
- World Breaker (automatically breaks glass and opens doors at round start for better flow)
- Damage Reports (detailed per-opponent damage summary at the end of each round)
- Clutch Announcements (notifies players of 1vX clutch situations)
- Native Message Suppression (suppresses redundant game messages for a cleaner chat experience)
-
📦Download Latest Plugin Version ⇢ Click Here -
⚙️Download Latest SwiftlyS2 Version ⇢ Click Here
- Download/build the plugin.
- Copy the published plugin folder to your server:
.../game/csgo/addons/swiftlys2/plugins/Retakes/
- Ensure the plugin has its
resources/folder alongside the DLL (maps, translations, gamedata). - Start/restart the server.
The plugin uses SwiftlyS2’s JSON config system.
- File name:
config.json - Section:
retakes
On first run the config will be created automatically. The exact resolved path is logged on startup:
Retakes: config.json path: ...
Useful config fields (non-exhaustive):
retakes.server.freezeTimeSecondsretakes.server.chatPrefixretakes.server.chatPrefixColorretakes.queue.*retakes.teamBalance.*retakes.weapons.*
Map configs live in:
plugins/Retakes/resources/maps/*.json
Each map file contains the spawns used by the retakes allocator.
| Command | Description | Permission |
|---|---|---|
!forcesite <A/B> |
Forces the game to be played on a specific bombsite. | Root |
!forcestop |
Clears the forced bombsite. | Root |
!forcesmokes |
Forces smoke scenarios to spawn every round until stopped. | Root |
!stopsmokes |
Disables forced smokes (returns to normal/random smoke behavior). | Root |
!loadcfg <mapname> |
Loads a specific map configuration. | Root |
!listcfg |
Lists all available map configurations. | Root |
!reloadcfg |
Reloads the main config.json. |
Root |
!scramble |
Scrambles the teams on the next round. | Admin |
| Command | Description |
|---|---|
!editspawns [A/B] |
Enters spawn editing mode. Defaults to showing Both sites if no argument is provided. |
!addspawn <T/CT> [planter] [A/B] |
Adds a spawn at your current position. Note: If viewing both sites, you must specify A or B. |
!remove <id> |
Removes the spawn with the specified ID. |
!addsmoke <A/B> [name] |
Adds a smoke scenario at your current position. |
!removesmoke <id> |
Removes the smoke scenario with the specified ID. |
!namespawn <id> <name> |
Sets a descriptive name for the spawn. |
!gotospawn <id> |
Teleports you to the spawn's position. |
!replysmoke <smoke id> |
Instantly deploys/replays the smoke scenario with the specified ID (for testing). Requires spawn edit mode. |
!savespawns |
Saves all changes to the map config file. |
!stopediting |
Exits spawn editing mode and reloads the map. |
| Command | Description |
|---|---|
!guns / !gun |
Opens the weapon preference menu. |
!retake |
Opens the main Retakes menu (spawn preference, AWP, etc.). |
!spawns |
Toggles the spawn selection menu. |
!awp |
Toggles AWP preference. |
!voices |
Toggles voice announcements. |
| Command | Description |
|---|---|
!debugqueues |
Prints debug information about the queues. |
At round end, each player receives a per-opponent summary in chat (damage/hits dealt + taken), using translations:
damage.report.headerdamage.report.line
You can edit the message format/colors in:
resources/translations/en.jsonc
dotnet build- Readme template by criskkky
- Release workflow based on K4ryuu/K4-Guilds-SwiftlyS2 release workflow
- All contributors listed in the Contributors Section
- All spawns are based on B3none/cs2-retakes
- Inspired by itsAudioo/CS2BombsiteAnnouncer
- Inspired by yonilerner/cs2-retakes-allocator