Overview
Thecreate_move hook is called every time the game processes player input, allowing you to modify user commands before they’re sent to the server. This is one of the most important hooks for implementing features like aimbot, movement enhancements, and anti-aim.
This hook is called at virtual table index 22 of the
i_client_dll interface.Hook Signature
Parameters
Pointer to the client DLL interface instance
EDX register (fastcall convention) - not used
The command sequence number used to retrieve the user command
The time delta for this input sample
Whether the client is currently active
When It’s Called
This hook is invoked every frame when the game needs to process player input. It occurs before the command is sent to the server, giving you the opportunity to:- Modify view angles (aim)
- Change movement buttons and velocities
- Alter firing state
- Implement prediction
- Control packet sending behavior
Common Use Cases
Aimbot Implementation
The hook retrieves the user command and runs aimbot logic before finalizing the command:Movement Fixes
After modifying view angles, movement needs to be corrected to maintain intended direction:Prediction System
The hook runs prediction to accurately simulate player state:Implementation Details
The hook uses naked function assembly to preserve registers and properly handle thesend_packet boolean:
Source Files
- Header:
globals/hooks/create_move/create_move.h:18-31 - Implementation:
globals/hooks/create_move/create_move.cpp:15-64
Initialization
See Also
- Frame Stage Notify - For handling different game frame stages
- Paint Traverse - For rendering overlays