Read the gamestate overview

The Health Check shows the engine limits that can crash the server, drop players or stop sounds.

GAMESTATE breaks down the shared byte budget.

In the menus: ESC → Direct → Tools → Health Check → GAMESTATE

The gamestate figures update every half-second while the page is open. The server-backed Health Check figures update every two seconds, and REFRESH requests those figures immediately.

Read the budget bar

The bar shows a 16,000-byte capacity. New placements reserve room for joining players and can be refused before it fills.

Used reads as a total against the cap, then how much is left:

13.1k / 16000   free 2.9k (18%)

The percentage in brackets is how much is free, not how much is used.

What each row counts

RowWhat spends it
ModelsStock model paths, including NPCs, sabers and GLM props
Managed MD3Placed MD3 props and screens. A path frees its slot when its last prop goes
PlayersAll 32 player strings: names, models and StoryForce keys
RemapsEvery remap, serialised into a single slot
SoundsDistinct sound paths. A slot is never freed until the map changes
Ambient setMover soundsets plus the global set. Rarely more than a handful
BonesGhoul2 bone names the map registers. StoryForce bolts never spend this
EffectsStock effect registrations including weather. Placed StoryForce effects never spend this
Locationstarget_location names from the map
ParticlesNothing. Permanently dim
Light stylesThe worldspawn light animation channels. No runtime growth
IconsSiege and turret icons. Normally zero
BSP modelsSub-BSP names from an older map format. Normally empty, but still measured
MusicThe worldspawn music path
MessageThe map message line
MOTDThe scene name, or the server's message of the day
Server infoThe serverinfo and systeminfo pair. Grows with every cvar flagged for either
OtherVotes, scores, items, duel and siege state, the skybox, plus the remainder

Work out your headroom

The third column, ~ +N, is roughly how many more entries of that kind will fit.

For Players, the estimate uses the largest whole player string currently connected, including its name, model and StoryForce keys. It is also capped by the number of free player slots.

Reduce what the gamestate holds

A player’s string is freed when they leave. Stock model and sound registrations stay until the map changes.

Managed MD3 slots and gamestate bytes return when their last prop goes. The distinct-path allowance lasts for the map session. Renderer models stay loaded.

  • Reuse model paths. Ten NPCs on one model cost one slot. Ten NPCs on ten models cost ten.
  • Reuse sound paths. Same rule, and sounds are never released mid-map
  • Cut remaps. One slot, but a big one, and dropping unused ones reclaims kilobytes at a stroke
  • Shorten player names. Names are one part of every player string, and hex colour codes lengthen them without adding visible text. sf_allowhexcolourcodes 0 strips them.