c8003301bc
The bots acknowledge chunk batches with ChunkBatchSizeCalculator's desired chunks per tick, from how long each batch takes to arrive, instead of a fixed 25. A bot moves only while it holds the chunk it stands in, as vanilla's client stops ticking its player in a chunk it hasn't received, so no bot outruns a server's chunk sending. Each bot keeps the chunks it holds, so the report separates chunks that entered its view from chunks sent again while it still held them, and counts the moves the server refused and the ticks it waited for its chunk. server_bench.py runs one pass per behaviour (walk, explore), spawns every bot on the world spawn itself (respawn_radius 0) so both servers see the same paths, can run the bots on another machine (--bots-via, --bots-bin, --connect) and the servers under nice, and reports new, dropped and re-sent chunks per second, pull-backs and the server's "moved too quickly" lines. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>