nooky added a new file:
![](https://hub.sp-tarkov.com/files/images/file/e4/878.jpg)
QuoteDisplay MoreSPT 3.8.0-3.8.3 ONLY
REQUIRED MODS FOR SWAG + DONUTS
Waypoints by DrakiaXYZSTRONGLY RECOMMENDED MODS
SAIN by Solarint
Looting Bots by Skwizzy
Questing Bots by DanW
None of this would be possible without PROPS, the creator of SWAG and DONUTS
SWAG (Simple Wave AI Generator) is a server mod that enhances the spawns in your SPT raids by giving you full control over each and every bot that spawns. This mod comes with a full set of spawn "patterns" built-in so all you have to do is install and play.
DONUTS is a client mod that provides a full in-raid spawn point editor and dynamic spawn system. Donuts comes with a full set of spawn "patterns" specifically created with and for Donuts built-in so all you have to do is install and play.
Together, SWAG + DONUTS provide complete spawn control, unpredictability and freedom. Bots in D2. Crackhouse. Streets Apartments. Interchange Railway. Exfils. Anywhere.
What is SWAG + Donuts?SWAG + Donuts is a complete overhaul of the SPT bot spawning system. If you're not a fan of vanilla spawns for whatever reason then this is the mod for you. SWAG + Donuts is a combination of client (Donuts) and server (SWAG) mods that each handle certain parts of the spawning system in SPT in various ways and offer a wide variety of flexibility and config options. All PMC and SCAV spawn points are completely custom made for all maps and can be modified with many different parameters.
By default, SWAG + Donuts is packaged with a set of "spawn presets" that you can select in-game (BepInEx F12 menu) among lots of other options you can tinker with, some you can toggle on/off mid-raid.
This is a big mod and be complicated for some - fear not, if all you want is to install a cool spawn mod and just play then you can do just that, the defaults are mostly tuned for a live-like experience. If you prefer that PMCs do NOT respawn during a raid then be sure to select any of the "starting-pmcs-only-*" presets from the Donuts F12 menu.
Features include
- custom spawn points and custom zones for all maps, created with a built-in spawn point editor
- various "spawn presets" available or create your own
- options for spawns you can toggle mid-raid, such as force bot type, spawn hard cap, hot spot boost and more (more info on these options below).
- add, remove, change any boss spawns or other bot types (add all bosses to all maps, spawn 10 Kabans and everywhere in-between)
- in-raid custom spawn point editor - edit parameters such as spawn timers, bot count, spawn distance from the player
- adjust bot squad size and chance, max PMC/SCAV counts per map, per preset and much more
For more info. please see the DONUTS and SWAG tabs above.
How To Install
If you already have "old" SWAG installed uninstall that first! (delete the 'SWAG' folder from user/mods)
1. Download the zip from the link on this mod page
2. Extract to your SPT folder
3. Play
How To Uninstall
1. Delete 'SWAG' from user/mods
2. Delete 'dvize.Donuts' from BepInEx/plugins
3. Clear your temp files (via SPT launcher) just in case
Mod Compatibility
Any mod that changes SPAWNS is likely NOT compatible with SWAG
IF YOU USE REALISM MOD
first, make sure you have the latest REALISM installed. If you do then Realism will config everything for you - no changes needed.
If you want to use Realism Boss changes with SWAG:
go to the SWAG config.json and change these to true:
IF YOU USE SVM (Server Value Modifier)
Any of the following options should be DISABLED and are NOT compatible with this mod:
- any options under 'Events' (spawn related stuff)
- any options in the 'Bots' tab
Donuts Main Settings
(default: Enabled)
Enables or disables Donuts completely. This must be toggled before a raid.
Despawn Option
(default: Enabled)
If enabled, any PMCs or SCAVs that spawn over your Donuts presets caps will be despawned on a 10 second interval down to your max cap. Note: despawning only occurs after a spawn points has been triggered, there may be brief periods of time where your bot count will be inflated. If you're not a fan of despawning please see the Hard Cap option below.
If disabled, Donuts spawns essentially have 0 max cap.
Bot Hard Cap Option
(default: Disabled)
If enabled, Donuts will skip any spawn points triggered over your Donuts preset caps. In other words, if you have an active alive bot count that is already at your Donuts preset bot limits then Donuts will skip spawns until a bot dies (sort of like vanilla).
If you do not wish to use despawning then I highly suggest using this option instead. You can also use both options along with the hotspot options in the Advanced Settings (see Advanced Settings section below)
Cool Down Timer
(default: 300 seconds)
Donuts spawn global cooldown. This number defines the time period that occurs after a spawn points is triggered and the max bots before cooldown value has been met (see: Donuts Spawn Point Config Explained). Once this time has passed then the spawn point can be triggered again.
Donuts PMC Group Chance
(default: Default)
This is a string value that defines the probabilities of certain PMC squad sizes. By default, all Donuts PMC spawn points are configured to spawn up to 5 bots, however, this can be changed to any number. Default is "Default", which is balanced set of probabilities for a live-like experience. "Max" forces the max possible number of bots configured by that spawn point (so, 5 bots by default). "None" forces all bots to spawn solo. All of these probabilities are configurable (see: Donuts Advanced Settings)
Donuts SCAV Group Chance
(default: Default)
Same as PMC Group Chance
Donuts PMC Spawn Difficulty
(default: Normal)
This defines the base game difficulty that is applied to your bot spawns. This is not the same as SAIN difficulty. Donuts dificulty is the same as base game difficulty, this option simply provides a more flexible way to define difficulty for your spawns separated by bot type.
Donuts SCAV Spawn Difficulty
(default: Normal)
Same as above.
Other Bot Type Spawn Difficulty
(default: Normal)
Same as above. Note: This applies to all bots other than PMCs and SCAVs that are spawned by Donuts, not SWAG.
PMC Raid Preset Selection
(default: Live Like (Random))
Select a Donuts spawn preset here. Choose from any of the pre-packaged spawn presets that come with the mod or feel free to experiment and create your own. Default is the Live Like (Random) preset, which is a random pool of live-like presets (more info please see: Donuts Presets Explained)
SCAV Raid Preset Selection(default: scav-raids)
Same as above but specifically for SCAV raids. Default is the "scav-raids" preset specifically balaned for SCAV raids.
Show Random Scenario Selection
(default: Enabled)
If enabled, shows the preset being selected at the bottom-right of your screen when you load into a raid (if chosen randomly by Donuts).
Donuts Additional Spawn Settings
Force PMC Faction
(default: Default)
Forces a certain PMC faction, if desired. Default is random USEC or BEAR. Can be toggled mid-raid.
Force Bot Type for All Spawns(default: Disasbled)
Forces a specific bot type for all spawns. Can be toggled mid-raid.
Spawn Hard Stop
Hard Stop: Time Left in Raid
(default: Disabled, 300 seconds)
If enabled, Donuts will stop spawning PMCs or SCAVs once ther eis n time left in your raid (defined by Time Left in Raid).
Hot Spot Spawn Boost
(default: Disabled)
If enabled, forces all hot spot spawn points to have a 100% chance to spawn (if triggered).
Hot Spot Ignore Hard Cap
(default: Disabled)
If enabled, all hot spot spawns ignore the Donuts hard cap (if enabled, see above). I recommend using the following for an optimial experience while saving some frames:
Despawn Enabled
Hard Stop Enabled
Hot Spot Boost Enabled
Hot Spot Ignore Hard Cap Enabled
Use Global Min Distance From Player
(default: Disabled, uses parameter configured in Donuts patterns)
If enabled, you can set the minimum distance (in meters) that bots should spawn away from the player (you). This option must be enabled for the values for maps to work.
Donuts Advanced Settings
Max Spawn Tries Per Bot
(default: 20)
Maximum number of times Donuts will try to spawn a bot (if it fails) before it skips. You generally never need to change this unless you know what you're doing.
Group Chance Weight Distribution
Low, Default, High
This defines the probabilities of certain group sizes separated by option.
Formula: individual weight / total weight = % chance
Example:
Default: 210, 210, 45, 25, 10
Group sizes of: 1, 2, 3, 4, 5 respectively
Total weight: 210 + 210 + 45 + 25 + 10 = 500
Solo bot spawn: 210 / 500 = 0.42 = 42%
5-man: 10 / 500 = 0.02 = 2%
etc...
Spawn Point Editor
If you plan to use the spawn point editor be sure to set key binds for creating and deleting spawn marker keys (see above screenshot).
For details on all parameters please see the section below: Donuts Spawn Point Parameters Explained
Donuts - Presets Explained
RANDOM PRESETS
Random presets are a collection of presets that are chosen at random given the weights defined by you.
The configs for these can be found here: BepInEx\plugins\dvize.Donuts\RandomScenarioconfig.json
Live Like
An equal chance for any of the live-like presets (live-like, alt2, alt3, alt4)
Starting PMCs Only
An equal chance for either of the starting-pmcs-only-live-like presets
Whole Lotta SCAVsAn equal chance for either of the morescavs presets with a small chance for "all-scavs"
I Like Pain
A mix of chances for the following presets: "split-starting-pmcs", "crazyraids", "impossibleraids", "boss-mania"
Random Quiet RaidsAn equal chance of either of the quietraids presets
ALL PRESETS
Any of the following presets can be selected from the Donuts F12 menu. Simply select a preset of your choice before the next raid and play, no need to set it every time.
live-like, alt-2, alt-3
Presets that aim to provide a "live-like" experience with PMC respawns. If you do not wish to have PMC respawns in your raids then try starting-pmcs-only presets!
crazyraids
Increased spawn frequency on all maps - if the live-like presets don't offer enough action for you then try this.
impossibleraids
crayraids but more - if crazyraids wasn't enough try this.
quietraids
Decreased spawn frequency on all maps - for a more relaxed Tarky experience.
starting-pmcs-only-live-like
Only spawn PMCs at the start - no PMC respawns.
starting-pmcs-only-live-like-alt
Same as live-like but starting PMC points are a little different for added variety.
starting-pmcs-only-late-scavs
Same as live-like but 0 SCAVs spawn at the start. Generally, there is a ~2-5 minute window before SCAVs can start spawning with this preset (window is shorter on smaller maps such as Factory).
boss-mania
Live-like except instead of PMCs it's a mixed bag of random bosses and other bot types.
no-starting-pmcs
This preset removes all starting PMCs and only leaves the dynamic, hot spot PMCs throughout each map. This preset is useful for things like SCAV runs or if you would like to use SWAG PMCs (pmcChance, pmcGroupChance) with Donuts but would also like to keep the extra PMC spawns.
morepmcs
"live-like" but with more PMCs, fewer SCAVs. Good for PMC kill quests.
morescavs
"live-like" but with more SCAVs, fewer PMCs. Good for SCAV kill quests.
scav-raids
Live-like but with a minor twist - PMC spawns are sprinkled throughout maps rather than at live starting locations to simulate a SCAV entering mid-raid.
Donuts Spawn Point Parameters Explained
"MapName" - name of the map. be sure you use proper names, i.e. "bigmap" for Customs
"GroupNum" - spawn group. all spawns with the same GroupNum will share one trigger. in other words, if you have 3 spawn points in one group, and one of those trigger, then the other 2 won't.
"Name" - name of spawn. you can name them whatever you want
"Position": { - x,y,z coordinates of spawn position. this is provided by the in-raid spawn point editor
"x": 89.5103455,
"y": 4.672584,
"z": -158.156723
}
"WildSpawnType" - bot type, i.e. pmc, sptusec, assault, etc.
"MinDistance" - min spawn point radius (can be 0)
"MaxDistance" - max spawn point radius - this is the size of the spawn point. when using the spawn editor, enable "real size" markers to see the actual radius of your spawn point
"MaxRandomNumBots" - max number of bots to spawn. this is 1-max inclusive and it's random
"BotTriggerDistance" - distance to player for spawn trigger. once the player is within this distance then the spawn timer will start
"BotTimerTrigger" - spawn timer. if the player is within trigger distance this timer will continue to run
"SpawnChance" - spawn chance %
"MaxSpawnsBeforeCooldown" - once this many bots have spawned the spawn point will enter a cooldown (wait for 180s, default, configurable in F12 menu)
"IgnoreTimerFirstSpawn" - if true, once player is within BotTriggerDistance the spawn will trigger regardless of timer. If false, the timer must run at least once for the first spawn trigger.
"MinSpawnDistanceFromPlayer" - the min distance from player that bots should spawn. this is to hopefully prevent bots spawning too close to you.
---
The Rules of DONUTS
Rules
1. Bots will only spawn in same level/height as the spawn marker
2. Bots will only spawn in maximum distance (radius) around the spawn marker
3. One random spawn marker will be picked in a group
- if the timer is passed its eligible to spawn (Unless IgnoreTimerFirstSpawn is true for the point. It will be set to false after a successful spawn)
- if they are within the BotTimerTrigger distance the point is eligible to spawn.
- If the SpawnChance is reached, it is eligible to spawn.
- Validate that the spawn is not in a wall, in the air, in the player's line of site, minimum distance from the player. It will attempt to find a valid point up to the Bepinex Configured Max Tries specified.
- One to MaxRandomNumBots from the Spawn Marker info will be generated of type WildSpawnType
4. Timers will be reset if there is a successful spawn or a failure from within a group.
5. If a spawn sucessfully spawns up to their MaxSpawnsBeforeCooldown number, then it is in 'cooldown' until the timer specified in the bepinex config is reached.
Assumptions
- Spawns within a group will be on/around the same bot trigger distance otherwise only the closest spawn will be enabled.
- Each unique or standalone spawn should be given its own group number.
Donuts - Not Enough Bots? Too Many? - ScenarioConfig and RandomScenarioConfig Explained
ScenarioConfig file defines all of the PMC and SCAV max bot caps for each map, for all presets. If you want to change the number of total PMCs and/or SCAVs in your raids then this is where you would do it. If you create a new preset be sure to add it to this file.
If you're finding too many bots in your raids or not enough, I recommend trying any (or all) of the following:
- change ScenarioConfig bot caps
- change PMC/SCAV group chance
- Despawn/Hard Cap options
- Hot Spot options
RandomScenarioConfig file defines "random pool" packages of presets that you can randomly cycle through. You can create a new random pool in this file, add any presets you want (try adding all of them, why not) and give each preset a weight. Weights work like this: individual weight / total weight = % chance
Then select the random preset pool from the preset selector in the Donuts F12 menu.
Donuts Custom Zones
All Donuts spawn points are hand-created and completely customizable. I've created my own "custom zones" on each map so that spawn points are more organized and follow the zone color patterns. Additionally, "hotspot" spawn points are labeled corresponding to their custom zone and overall general location on the map.
Example:
In the above, this is a spawn point located in the zone Blue (see Customs map below) with specific parameters for this point. Note the GroupNum - this point is grouped with all other Zone_Blue points so that they share timer triggers. In other words, if this spawn point was triggered and SCAVs spawned then all other GroupNum 20 (Zone_Blue points) reset their timers.
Hotspot Example:
In the above, this is a custom spawn point in the custom zone Green (see Customs map below for reference), that is specifically located inside Dorms as a PMC hotspot. Thus, the Donuts hotspot options would apply to this point in this case (hotspot boost, ignore cap options, etc.). Most hotspot points use unique GroupNum values.
Donuts Custom Zone Maps
SWAG Config and Boss Config
For General SWAG options: user\mods\SWAG\config\config.json
For Boss options: user\mods\SWAG\config\bossConfig.json
For spawn configs (to modify, add, remove):
Named bosses (Killa, Tagilla, etc.)
user\mods\SWAG\config\bosses\
Other "bosses" (Raiders, Rogues, Cultists, SCAV snipers, etc.)
user\mods\SWAG\config\other\
"Custom" bosses and Event bosses (Santa, Punisher mod boss, etc.)
user\mods\SWAG\config\custom\
SWAG config.json Options Explained
disableAllSpawns
Quick way of disabling all of a certain type of spawns. If true, then all spawn chances for that type are set to 0 for all maps.
bossDifficulty
bossEscortDifficulty
In-game difficulty that gets assigned to bosses and their guards - "asonline", "easy", "normal", "hard", "impossible" are all valid options. "asonline" randomly chooses between easy, normal, hard and impossible.
Spawns - useGlobalSpawnChance
if true (default) then the spawn chances defined per map (see above) are used. If false, then the spawn chance defined in the boss config files are used instead.
By default, SWAG adds all bot types to all maps, however, they're only configured to spawn once at the start of the raid in a random zone (default). This is entirely configurable, as well as adding more bosses if you wish (see: SWAG: How-To - Modifying boss spawn configs).
For example, if you quickly wanted to add more cultists to other maps, simply change the above numbers and you're set. If you want to change up when and where they spawn then that's where modifying spawn configs comes in.
SWAG bossConfig.json Options Explained
TotalBossesPerMap
If set to -1 (default), then any number of bosses can spawn. If set to 0, then no bosses spawn. If set to 1 for example, then only 1 boss can spawn. If you have multiple bosses set to spawn for one map then SWAG will randomly pick one.
Boss Spawns - useGlobalBossSpawnChance
By default, SWAG adds all bot types to all maps, however, they're only configured to spawn once at the start of the raid in a random zone (default). This is entirely configurable, as well as adding more bosses if you wish (see: SWAG: How-To - Modifying boss spawn configs).
For example, if you quickly wanted to add more gluhar to other maps, simply change the above numbers and you're set. If you want to change up when and where they spawn then that's where modifying spawn configs comes in.
SWAG: How-To - Modifying boss spawn configs
All bosses in SWAG are pre-configured for all maps. By default, bosses are configured to spawn on other maps with a random zone and at time -1 (see examples below)
Example: gluhar
And so on. You can add, remove or change any of the boss files to your liking but they must be valid values, otherwise you will experience problems.
FAQ
How do I know this mod is actually working?
Two ways - you'll see some SWAG load up in your server console along with your server mods (and hopefully no red text)
Additionally, you need to check that Donuts shows up in your BepInEx F12 menu, if it doesn't then it's not installed correctly
Is this mod compatible with x, y, z?
See: Mod Compatibility tab above
Can I use base game vanilla spawns with this mod?
No - once upon time this mod supported that but I no longer want to maintain an old spawning system. If you prefer base game spawns I highly recommend BetterSpawnsPlus by PreyToLive or other spawn mods.
Does this mod impact performance?
Short answer is yes. The longer answer is it can make both a positive and negative impact on your performance depending on your settings. For example, if you used lower bot caps, tweaked some presets to spawn bots closer to you, etc, you can save a lot on frames. The despawn and hard cap options also help in this regard.
I like long raids (60 min+), will these spawns work for me?
Yes - SWAG + Donuts spawns go on forever, raid time is irrelevant.
REMINDER - THIS IS A WORK IN PROGRESS - I'm always open for improvements, please give me feedback in the comments or find me in the SPT Discord!