Open Docks → Stats and record a minute. Frames missed due to rendering lag rising means the GPU is starved. Skipped frames due to encoding lag rising means the encoder can't keep up. Both at zero while the video still stutters means the game stalled, and OBS faithfully recorded the stall as repeated frames.
The three numbers
| Stats dock line | What it means | Typical cause |
|---|---|---|
| Frames missed due to rendering lag | OBS couldn't compose a frame in time | The game is using all of the GPU |
| Skipped frames due to encoding lag | A frame was composed but the encoder dropped it | Encoder too slow for the resolution, frame rate or preset |
| Both near zero, video still choppy | OBS recorded every tick; the game didn't draw new frames | CPU-bound game stalls (late-round BTD6, big They Are Billions waves) |
The “dropped frames (network)” line only matters for streaming; it never affects a local recording.
Rendering lag: give OBS some GPU
- Cap the game's frame rate to your recording rate or a little above (60 for a 60 fps recording). An uncapped game takes every GPU cycle and leaves none for OBS to compose the scene.
- Run OBS as administrator on Windows. This lets OBS request higher GPU scheduling priority, which is the single most effective fix for rendering lag.
- Lower the canvas or output resolution, or remove heavy sources (browser sources, filters, high-res webcams) from the scene.
Encoding lag: lighten the encoder
- Use the hardware encoder (NVENC, AMD AMF/VCE, Apple VideoToolbox, Intel QuickSync) instead of x264. x264 runs on the same CPU the game needs.
- If you must use x264, pick a faster preset (veryfast or superfast) and record at a lower resolution or frame rate.
- Record to a fast local drive with free space. A full or slow disk can show up as encoding stalls.
Neither: the game itself stalled
This is the one that confuses people, because OBS reports a perfect recording. The recorder writes a frame on every tick of its clock. When the game hasn't finished drawing the next frame, the recorder writes the previous one again. The counters stay at zero, the timeline is perfectly even, and the picture freezes. Why recordings have duplicate frames explains it frame by frame.
You can't fix this in OBS settings; the game was genuinely not producing frames. Two options: reduce the game's load (for BTD6, see why BTD6 lags in late rounds), or remove the repeated frames afterwards. LagCut does the second for BTD6 and They Are Billions in the browser: it finds the repeated frames and pause menus and exports a clean MP4 at a steady pace. For other games, the ffmpeg mpdecimate guide does the same from the command line.
A one-minute check
- Reset the Stats dock and start recording during the laggiest part of the game.
- Record 60 seconds, then stop and note the two counters.
- Scrub the file frame by frame in a player. If the counters were near zero but the game clock or bloons don't move for several frames, it's a game stall.
Questions people ask
Why does OBS say 0 dropped frames but my recording is choppy?
Because the game didn't produce new frames. OBS wrote the last frame again on every tick, so nothing was dropped, but the picture froze. Remove the repeated frames afterwards (LagCut, or ffmpeg mpdecimate) or reduce the game's load.
What's the difference between rendering lag and encoding lag in OBS?
Rendering lag means OBS couldn't compose the frame in time, usually because the game is using the whole GPU. Encoding lag means the frame was composed but the encoder couldn't compress it fast enough.
Does running OBS as administrator help?
On Windows it often fixes rendering lag, because it lets OBS request higher GPU priority than the game.