Skip to content

Spawn and Special Infected Difficulty

Two layers: spawn control decides when and where SI appear; AI difficulty sets SI behavior by team PPM.

Anne Server Community Maintainers Last verified: August 4, 2026 Written from the infected_control and dynamic AI plugin source
Automatic tiers 5 tiers
Fixed challenge tier Neri
Sample Count 0 players
Last Updated Waiting for first calculation · Default

Two systems, two responsibilities

The difficulty tier affects both spawn strategy and AI behavior, but each system has a different responsibility.

Spawn layer Decides when and where SI spawn

infected_control manages the kill observation window, the full 16-second countdown, Anti-Bait holds, directed Nav candidates, spawn safety checks, and candidate scoring.

AI behavior layer Decides how SI fight after spawning

The dynamic AI plugin assigns a tier from the mean individual PPM of human survivors, then applies pounce, bunnyhop, tongue, vomit, charge, and Tank behavior settings.

How the Five AI Tiers Are Assigned

The system calculates each human survivor individual PPM and then takes the arithmetic mean; it does not divide team score by team time. Automatic mode selects only the five tiers from Simple through Extreme.

Tier Team PPM Check window Full countdown Low SI Threshold Scored candidates Sweet Spot Width Feel
Easy < 30.89 16s 16s 12% / 6 SI <= 1 9 1.25x Slowest fallback start
Normal 30.89 - 43.23 12s 16s 20% / 6 SI <= 1 10 1.15x Baseline pressure
Hard 43.23 - 63.70 10s 16s 27% / 6 SI <= 1 11 1.08x Earlier base countdown start
Expert 63.70 - 77.57 8s 16s 34% / 6 SI <= 2 12 1.00x Main combat pressure tier
Extreme >= 77.57 6s 16s 50% / 6 SI <= 3 12 1.00x Earliest checks and highest attributes
Assignment and lock

Overall stats are used by default. Operators may enable quarterly stats with at least 300 individual quarterly minutes. The saferoom tier is provisional and recalculates after team changes; it locks for the round when survivors leave. If daily P60 / P75 / P90 / P95 thresholds are unavailable or stale, configured defaults are used.

Special Infected wave timeline

The 16 seconds are a complete countdown that starts after the kill observation ends, not a forced gap between the last successful spawns of two waves.

01
Wave starts

The normal spawn queue is filled first, then the kill observation window for the current tier begins.

02
Start the countdown

The countdown may start early when the normal and asynchronous queues are empty, active SI are at the low-pressure threshold, survivors are healthy, and no Tank pressure exists; otherwise it waits for the tier check time.

03
Wait the full 16 seconds

The base countdown runs independently. Time since the previous SI spawn does not offset it, and low SI pressure cannot shorten it again.

04
Check for holding near the deadline

Anti-Bait can arm only in the final 4 seconds. A healthy, grouped team that remains stalled for 2 seconds enters an unlimited hold at the deadline.

05
Release the next wave

Without a hold, the wave releases at the deadline. During a hold, 2 stable seconds of progress, breakup, isolation, or vulnerability releases it immediately.

How Anti-Bait detects holding

It does not watch whether one player stops. It combines team progress, formation structure, and vulnerability. A spread-out but stalled team prepares a breach wave but does not enter an unlimited hold.

12s Stall observation

Progress uses the team lower-median Flow, so one fast runner cannot reset the timer for everyone.

4s Arming window

Pressure can begin only during the final 4 seconds of the base countdown.

2s Hold confirmation

Healthy, at least two valid survivors, stably grouped, and still stalled.

2s Release confirmation

Stable confirmation after progress, group breakup, isolation, incapacitation, ledge grab, pin, or invalid Flow.

Grouping conditions

At least two valid survivors are required. The team must form one connected group with no member isolated by 1200 units or more, and either have a maximum spread of 800 or less, or a maximum spread of 1500 or less with average nearest-teammate distance of 800 or less. Incapacitation, ledge grabs, pins, death, or unreadable Flow count as vulnerability.

Why spawns appear near, far, or above

The main pipeline no longer enumerates candidates from Flow buckets. The extension supplies reachable candidates from a directed Nav graph, then SourcePawn applies safety filters and class scoring. It falls back to all Nav areas and real path checks only when the graph is unavailable.

250 Direct-distance hard exclusion

A candidate within 250 units of any survivor is rejected. This is a 3D direct distance and is unaffected by Nav detours.

Directed Nav Class ranges and candidate order

Class minimum and maximum ranges, distance sweet spots, and near-to-far candidate order all use the directed path distance from candidate Nav to target Nav.

