Source: https://shadowfrag.com/blog/capacity-beyond-64/

# 64 players, and what happened at 128

By the SHADOWFRAG developer · Technology · Oct 27, 2026 · 4 min read

Three clean runs confirmed a 128-client [Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands) research workload. Dense fights and higher counts exposed different limits, so the game remains capped at 64 players including [bots](https://shadowfrag.com/glossary/#term-bot).

[Rivergate settlement beneath the mountains in Shogun Highlands.](https://ds9.dynostatic.com/media.php?id=01M5TFSPM9KJWX3NTSMEVVDE8F&revision=1)

Rivergate [settlement](https://shadowfrag.com/glossary/#term-settlement) beneath the mountains in [Shogun Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands). Engine capture: 2026-10-25.

The capacity study ended with two workloads that met the declared checks in three clean runs: a dense 64-client fight and a more spread-out 128-client fight on [Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands). **The game's configured limit remains 64 players, including [bots](https://shadowfrag.com/glossary/#term-bot).**

The larger result belongs to a particular research workload. [Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands) spreads players and [projectiles](https://shadowfrag.com/glossary/#term-projectile) differently from Ironworks. Passing a [Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands) [free-for-all](https://shadowfrag.com/glossary/#term-free-for-all) does not establish a 128-player [Shogun](https://shadowfrag.com/glossary/#term-shogun) match with full [bot AI](https://shadowfrag.com/glossary/#term-bot), a crowded Ironworks fight or Internet performance.

## What the test clients actually did

A Windows machine with an **i5-12500H** ran the [dedicated server](https://shadowfrag.com/glossary/#term-client-server). A separate Linux machine with a **Ryzen 7 5800H** generated real [protocol clients](https://shadowfrag.com/glossary/#term-synthetic-protocol-client) over wired gigabit Ethernet. These automated clients exercised movement, weapons and networking. They did not each render a game window, mix audio or run a full server [bot](https://shadowfrag.com/glossary/#term-bot) brain.

Before confirming a workload, I set limits for the time spent on each server simulation tick, the age of received positions, [action feedback](https://shadowfrag.com/glossary/#term-weapon-request-feedback) and the generator's [input schedule](https://shadowfrag.com/glossary/#term-input-epoch). A recommendation needed **three clean runs, including a five-minute active run**, with no invalid client records or [input-buffer handoffs](https://shadowfrag.com/glossary/#term-input-buffer-handoff). A handoff is a recovery change to the timing agreement that places client commands on the server's simulation schedule; the direct-LAN screen required that agreement to continue without one. Runs affected by unrelated machine activity stayed in the report with that [qualification](https://shadowfrag.com/glossary/#term-qualification).

## The two workloads that passed

Ironworks with **64 star users** passed all three confirmations. [Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands) with **128 clients** in mixed weapon groups, with net, shadow and chi enabled, also passed three, including its long run.

Across the [Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands) confirmations, worst-client **[position-age](https://shadowfrag.com/glossary/#term-position-age) [p99](https://shadowfrag.com/glossary/#term-p99) ranged from 17.66 to 25.47 ms**. This measures how old received positions were at the [99th percentile](https://shadowfrag.com/glossary/#term-p99). Worst-client **[weapon-request feedback](https://shadowfrag.com/glossary/#term-weapon-request-feedback) [p99](https://shadowfrag.com/glossary/#term-p99) ranged from 21.68 to 28.67 ms**, measuring the wait for a result to the request.

Each client has its own [p99](https://shadowfrag.com/glossary/#term-p99)—the value within which 99% of its samples fall—and the report takes the worst client's value. The results are not one pooled percentile across all clients, and [weapon-request feedback](https://shadowfrag.com/glossary/#term-weapon-request-feedback) does not include the time a [projectile](https://shadowfrag.com/glossary/#term-projectile) takes to fly to its target. The slowest 1% of samples can exceed [p99](https://shadowfrag.com/glossary/#term-p99).

The long [Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands) run still recorded **614 [late input](https://shadowfrag.com/glossary/#term-input-deadline) commands and 13 [late actions](https://shadowfrag.com/glossary/#term-input-deadline)**. It passed the declared numerical screen, but that did not make every event timely. Those counts remain part of the result.

## Why the other runs did not raise the limit

At **160 clients on [Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands)**, two clean runs passed, but another needed **two [input-buffer handoffs](https://shadowfrag.com/glossary/#term-input-buffer-handoff)**. That broke the predeclared zero-handoff rule. A clean repeat of the dense workload at **80 clients** also needed two handoffs. Other attempts overlapped unrelated automated tests and could not count as clean confirmations.

Doubling the [per-client bandwidth](https://shadowfrag.com/glossary/#term-bandwidth) allowance did not establish a reliable **128-client dense fight**. One [seed](https://shadowfrag.com/glossary/#term-seed) missed the [action-feedback](https://shadowfrag.com/glossary/#term-weapon-request-feedback) and [position-age](https://shadowfrag.com/glossary/#term-position-age) limits; the sustained run missed the generator's command interval and needed handoffs. At **192 clients**, connections and traffic worked, but the generator could not maintain its [input schedule](https://shadowfrag.com/glossary/#term-input-epoch). That left the result unqualified; it did not establish the server's absolute ceiling.

I also tested delay, [packet loss](https://shadowfrag.com/glossary/#term-packet-loss) and variation in arrival timing, or [jitter](https://shadowfrag.com/glossary/#term-jitter), separately at **64 clients**. All affected delivery, and the combined [jitter](https://shadowfrag.com/glossary/#term-jitter)\-and-loss case was substantially worse than the direct local-network case. Those encounters remain on the [netcode page](https://shadowfrag.com/netcode/#capacity), alongside both successful and failed capacity attempts.

## Measuring equipment in its encounter

The feature study contains **sixteen matched [active/unused pairs](https://shadowfrag.com/glossary/#term-paired-comparison)**, covering **eight weapons and abilities** on Ironworks and [Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands). Each pair used **64 clients and one [random seed](https://shadowfrag.com/glossary/#term-seed)**, comparing a feature in use with its matched unused case.

Grenades added about **9.78 [megabits per second](https://shadowfrag.com/glossary/#term-data-rate-units) of server upload on Ironworks** and **18.18 [megabits per second](https://shadowfrag.com/glossary/#term-data-rate-units) on [Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands)**, relative to those unused cases. These are aggregate server rates, not a rate for each player. Respawns and replenished ammunition allowed different numbers of throws, so the difference cannot be converted into a fixed price per grenade user.

Adding isolated measurements together would have the same problem. A fast renderer, a quick simulation and a timely network test do not jointly certify a match they never ran together. Full [Shogun](https://shadowfrag.com/glossary/#term-shogun) AI, integrated game clients, more hardware and broader Internet conditions still need their own [qualification](https://shadowfrag.com/glossary/#term-qualification).

The boundary from this study is specific: **64 remains the general reference; 128 is confirmed only for the declared, spread-out [Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands) [free-for-all](https://shadowfrag.com/glossary/#term-free-for-all) research workload on the local network.** [Inspect the measurements](https://shadowfrag.com/netcode/#capacity) or [download their public summary](https://shadowfrag.com/evidence/current-netcode.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)
