I am gonna share some useful patterns, all are updated. Code: EndSceneEngine = FindPattern2(CF, 0xFFFFFF,(PBYTE)"\x8B\x08\x8B\x91\x00\x00\x00\x00\x50\xFF\xD2\x85\xC0\x8D\x4C\x24\x00\x0F\x94\xC3\xE8\x00\x00\x00\x00\x8A\xC3\x8B", "0000????00000000?0000????000"); MidFuncEngine = FindPattern2(CF, 0xFFFFFF,(PBYTE)"\x8B\x08\x8B\x91\x00\x00\x00\x00\x57\x6A\x00\x53\x6A\x00\x6A\x00\x6A\x00\x50\xFF\xD2\x5F\x5E\x5D\x5B\xC2\x00\x00", "0000????00?00?0?0?00000000??"); aIntersectSegment = FindPattern2(CF, 0xFFFFFF, (PBYTE)"\x5D\xC3\xCC\x55\x8B\xEC\x8B\x45\x0C\x50\x8B\x4D\x08\x51\x8B\x15\x00\x00\x00\x00","0000000000000000????"); aIntersectSegment = (aIntersectSegment + 0x3); MoveSpeedPenalty = FindPattern2(CShell,0xFFFFFF,(PBYTE)"\xD9\x9A\x00\x00\x00\x00\x55\xE8\x00\x00\x00\x00\x83\xC4\x08\x85\xC0","00????00????00000"); MoveSpeedPenalty = *(DWORD*)(MoveSpeedPenalty + 0x2); Bypass28_3 = FindPattern2(CShell,0xFFFFFF, (PBYTE)"\x8B\x44\x24\x04\x81\xEC\x00\x00\x00\x00\x83\xF8\xFF\x0F\x84\x00\x00\x00\x00\x56\x50\xE8\x00\x00\x00\x00", "000000????00000????000????"); Bypass28_3 = (Bypass28_3 + 0x15); weaponMgr = FindPattern2(CShell, 0xFFFFFF, (PBYTE)"\x8B\x0D\x00\x00\x00\x00\x8B\x04\xB1\xD9\xE8", "00????00000"); weaponMgr = *(DWORD*)(weaponMgr + 0x2); AmmoDamage = FindPattern2(CShell, 0xFFFFFF,(PBYTE)"\xD9\x5C\x24\x18\xD9\x44\x24\x18\x8B\x06\xD9\x98", "000000000000"); AmmoDamage = *(DWORD*)(AmmoDamage + 12); VisibleZoneIndex = FindPattern2(CShell, 0xFFFFFF, (PBYTE)"\x56\x69\x73\x69\x62\x6C\x65\x5A\x6F\x6E\x65\x49\x6E\x64\x65\x78","0000000000000000"); DamageZone = FindPattern2(CShell, 0xFFFFFF, (PBYTE)"\x44\x61\x6D\x61\x67\x65\x5A\x6F\x6E\x65","0000000000"); DamagePerSec = FindPattern2(CShell, 0xFFFFFF, (PBYTE)"\x44\x61\x6D\x61\x67\x65\x50\x65\x72\x53\x65\x63","000000000000"); PlayerMgr = FindPattern2(CShell, 0xFFFFFF, (PBYTE)"\x8B\x0D\x00\x00\x00\x00\x83\xC4\x04\x69\xC0\x00\x00\x00\x00","00????00000????"); PlayerMgr = *(DWORD*)(PlayerMgr + 0x2); WallArray = FindPattern2(0x400000, 0xFFFFFF,(PBYTE)"\x75\x00\x83\x0D\x00\x00\x00\x00\x01\xB8\x00\x00\x00\x00\xE8","0?00????00????0"); WallArray = *(DWORD*)(WallArray + 0xA); aLTClientShell = FindPattern2(CShell, 0xFFFFFF, (PBYTE)"\x8B\x0D\x00\x00\x00\x00\x50\x8D\x44\x24\x10\x50\x81\xC1\x00\x00\x00\x00","00????00000000????"); aLTClientShell = *(DWORD*)(aLTClientShell + 0x2); dwCPlayerStart = FindPattern2(CShell,0xFFFFFF,(PBYTE)"\x0F\xB6\x8E\x00\x00\x00\x00\x69\xC9\x00\x00\x00\x00\x8A\x84\x31\x00\x00\x00\x00\x5E\xC3","000????00????000????00"); dwCPlayerStart = *(DWORD*)(dwCPlayerStart + 0x3); MEOffset = FindPattern2(CShell,0xFFFFFF,(PBYTE)"\x8A\x84\x31\x00\x00\x00\x00\x5E\xC3","000????00"); MEOffset = *(DWORD*)(MEOffset + 0x3); dwCPlayerSize = FindPattern2(CShell,0xFFFFFF,(PBYTE)"\x69\xC9\x00\x00\x00\x00\x8A\x84\x31\x00\x00\x00\x00\x5E\xC3","00????000????00"); dwCPlayerSize = *(DWORD*)(dwCPlayerSize + 0x2); aLTModel = FindPattern2(CShell, 0xFFFFFF, (PBYTE)"\x8B\x0D\x00\x00\x00\x00\x8B\x44\x24\x0C\x8B\x11","00????000000"); aLTModel = *(DWORD*)(aLTModel + 0x2); aCLTPlayerClient = FindPattern2(CShell, 0xFFFFFF, (PBYTE)"\xB9\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x68\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x59\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x6A\x04\x68\x00\x00\x00\x00","0????0????0????0????000000000000000????"); aCLTPlayerClient = *(DWORD*)(aCLTPlayerClient + 0x1); DWORD oCLTPlayerClient = FindPattern2(CShell,0xFFFFFF ,(PBYTE)"\x39\x53\x00\x74\x00\x8B\x4B\x00\x8B\x01\x8B\x90\x00\x00\x00\x00\xFF\xD2", "00?0?00?0000????00"); if (oCLTPlayerClient) { GetBytes(oCLTPlayerClient + 0x2); CLTPlayerClientOffset = StoredBytes[0]; } else { oCLTPlayerClient = FindPattern2(CShell, 0xFFFFFF,(PBYTE)"\x39\x55\x00\x74\x00\x8B\x4D\x00\x8B\x01\x8B\x90\x00\x00\x00\x00\xFF\xD2", "00?0?00?0000????00"); GetBytes(oCLTPlayerClient + 0x2); CLTPlayerClientOffset = StoredBytes[0]; } aILTClient = FindPattern2(CShell, 0xFFFFFF,(PBYTE)"\x8B\x0D\x00\x00\x00\x00\x8B\x11\x8B\x82\x00\x00\x00\x00", "00????0000????"); if (aILTClient) aILTClient = *(DWORD*) (aILTClient + 0x2); PTCOffset = FindPattern2(CShell, 0xFFFFFF,(PBYTE)"\x8B\x88\x00\x00\x00\x00\x68\x00\x00\x00\x00\xFF\xD1\x8B\x0D\x00\x00\x00\x00\x8B\x11\x8B\x82\x00\x00\x00\x00", "00????0????0000????0000????"); if (PTCOffset) PTCOffset = *(DWORD*) (PTCOffset + 0x2); BagMgr = FindPattern2(CShell, 0xFFFFFF, (PBYTE)"\x89\x3D\x00\x00\x00\x00\x68\x00\x00\x00\x00", "00????0????"); if (BagMgr) BagMgr = *(DWORD*) (BagMgr + 0x2); WallPointer = FindPattern2(CShell, 0xFFFFFF,(PBYTE)"\x8B\x15\x00\x00\x00\x00\x83\xC4\x04\x89\x84\x16\x00\x00\x00\x00", "00????000000????"); WallPointer = *(DWORD*) (WallPointer + 0x2); Offset_Yaw = FindPattern2(CShell, 0xFFFFFF,(PBYTE)"\xD9\x81\x00\x00\x00\x00\xD9\x58\x04\xD9\x81\x00\x00\x00\x00\xD9\x58\x08\xC2\x04\x00", "00????00000????000000"); Offset_Yaw = *(DWORD*) (Offset_Yaw + 2); Offset_Pitch = FindPattern2(CShell, 0xFFFFFF,(PBYTE)"\xD9\x81\x00\x00\x00\x00\xD9\x18\xD9\x81\x00\x00\x00\x00\xD9\x58\x04\xD9\x81\x00\x00\x00\x00\xD9\x58\x08\xC2\x04\x00", "00????0000????00000????000000"); Offset_Pitch = *(DWORD*) (Offset_Pitch + 2); DamagePerMeter = FindPattern2(CShell,0xFFFFFF,(PBYTE)"\xA1\x00\x00\x00\x00\xD9\x58\x00\x83\xC4\x00","0????00?00?"); DamagePerMeter = *(DWORD*)(DamagePerMeter + 0x1); ModelNode = FindPattern2(CShell,0xFFFFFF,(PBYTE)"\x8B\x15\x00\x00\x00\x00\x83\xC4\x20\x33\xED\x33\xFF\x8B\x4C\x24\x30\x3B\xCB","00????0000000000000"); ModelNode = *(DWORD*)(ModelNode + 0x2); CharacterMgr = FindPattern2(CShell, 0xFFFFFF, (PBYTE)"\x8B\x51\x04\x0F\xBE\xC3\x69\xC0\x00\x00\x00\x00\x03\x05\x00\x00\x00\x00\x8A\x0A\x88\x08\x83\xC2\x01", "00000000????00????0000000"); CharacterMgr = *(DWORD*)(CharacterMgr + 14); CharacterViewMgr = FindPattern2(CShell, 0xFFFFFF, (PBYTE)"\x69\xD2\x00\x00\x00\x00\x8B\x41\x04\x8B\x48\x04\xA1\x00\x00\x00\x00", "00????0000000????"); CharacterViewMgr_Size = *(DWORD*)(CharacterViewMgr + 2); CharacterViewMgr = *(DWORD*)(CharacterViewMgr + 13); Good Luck!