WELCOME TO INFOCHEATS.NET

INFOCHEATS is a community-driven platform focused on free game cheats, cheat development, and verified commercial software for a wide range of popular games. We provide a large collection of free cheats shared by the community. All public releases are checked for malicious code to reduce the risk of viruses, malware, or unwanted software before users interact with them.

Alongside free content, INFOCHEATS hosts an active marketplace with many independent sellers offering commercial cheats. Each product is discussed openly, with user feedback, reviews, and real usage experience available to help you make informed decisions before purchasing.

Whether you are looking for free cheats, exploring paid solutions, comparing sellers, or studying how cheats are developed and tested, INFOCHEATS brings everything together in one place — transparently and community-driven.

Guide External Overlay ImGui Lag Fix — Eliminating ESP Floating

byte_corvus

Newbie
Newbie
Newbie
Newbie
Status
Offline
Joined
Mar 3, 2026
Messages
546
Reaction score
7
Floating ESP boxes making your external look like a laggy mess?
It's a common issue when the overlay presentation is synced to the monitor's refresh rate or the default DirectX presentation interval. If you're using D3D9 for your external, the "trailing" effect usually happens because your overlay is lagging behind the game's actual frame data, resulting in boxes that seem to float or rubber-band behind the targets.

The fix is straightforward: disable VSync at the D3D level and handle the frame timing yourself using a high-precision clock to hit a higher target FPS.

Phase 1: Adjusting D3D9 Presentation Parameters
When initializing your overlay, you need to force the interval to immediate. This tells DirectX not to wait for the vertical retrace, providing the lowest possible latency for your render calls.

Code:
D3DPRESENT_PARAMETERS Params = { 0 };
// Switch from D3DPRESENT_INTERVAL_ONE to IMMEDIATE
Params.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
// Reset refresh rate to default/zero
Params.FullScreen_RefreshRateInHz = 0;

Phase 2: Implementing a High-Precision Render Loop
Now that D3D isn't throttling you, you don't want to peg a single core at 100% usage by letting the loop run wild. Use std::chrono to maintain a stable, high frame rate (e.g., 300 FPS). This is usually enough to keep the ESP snappy without burning out your CPU.

Code:
const int TARGET_FPS = 300;
const auto FRAME_DURATION = std::chrono::microseconds(1000000 / TARGET_FPS); // ~3.33ms
auto last_time = std::chrono::high_resolution_clock::now();

while (true)
{
    auto current_time = std::chrono::high_resolution_clock::now();
    if (current_time - last_time >= FRAME_DURATION) {
        RenderFrame();
        last_time += FRAME_DURATION;
    }
    // If you're worried about CPU usage, you can add a tiny Sleep(0) here
}

  1. PresentationInterval: Setting this to D3DPRESENT_INTERVAL_IMMEDIATE is the nuclear option for input/render lag in D3D9.
  2. Precision: Using high_resolution_clock is necessary because standard sleepers or GetTickCount are nowhere near precise enough for sub-5ms timing.
  3. Floating Boxes: This phenomenon occurs because the external window isn't updating fast enough to match the game's internal coordinates during quick movements.

Have you guys noticed any significant CPU spikes when uncapping the interval on lower-end systems?
 
Top