Safety first Hard filters

Nav attributes, route progress, local density, stuck state, visibility, and the real path are checked in order. Unsafe points are never scored.

Score second Soft ranking

Only safe candidates are ranked by distance, height, Flow, dispersion, and class-specific tactical quality.

Class path-distance bands

Each class searches a tighter preferred band first. On failure, only the far limit expands: the class minimum stays fixed, and the search processes only the new Nav interval beyond the previous band. Every value below is the directed path distance from candidate Nav to target Nav.

Class Preferred band Second band Final band
Smoker 500-1200 500-2100 500-3000
Boomer 250-550 250-1000 250-1800
Hunter 350-950 350-1750 350-2900
Spitter 300-800 300-1450 300-2300
Jockey / Charger 250-700 250-1250 250-2200
Smoker high-ground reduction

Once a candidate is more than 32 units above the target eye, extra height is subtracted from raw Nav distance at 1.5x, capped at 1000. This only relaxes the maximum and scoring; it never bypasses the 250 direct-distance exclusion or lowers the class minimum.

Hunter high-ground reduction

Once a candidate is more than 32 units above the target eye, extra height reduces Nav distance at 1.15x, capped at 800. This keeps roofs and ledges in scoring when Nav detours are long.

How the five automatic AI tiers feel

The automatic profiles control 97 unique cvars in total. This table keeps the speed differences most noticeable in play; Extreme also takes over additional official ability settings.

Key behavior Easy Normal Hard Expert Extreme
Hunter / Jockey air speedhunter_pounce_air_speed / jockey_pounce_air_speed 700 750 800 850 900
Smoker bunnyhop speedai_SmokerBhopSpeed 70 90 105 120 150
Jockey bunnyhop speedai_JockeyBhopSpeed 50 60 70 80 150
Spitter bunnyhop speedai_SpitterBhopSpeed 45 65 85 100 250
Charger bunnyhop speedai_ChagrerBhopSpeed 45 60 75 90 150
Boomer bunnyhop speedai_BoomerBhopSpeed 70 95 125 150 250
Tank maximum bunnyhop speedai_tank3_bhop_max_speed 700 800 900 1000 1050
Highest automatic tier

Extreme

  • Target acquisition waits drop to 0; Smoker miss cooldown is 3 seconds, tongue range is 800, and tongue speed is 1200.
  • Hunter enables converted pounces, reflection, and long-range settings; Jockey rear vision rises to 100.
  • Spitter acid damage is set to 3 / 2; Boomer vomit fatigue is 1500 and range is 300.
  • Charger charge distance is 280, aim offset is 35, and air correction is stronger.
Fixed mode only

Neri

Automatic PPM never selects tier 6. Neri builds on Extreme with Anne-Neri behaviors; its spawn strategy is the same as Extreme: a 6-second check window, full 16-second countdown, and 12 scored candidates.

  • Enables the Anne-Neri air ability patch and Smoker jump-pull.
  • Hunter pounce interval and cooldown are both 0.
  • Charger aim offset rises to 180 and air-correction interpolation to 0.50.
  • Boomer enables jump-vomit, with 0 vomit fatigue and 400 vomit range.
  • Tank bunnyhop pursuit distance is 99999, throw force is 1000, and ladder animation rate is 4; Witch anger rate is 1.
Profile changes do not leave stale settings

The plugin restores the baseline for every cvar controlled by tiers 1-6 before applying the target profile. Current entry counts are 84 / 84 / 84 / 84 / 97 / 105; including Neri, 105 unique cvars are involved.

Performance controls for operators

These settings are runtime ConVars. Slower machines can reduce per-frame attempts, Nav inspection counts, or millisecond budgets. Hot loops read cached values, and changing them resets the active search.

Setting Default function
inf_spawn_attempts_per_frame 4 Maximum normal/teleport spawn attempts advanced per frame
inf_spawn_frame_budget_ms 2.0 ms Soft per-frame time budget for spawn attempts
inf_spawn_nav_candidates_per_slice 256 Maximum Nav candidates inspected per search slice
inf_spawn_nav_expensive_per_slice 8 Maximum candidates entering visibility/path checks per slice
inf_spawn_nav_slice_budget_ms 1.0 ms Soft time budget for one Nav search slice
Background candidate refresh rate

With no nearby spawn work, the extension refreshes candidates about once per second. With queued work, an initial-wave or spawn timer, or no more than 1 second until release, it switches to about every 0.1 seconds. Candidate result pages expire after 0.2 seconds to avoid reusing stale positions.