Explainer
Will a coding overlay get me banned?
It's the first question anyone asks about running a terminal over a game, and it deserves a straight answer: a plain always-on-top window does not trip anti-cheat, because it never touches the game. But "overlay" covers two very different technologies, and the difference is exactly what anti-cheat systems care about. Here's how it actually works.
What anti-cheat is looking for
Anti-cheat systems — Easy Anti-Cheat, BattlEye, VAC, Vanguard — exist to catch software that gains an unfair advantage by interacting with the game. In practice they watch for a handful of behaviors:
- Memory reading/writing — wallhacks and ESP read the game's process memory to find enemy positions.
- Code injection — loading a DLL into the game process to hook its renderer or logic.
- Input automation — aimbots and macros that synthesize mouse/keyboard input into the game.
- Kernel-level tampering — drivers that hide any of the above.
Notice what's not on the list: other windows being visible on your screen. Anti-cheat doesn't ban you for having Spotify open.
Two kinds of "overlay" — only one touches the game
Injection-based overlays draw inside the game's own frame. The Steam overlay and Discord's in-game overlay work this way: they load code into the game process and hook its graphics calls. It works even in exclusive fullscreen — but it's technically the same mechanism as a cheat, which is why anti-cheat vendors maintain whitelists for Steam and Discord, and why unknown injectors get flagged or blocked.
Always-on-top windows are the other kind, and they're boring in the best way. The window belongs to a completely separate process; the operating system's compositor stacks it above the game when it draws the screen. Nothing enters the game process. No memory is read, no code is injected, no input is synthesized. From the game's point of view, the overlay does not exist. It's the same OS feature as picture-in-picture video, a floating calculator, or your volume popup.
Where Backgrind sits
Backgrind is deliberately the second kind, as a hard design rule: no game memory reading, no render hooks, no input injection — ever. It's a normal translucent window with a terminal in it, running your agent in a separate process. That's not just caution; it's the product's whole philosophy. The agent works on your repo, you play the game, and the two never interact. (It's written into our FAQ and our architecture.)
The trade-off is honest and small: a plain window can't draw over exclusive fullscreen, so the game needs to run in borderless mode — identical picture, ten seconds in the video settings. We wrote a separate breakdown of borderless vs exclusive fullscreen if you want the details.
The honest caveats
Three things worth knowing, so this isn't a sales pitch:
- Each game's ToS is its own law. A handful of competitive titles and tournament clients restrict any third-party software during ranked play — not because a window is a cheat, but as blanket policy. If you're playing at that level, check the rules for your title.
- Aggressive kernel anti-cheat can be opinionated. Systems like Vanguard occasionally block screen-capture or unsigned software broadly. A plain window has nothing to block, but policies evolve — another reason we stay firmly in the "boring window" category.
- Streaming is different from cheating. An always-on-top window appears on your screen, so it will appear in screen captures too. If you stream, put the overlay on the part of the screen you crop, or hide it with the hotkey.
The bottom line
Bans come from software that reads, injects, or automates. A terminal floating over your game does none of those things — it's compositor stacking, the same mechanism your OS uses a hundred times a day. Switch the game to borderless, let the agent grind, and play. You can see the whole interaction in the live demo.