- Status
- Offline
- Joined
- Mar 3, 2026
- Messages
- 598
- Reaction score
- 7
Seen a lot of people lately trying to move away from internal pastes and into the world of external overlays. It makes sense—avoiding hooks in the game's own memory space is a solid first step toward staying under the radar of aggressive ACs like EAC or BattlEye. However, setting up a proper "blank canvas" that actually handles transparency and input correctly in DX11 isn't as trivial as just copy-pasting the ImGui demo code.
The External Dilemma
The common wall most beginners hit is getting the window to be invisible while still allowing the menu to be interactable. If you set WS_EX_TRANSPARENT, your clicks pass right through to the game desktop, which is what you want for an ESP overlay, but it kills your menu navigation.
Core Implementation Logic
When building an external, you're essentially creating a top-level Win32 window that sits over the game process. To get that clean look without the nasty window borders, you need to mess with SetWindowLong and layered window attributes.
Here is the boilerplate logic for the DX11 backend initialization:
Why Your Clicks Aren't Registering
If you are using WS_EX_TRANSPARENT, the OS will ignore your window for mouse events. To have a menu that actually works externally, you need to toggle these styles dynamically.
External cheats — not a silver bullet, but a great way to keep your main safe while you're still learning the ropes of RPM/WPM. If you're struggling with the viewmatrix or world-to-screen logic once the overlay is up, that's a whole different beast involving the game's internal structures.
Anyone got a cleaner way to handle the input toggle without the window stuttering during the style swap?
The External Dilemma
The common wall most beginners hit is getting the window to be invisible while still allowing the menu to be interactable. If you set WS_EX_TRANSPARENT, your clicks pass right through to the game desktop, which is what you want for an ESP overlay, but it kills your menu navigation.
Core Implementation Logic
When building an external, you're essentially creating a top-level Win32 window that sits over the game process. To get that clean look without the nasty window borders, you need to mess with SetWindowLong and layered window attributes.
Here is the boilerplate logic for the DX11 backend initialization:
Code:
#include "imgui.h"
#include "imgui_impl_win32.h"
#include "imgui_impl_dx11.h"
#include <d3d11.h>
// Basic Window Styles for External Overlays
// SetWindowLong(hwnd, GWL_EXSTYLE, WS_EX_LAYERED | WS_EX_TRANSPARENT);
// SetLayeredWindowAttributes(hwnd, RGB(0, 0, 0), 0, LWA_COLORKEY);
static ID3D11Device* g_pd3dDevice = nullptr;
static ID3D11DeviceContext* g_pd3dDeviceContext = nullptr;
static IDXGISwapChain* g_pSwapChain = nullptr;
static ID3D11RenderTargetView* g_mainRenderTargetView = nullptr;
Why Your Clicks Aren't Registering
If you are using WS_EX_TRANSPARENT, the OS will ignore your window for mouse events. To have a menu that actually works externally, you need to toggle these styles dynamically.
- When the menu is OPEN: Remove WS_EX_TRANSPARENT so ImGui can capture the mouse.
- When the menu is CLOSED: Re-add WS_EX_TRANSPARENT so your clicks go back into the game (e.g., for shooting/moving).
- Check io.WantCaptureMouse: This is the standard way to tell if the user is hovering over your UI elements before passing input.
Q: Why is my overlay flickering?
A: Ensure you're using DXGI_SWAP_EFFECT_DISCARD and not clearing with a solid color that has 1.0 alpha. Your clear color's alpha needs to be 0.0f for the transparency to work correctly with the layered window.
Q: Does this work for Fullscreen games?
A: No. External overlays typically require the game to be in Borderless or Windowed mode. For true Fullscreen, you'd need to look into hijacking the overlay of a trusted app (like Discord or Steam), which is a much deeper rabbit hole.
A: Ensure you're using DXGI_SWAP_EFFECT_DISCARD and not clearing with a solid color that has 1.0 alpha. Your clear color's alpha needs to be 0.0f for the transparency to work correctly with the layered window.
Q: Does this work for Fullscreen games?
A: No. External overlays typically require the game to be in Borderless or Windowed mode. For true Fullscreen, you'd need to look into hijacking the overlay of a trusted app (like Discord or Steam), which is a much deeper rabbit hole.
External cheats — not a silver bullet, but a great way to keep your main safe while you're still learning the ropes of RPM/WPM. If you're struggling with the viewmatrix or world-to-screen logic once the overlay is up, that's a whole different beast involving the game's internal structures.
Anyone got a cleaner way to handle the input toggle without the window stuttering during the style swap?