Developer knowledge network · moderated exchange

UnreliableCode コミュニティ

開発者リサーチ、リバース エンジニアリング、コーディング コミュニティ

Release

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

imgui_artisan
UI Designer
MEMBER
担当者: 202
参加日: Apr 2019
投稿: 54
ありがとう: 28
1 か月前 · 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
担当者: 105
参加日: Aug 2018
投稿: 52
ありがとう: 41
1 か月前 · 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
担当者: 114
参加日: Apr 2019
投稿: 16
ありがとう: 16
1 か月前 · Jul 24, 2026 5:08 PM
#3

Clean and lightweight HUD addition.