Dedicated server benchmark · 20 August 2026

Net Butter Sync

Replicated state instead of per-tick RPCs. Measured on a two-core dedicated server at roughly 120 NPCs, against the per-frame RPC approach it replaces.

Cost per NPC
−38%0.0618 → 0.0385 ms
Frame time p99
−36%12.54 → 7.98 ms
Worst frame
−69%33.80 → 10.38 ms
Frames missing 30 Hz
−70%2.3% → 0.7%

Server cost per NPC

Game-thread milliseconds attributable to one NPC, derived from the empty-world baseline and a population of roughly 120.
Per-frame RPC sync Net Butter Sync
0 0.02 0.04 0.06 ms RPC sync 0.0618 Butter Sync 0.0385

Game-thread frame time

The typical frame improved. The frames players actually notice — the slowest one percent, and the single worst — improved far more.
Per-frame RPC sync Net Butter Sync
0 10 20 30 ms 33.3 ms budget Mean 7.86 5.32 p99 12.54 7.98 Worst frame 33.80 10.38
All measurements
Measure Per-frame RPC sync Net Butter Sync Change
Cost per NPC0.0618 ms0.0385 ms−38%
Game thread, mean7.86 ms5.32 ms−32%
Game thread, p9912.54 ms7.98 ms−36%
Worst frame33.80 ms10.38 ms−69%
Frames missing 30 Hz2.3%0.7%−70%
Stalls > 15 ms per 3,900230eliminated

Test conditions. Unreal Engine 5.8 dedicated server, Linux container limited to --cpus=2 --memory=8g, 30 Hz server tick. Roughly 120 server-authoritative NPCs, zero players connected. 93 seconds of steady state after a 40 second warm-up, three runs per configuration.

Noise floor. Repeating one configuration three times gives ±4% on the mean and ±3% on p99. Every difference shown here is well outside that.

Not measured here. Bandwidth. With no clients connected nothing is sent, so the per-client byte cost — where replicated state gains most over multicast RPCs — is not represented in these figures.

← Evil Software