| Gating on fps or Studio memory | Numbers that phones never show | Frame-time p95 and worst; the P9 phone list |
| Comparing ms per second after a fix | Per-frame work looks worse once fps rises | Compare ms per frame |
Gating on Stats.HeartbeatTime, Client DataReceiveKbps or FrameTime in Studio | Swings of 8 to 100 ms; 0 KB/s; 323 ms frames | Heartbeat dt, Server DataSendKbps, physics counts, Script Profiler |
| Two changes in one playtest | No change can be credited | One attribute per run |
| Windows taken at different times | Leaks make later runs heavier | Wait for the same server time() |
| Anchoring but still moving parts on the server | MB/s of replication | Move cosmetics on clients |
Destroy without releasing outside connections | Unparented parts and table entries climb | Disconnect in Destroying:Once |
Reading gcinfo() from execute_luau | About 0.9 MB: the injected chunk's heap | HeapProf memory categories |
| Server tweens or resizing welded parts | Replication spikes | Client-side tweens and resizes |
| Tags or attributes on every part | Memory and crash rate rise | Server data in Luau tables |
| Reading render stats from a covered Studio window | Counters frozen at one value | Put parts in view and check the counters move first |
Grid cells keyed by Vector2 | Every lookup misses | Vector3 or number keys |
| Publishing to test a fix | Players get an unproven build | Owner publishes; Version History restore, publish, restart |