Source: https://shadowfrag.com/blog/why-the-limit-is-64/

# Why I stopped the server limit at 64

By the SHADOWFRAG developer · Testing · Oct 22, 2026 · 3 min read

An 80-client run completed, but its slower action results made it a poor basis for raising the limit. I kept the game at 64 players including [bots](https://shadowfrag.com/glossary/#term-bot).

[SHADOWFRAG match builder with map, objective, equipment policy and a limit of 64 players including bots.](https://shadowfrag.com/_astro/0f105859ea645fa428170f4bed1f46d7b418970cab7ba79f881e98e7c1bddc0f.xfcGI4gA.png)

The match builder exposes the rules and the current limit of 64 total players, including [bots](https://shadowfrag.com/glossary/#term-bot), in one place. Archive date: Oct 22, 2026.

**Update, 26–27 October 2026.** The later capacity study keeps the game's configured limit at 64. Three clean [Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands) [free-for-all](https://shadowfrag.com/glossary/#term-free-for-all) runs with 128 research clients established a result for those local-network conditions. Dense tests at higher counts did not establish a larger general limit. [Read the new capacity results](https://shadowfrag.com/blog/capacity-beyond-64/).

I could connect 80 clients, but that did not settle whether the game should offer an 80-player setting. The more useful question was how long those clients waited to hear the results of their actions. The physical-machine tests showed a clear difference between completing a run and keeping those delays under control.

A native Windows server ran the authoritative simulation, with a separate Linux machine generating the clients. In the **64-client baseline**, the highest client [p99](https://shadowfrag.com/glossary/#term-p99) for action results was **33.023 ms**. [P99](https://shadowfrag.com/glossary/#term-p99) is the [99th percentile](https://shadowfrag.com/glossary/#term-p99): for that client, 99% of measured actions received a result within that time, while the slowest 1% could take longer. The report calls this [weapon-disposition](https://shadowfrag.com/glossary/#term-weapon-request-feedback) time. It is measured by automated test clients, not from a person's physical mouse click to an image on a monitor.

At **80 clients** with mixed equipment, the run completed but the worst client's action-result [p99](https://shadowfrag.com/glossary/#term-p99) rose to **71.609 ms**. Another measure, [raw scene-age](https://shadowfrag.com/glossary/#term-scene-age) [p99](https://shadowfrag.com/glossary/#term-p99), reached **211.967 ms**. [Scene age](https://shadowfrag.com/glossary/#term-scene-age) estimates how old the delivered world state is; it answers a different question from how quickly a shot receives a result. Both made the larger run less convincing as a basis for a supported setting.

## Trying a different equipment mix

I then assigned 40 clients [melee](https://shadowfrag.com/glossary/#term-melee) and [shadow grenades](https://shadowfrag.com/glossary/#term-shadow-warp), and 40 bows and [shrapnel](https://shadowfrag.com/glossary/#term-shrapnel). The equipment stayed assigned correctly and the intended holders were present. [Scene-age](https://shadowfrag.com/glossary/#term-scene-age) [p99](https://shadowfrag.com/glossary/#term-p99) improved to **157.695 ms**, but the worst client's action-result [p99](https://shadowfrag.com/glossary/#term-p99) worsened again, to **88.424 ms**.

That did not identify a single weapon as the cause. Changing equipment also changes which actions occur, how many viewers need their results and when the server does the work. The fresher scene updates did not erase the longer waits for action results, and the comparison could not isolate a weapon's individual cost.

## Applying one limit throughout the game

I set the product limit to **64 total players, including [bots](https://shadowfrag.com/glossary/#term-bot)**, in Play, the match planner, server startup and player admission. Ordinary saved settings above the limit are reduced to 64. Imported class scenarios are rejected if they exceed it: silently changing their class quotas would change the scenario the author supplied.

Boundary checks and a short native interface test cover that policy. Choosing a larger map does not raise the limit. Nor does finding an archived stress test with more clients.

These results came from a development build on a private local network. Broader combinations at lower player counts and [Internet qualification](https://shadowfrag.com/glossary/#term-qualification) were deferred. The limit can be revisited with stronger evidence, but the recorded 80-client runs did not justify changing it. [The netcode evidence](https://shadowfrag.com/netcode/) retains both the 64-client baseline and those follow-ups.

## A plan you can inspect

A retained native match-builder image shows the map, equipment and population settings together. Its archive date identifies the retained image file; the article explains the scope of the host testing.

[SHADOWFRAG match builder with map, objective, equipment policy and a limit of 64 players including bots.](https://shadowfrag.com/media/development/ui-planner-original.png)

**Match builder**Archive date · Oct 22, 2026

The match builder exposes the rules and the current limit of 64 total players, including [bots](https://shadowfrag.com/glossary/#term-bot), in one place.

[Original PNG](https://shadowfrag.com/media/development/ui-planner-original.png)

Still-image archive dates come from retained image file timestamps in Los Angeles time. An earlier-dated article may include later builds; each image is dated separately. Images are genuine engine or native-editor output. [Download sources, transforms and SHA-256 hashes](https://shadowfrag.com/media/development/manifest.json).

[Back to blog](https://shadowfrag.com/blog/)[Browse the glossary](https://shadowfrag.com/glossary/)

## Request an _invite code._

SHADOWFRAG is opening by invitation. Request a code and receive development updates. [Shadow Council](https://shadowfrag.com/glossary/#term-shadow-council) contributors receive priority when invitations begin.

Enable JavaScript to request an invite code and confirm your email address.

Email confirmation required. Codes will be issued later; a request does not guarantee access. Unsubscribe at any time. [Privacy](https://shadowfrag.com/privacy/)

Confirm your email to join the invitation list. Codes will be issued in a future round; a request does not guarantee access. Unsubscribe at any time.

Anyone can request a code. For [Shadow Council](https://shadowfrag.com/shadow-council/) priority, introduce yourself on Discord with your role, experience, region and time zone. Include examples of your maps or content if you have them.

[Join Discord](https://discord.gg/EHj7rZDNj)
