SDKHooks is actually hooking the virtual function CBaseEntity::FireBullets(...) using an offset. I'm looking to detour CCSPlayer::FireBullet(...), which is not virtual. I think I may also be able to detour the static function FX_FireBullets(...) since it is the only function that references CCSPlayer::FireBullet(...), but I cannot get either method to work at this time. The FireBullet(...) detour will not work, and the FX_FireBullets(...) static call crashes the server (along with having no call still somehow calling the original function).