Jump to content

Spawn System: Difference between revisions

From WarhammerWorkshop
HAPPYMAN5 (talk | contribs)
No edit summary
No edit summary
 
(17 intermediate revisions by one other user not shown)
Line 1: Line 1:
== The Enemy Spawn Director ==
= The Enemy Spawn Director =
The Enemy Spawn Director(ESD) monitors players through a mission, and decides what to spawn, where, and how much based on how well the player is doing. The ESD knows how well a player is doing based on '''''Stress Levels'''''. When the stress you and your squad are under is High, the ESD will consider ending the current encounter faster and will spawn less enemies. When the stress you and your squad are under is Low, the ESD will start spawning more enemies. All of this to try to ensure that you are under a constant and continuous amount of '''''Pressure.''''' By keeping your Pressure Level consistent throughout a mission, the ESD insures that there are never too little enemies and never to many enemies.


== Stress ==
The '''Enemy Spawn Director (ESD)''' monitors players throughout a mission and dynamically adjusts enemy spawns, locations, and numbers based on player performance.
Stress Levels are shared between your squad mates. If your Stress is High or low, it will contribute to how high or low your Squad's Stress Level is. Your personal Stress Level can ''increase'' dramatically if you have taken damage, have been incapacitated, have been grabbed, have a low ammo or grenade count, or are low on stims. Stress will also go up over time based on how long you have been in active combat. Your Stress levels will ''decrease'' over time as long as you are not doing anything to increase them.
The ESD uses a system of '''''Stress Levels''''' and '''''Pressure''''' to regulate intensity, ensuring gameplay remains challenging without overwhelming players.


== Waves ==
For a detailed guide on spawn systems, see [[Spawn System Info]].
[[File:ESD Wave Handler .png|thumb|ESD Wave Handler Diagram provided to the Modding Community via Artem "Neo_Kesha" Yashin, a Developer at Saber Interactive]]


The ESD breaks the spawning of Enemies into 3 phases: '''Tension, Wave,''' and '''Breather.'''
= Key Files Controlling the ESD =


=== Tension Phase ===
Many files contribute to enemy spawning, but the two primary files are:
The Tension Phase is the first phase the ESD goes through. During this phase players should be preparing themselves to enter combat. You will mostly encounter Minoris, and Majoris Enemies that will "Patrol" the area, but an Extremis enemy can spawn, though it is rare.


=== Wave Phase ===
* '''esd_manager.sso'''
The Wave phase is the big one. During this phase players will have to actively fight through a wave of incoming enemies. You will encounter everything from Minoris enemies to Terminus Enemies. Mini Bosses can only spawn during this phase.  
* '''esd_factions_and_compositions_library.sso'''


=== Swarm Phase ===
Both files control what enemies spawn, how many spawn, and under what conditions.
The Swarm phase is a rare possibility during a ''Wave'' phase. It is basically the wave phase but 2 times harder. Enemies will come in extremely large numbers, and Extremis enemy spawns will be more frequent than in any other phase. this is the only other Phase Mini Bosses can Spawn in.


=== Breather Phase ===
= esd_manager.sso =
The Breather Phase is the calm at the ''end'' of the storm. This phase is designed to give players time to stand around and gather resources like Stim Packs, Grenades, and Ammo Boxes. Zero enemies will spawn during this phase but you may have to pick off one or two that are left behind by the wave phase. At the end of this phase the whole Spawning process resets and begins again in the ''Tension'' phase.
== Progress Monitoring ==
The ESD is constantly monitoring how players are progressing in a level. If you are stalling or not progressing for any reason, Breather Phases will last longer in the spawning process, and Wave Phases will be shorter and happen less often. The ESD knows that players are not progressing when they are not doing objective related tasks like pressing buttons or searching bodies, or if they are not entering new areas of a level.


