Developer knowledge network ยท moderated exchange

Onbetrouwbare Code-gemeenschap

Ontwikkelaarsonderzoek, reverse engineering en coderingsgemeenschap

Knowledge indexLive
4Categories
919Threads
2.8KBerichten
Release

Dynamic Recoil Crosshair in ImGui (Standalone cl_crosshair_recoil emulation) [v2.4 Technical Discussion]

imgui_artisan
UI Designer
MEMBER
Vertegenwoordiger: 202
Datum van deelname: Apr 2019
Berichten: 54
Bedankt: 28
1 maanden geleden ยท Jul 23, 2026 9:47 PM
#1

How to calculate recoil crosshair offset on screen without modifying client convars:

CPP
void DrawRecoilCrosshair(C_CSPlayerPawn* pLocal, Vector2 screenCenter) {
    Vector2 punch = { pLocal->m_aimPunchAngle().x, pLocal->m_aimPunchAngle().y };
    float fov = 90.0f; // Local FOV
    
    // Screen pixels per angle degree
    float pixelsPerDegree = (float)screenHeight / fov;
    
    float dx = -punch.y * pixelsPerDegree * 2.0f;
    float dy = punch.x * pixelsPerDegree * 2.0f;
    
    ImVec2 crosshairPos(screenCenter.x + dx, screenCenter.y + dy);
    ImGui::GetBackgroundDrawList()->AddCircleFilled(crosshairPos, 2.5f, IM_COL32(0, 255, 255, 220));
}
matrix_math_guy
Math Specialist
MEMBER
Vertegenwoordiger: 105
Datum van deelname: Aug 2018
Berichten: 52
Bedankt: 41
1 maanden geleden ยท Jul 24, 2026 1:25 AM
#2

Multiplying by 2.0f accounts for the WeaponRecoilScale factor in Source engine. Exact pixel accuracy.

csgo_offset_hound
Offset Master
MEMBER
Vertegenwoordiger: 114
Datum van deelname: Apr 2019
Berichten: 16
Bedankt: 16
1 maanden geleden ยท Jul 24, 2026 5:08 PM
#3

Clean and lightweight HUD addition.