- Status
- Offline
- Joined
- Mar 3, 2026
- Messages
- 805
- Reaction score
- 457
Messing around with the Sawaf base for MW2019 and hitting a wall with the aimbot logic. The aim is constantly flicking away or locking onto random axis coordinates (up/down) instead of staying glued to the target. On top of that, the client is dropping straight to desktop every time the local player dies—standard behavior for a pointer handling issue, but I haven't tracked down where it's desyncing.
Technical Breakdown
The internal bone fetching uses GetWorldBoneMatrix with a fail-safe cache (s_lastValidBonePos) to prevent flicking when the engine returns zeroed matrices. The aim angles are being written directly to ClActiveClient using the encrypted seed method.
Core Logic & Encryption
The source uses a specific XOR hook for the view angles. If the seed or the angle pointers are slightly off, the encryption will spit out garbage, causing the immediate flicking issues:
Risk of Paste Decay
The Sawaf base is heavily circulated and many of the characterInfo and centity_t structures might be misaligned in this specific build. The crash on death usually implies that resetAimbotValues or the target acquisition loop is trying to access a lockedTarget that has been cleaned up by the engine's entity manager without the cheat's pointer being nulled out correctly.
I'm suspecting the VirtualQuery check in resetAimbotValues isn't catching the state change fast enough when the engine wipes the entity list on respawn.
Has anyone found a more reliable way to validate the centity_t state during the transition between death and respawn in MW2019, or is the Sawaf base just too unstable for current builds?
Technical Breakdown
The internal bone fetching uses GetWorldBoneMatrix with a fail-safe cache (s_lastValidBonePos) to prevent flicking when the engine returns zeroed matrices. The aim angles are being written directly to ClActiveClient using the encrypted seed method.
Core Logic & Encryption
The source uses a specific XOR hook for the view angles. If the seed or the angle pointers are slightly off, the encryption will spit out garbage, causing the immediate flicking issues:
Code:
uint32_t seed = *(uint32_t*)(clClient + Memory::seed);
auto xorAngle = [&](uint64_t ptr, uint32_t val) -> uint32_t {
uint32_t k = seed ^ (uint32_t)ptr;
return ((k + 2) * k) ^ val;
};
Risk of Paste Decay
The Sawaf base is heavily circulated and many of the characterInfo and centity_t structures might be misaligned in this specific build. The crash on death usually implies that resetAimbotValues or the target acquisition loop is trying to access a lockedTarget that has been cleaned up by the engine's entity manager without the cheat's pointer being nulled out correctly.
- Checks for helmet/head bone IDs (j_helmet, j_head).
- Applies smoothing based on config::Aimbot::Aimbot_Smoothing.
- Verifies distance delta between raw bone and entity position to prevent unnatural snaps.
- Caches the last 3D vector if the pointer is temporarily invalid.
I'm suspecting the VirtualQuery check in resetAimbotValues isn't catching the state change fast enough when the engine wipes the entity list on respawn.
Has anyone found a more reliable way to validate the centity_t state during the transition between death and respawn in MW2019, or is the Sawaf base just too unstable for current builds?