== Difficulty Influence. ==
The '''ESD Manager''' controls spawns during the [https://warhammerworkshop.com/index.php/Spawn_System_Info#Wave_Phase Wave Phase] of the spawn cycle, adjusting spawn rates and enemy types based on player Stress and Pressure values.
The difficulty of a mission affects the spawn system in a more direct way. Higher difficulties will allow your Pressure value to be higher, so that you can be under more Stress before the game starts to cut you a break. Higher difficulties also increase the chances of encountering a Swarm Wave, or a Mini Boss.
 
Location:
<code>server_pc\root\paks\server\default\default_other.pak\ssl\spawn_system\enemy_spawn_director\esd_manager.sso</code>
 
[[File:Phase_Lenth.png|thumb|460px|Wave Phase settings inside the ESD Manager]]
 
== Phase Length Settings ==
 
* Phases are categorized into '''SHORT''', '''NORMAL''', and '''LONG''' lengths based on Stress Level.
* High Stress reduces Wave Phase time, while extending Breather/Tension phases.
* All phase durations are measured in seconds.
 
== Pressure Settings ==
 
* Spawns only occur once the player's '''Pressure Score''' exceeds a threshold.
* Example:
** Standard spawn activation threshold: '''100 Pressure'''.
 
Tuning these values modifies when and how enemy spawns escalate.
 
[[File:Pressure_Settings.png|left|thumb|254px|Pressure settings for special enemies]]
 
== Enemy Spawn Packs ==
 
Each spawn entry is called an '''Enemy Spawn Pack''' and contains:
 
* '''isEnabled''': (''True''/''False'') flag to toggle the spawn.
* '''minCount''', '''maxCount''', or '''amount''': control how many enemies spawn.
* '''archetypeUid''': defines which enemy type spawns.
* '''combatType''': (''ANY'', ''RANGED'', ''MELEE'') priority setting.
* '''cooldown range''': sets minimum/maximum time before the spawn can reoccur.
 
[[File:ESD_Manager_Spawn_Pack.png|thumb|Screenshot of a Spawn Pack setup]]
 
== Extra Pack Variants ==
 
Spawn Packs can include additional units via '''extraPackVariants''', creating richer, more varied encounters.
 
* Each variant must have a unique name (use underscores, no spaces).
* Defined in ''SubPackDescs''.
* Variants can specify:
** '''archetypeUid''' (enemy type)
** Spawn amount
** '''excludedDifficultyLevels''' (0 = Minimal, 5 = Absolute)
 
== How Enemy Spawning Selection Works ==
 
Spawning is governed by [[wikipedia:Random_number_generation|Random Number Generation (RNG)]].
Each active spawn pack is selected randomly after cooldowns expire.
 
=== Cooldown Timers ===
 
* Separate cooldowns are maintained for different factions (e.g., Tyranids vs Chaos).
* Cooldowns are measured in seconds.
 
Example:
* Base cooldown: '''240 seconds''' → New spawn selection every 4 minutes.
 
=== Difficulty Modifiers ===
 
* Cooldown times are multiplied based on difficulty:
** Easy difficulties: Cooldown × 1.5
** Hard difficulties: Cooldown × 0.8 or lower
 
Example:
* Base cooldown: 240s
* Modifier (1.5×): 360s
* Modifier (0.7×): 168s
 
= esd_factions_and_compositions_library.sso =
 
The '''ESD Factions and Compositions Library''' manages spawning during the [https://warhammerworkshop.com/index.php/Spawn_System_Info#Tension_Phase Tension Phase].
 
Location:
<code>server_pc\root\paks\server\default\default_other.pak\ssl\spawn_system\enemy_spawn_director\esd_factions_and_compositions_library.sso</code>
 
[[File:Hormagaunt_spawn_picture.png|thumb|A Hormagaunt Spawn Pack example]]
 
== Tension Phase Spawn Packs ==
 
* Packs define entire groups of enemies rather than single spawns.
* Each Spawn Pack contains multiple '''SubPacks'''.
 
Naming rules:
* Spawn Pack names must be unique (only underscores allowed).
* SubPack names must be unique within each pack.
 
Example:
* Spawn Pack '''HormagauntSergeants_idle''' includes:
** 20 Hormagaunts
** 5 Hormagaunt Sergeants
 
== Behavior Settings ==
 
* '''packType''': defines behavior on spawn (''AGGRO'' or ''IDLE'').
* '''combatType''': prioritizes ''RANGED'' or ''MELEE'' behavior.
 
= What Can I Spawn? =
 
By default:
 
* '''Extremis''', '''Terminus''', and '''Mini-Boss''' enemies spawn primarily during Wave Phases (esd_manager.sso).
 
However:
 
* Any enemy type (Tyranid, Chaos, or others) can be spawned by specifying the appropriate '''archetypeUid'''.
* Mixed spawns are possible — e.g., Rubric Marines spawning with Hormagaunts.
 
See [https://warhammerworkshop.com/index.php/Enemy_Info#Archetypes Archetypes] for a full list of spawnable enemies.
 
<blockquote>''This page is incomplete. The Tech-Priests recording this data exhausted their memory banks. Contributions are welcome.''</blockquote>

Latest revision as of 13:19, 29 April 2025

The Enemy Spawn Director[edit | edit source]

The Enemy Spawn Director (ESD) monitors players throughout a mission and dynamically adjusts enemy spawns, locations, and numbers based on player performance. The ESD uses a system of Stress Levels and Pressure to regulate intensity, ensuring gameplay remains challenging without overwhelming players.

For a detailed guide on spawn systems, see Spawn System Info.

Key Files Controlling the ESD[edit | edit source]

Many files contribute to enemy spawning, but the two primary files are:

  • esd_manager.sso
  • esd_factions_and_compositions_library.sso

Both files control what enemies spawn, how many spawn, and under what conditions.

esd_manager.sso[edit | edit source]

The ESD Manager controls spawns during the Wave Phase of the spawn cycle, adjusting spawn rates and enemy types based on player Stress and Pressure values.

Location: server_pc\root\paks\server\default\default_other.pak\ssl\spawn_system\enemy_spawn_director\esd_manager.sso

Wave Phase settings inside the ESD Manager

Phase Length Settings[edit | edit source]

  • Phases are categorized into SHORT, NORMAL, and LONG lengths based on Stress Level.
  • High Stress reduces Wave Phase time, while extending Breather/Tension phases.
  • All phase durations are measured in seconds.

Pressure Settings[edit | edit source]

  • Spawns only occur once the player's Pressure Score exceeds a threshold.
  • Example:
    • Standard spawn activation threshold: 100 Pressure.

Tuning these values modifies when and how enemy spawns escalate.

Pressure settings for special enemies

Enemy Spawn Packs[edit | edit source]

Each spawn entry is called an Enemy Spawn Pack and contains:

  • isEnabled: (True/False) flag to toggle the spawn.
  • minCount, maxCount, or amount: control how many enemies spawn.
  • archetypeUid: defines which enemy type spawns.
  • combatType: (ANY, RANGED, MELEE) priority setting.
  • cooldown range: sets minimum/maximum time before the spawn can reoccur.
Screenshot of a Spawn Pack setup

Extra Pack Variants[edit | edit source]

Spawn Packs can include additional units via extraPackVariants, creating richer, more varied encounters.

  • Each variant must have a unique name (use underscores, no spaces).
  • Defined in SubPackDescs.
  • Variants can specify:
    • archetypeUid (enemy type)
    • Spawn amount
    • excludedDifficultyLevels (0 = Minimal, 5 = Absolute)

How Enemy Spawning Selection Works[edit | edit source]

Spawning is governed by Random Number Generation (RNG). Each active spawn pack is selected randomly after cooldowns expire.

Cooldown Timers[edit | edit source]

  • Separate cooldowns are maintained for different factions (e.g., Tyranids vs Chaos).
  • Cooldowns are measured in seconds.

Example:

  • Base cooldown: 240 seconds → New spawn selection every 4 minutes.

Difficulty Modifiers[edit | edit source]

  • Cooldown times are multiplied based on difficulty:
    • Easy difficulties: Cooldown × 1.5
    • Hard difficulties: Cooldown × 0.8 or lower

Example:

  • Base cooldown: 240s
  • Modifier (1.5×): 360s
  • Modifier (0.7×): 168s

esd_factions_and_compositions_library.sso[edit | edit source]

The ESD Factions and Compositions Library manages spawning during the Tension Phase.

Location: server_pc\root\paks\server\default\default_other.pak\ssl\spawn_system\enemy_spawn_director\esd_factions_and_compositions_library.sso

A Hormagaunt Spawn Pack example

Tension Phase Spawn Packs[edit | edit source]

  • Packs define entire groups of enemies rather than single spawns.
  • Each Spawn Pack contains multiple SubPacks.

Naming rules:

  • Spawn Pack names must be unique (only underscores allowed).
  • SubPack names must be unique within each pack.

Example:

  • Spawn Pack HormagauntSergeants_idle includes:
    • 20 Hormagaunts
    • 5 Hormagaunt Sergeants

Behavior Settings[edit | edit source]

  • packType: defines behavior on spawn (AGGRO or IDLE).
  • combatType: prioritizes RANGED or MELEE behavior.

What Can I Spawn?[edit | edit source]

By default:

  • Extremis, Terminus, and Mini-Boss enemies spawn primarily during Wave Phases (esd_manager.sso).

However:

  • Any enemy type (Tyranid, Chaos, or others) can be spawned by specifying the appropriate archetypeUid.
  • Mixed spawns are possible — e.g., Rubric Marines spawning with Hormagaunts.

See Archetypes for a full list of spawnable enemies.

This page is incomplete. The Tech-Priests recording this data exhausted their memory banks. Contributions are welcome.