so i found some codes but realized that i didnt know how to make sdk files or find offsets looking through it these files that i need to change myself is what i need to start making a public external hack can someone explain a easy way to find offsets and making sdk

Code:
#include "Your_SDK.h"

Code:
void Caller()
{
    RPM(hProc, (LPCVOID) EngineOffset, &EngineAddy, 4, NULL); // You need to find UEngine offset for yourself, as soon as i'm interested with this game I'll be updating offset for it  
    RPM(hProc, (LPCVOID) (EngineAddy + 0x0350), &LocalPlayerPtrAddy, 4, NULL);
    RPM(hProc, (LPCVOID) LocalPlayerPtrAddy, &LocalPlayerAddy, 4, NULL);
    RPM(hProc, (LPCVOID) (LocalPlayerAddy + 0x0044), &pPCAddy, 4, NULL);
    RPM(hProc, (LPCVOID) (pPCAddy + 0x0250), &PawnAddy, 4, NULL); 
    RPM(hProc, (LPCVOID) (pPCAddy + 0x0BC8), &HoldableItemAddy, 4, NULL); // From here you should always check added offsets, cuz in some updates it may change
    RPM(hProc, (LPCVOID) (HoldableItemAddy + 0x027C), &CurrentItemAddy, 4, NULL);
    if(pPCAddy && PawnAddy)
    {
        RPM(hProcess, (LPCVOID) (PawnAddy + 0x0590), &MyPawn.m_DyingData.eDyingState, 1, NULL);
        if(ValidPlayer(MyPawn) 
        && MyPawn.m_VehicleUseData.m_nUseId /* if not driver in car, don't figured how to make driver ESP ;( 
        was trying only like 20 minutes or so but w/e :P */
        )  
        {
            RPM(hProc, (LPCVOID) (pPCAddy + 0x0340), &CameraAddy, 4, NULL);
            RPM(hProc, (LPCVOID) (PawnAddy + 0x00AC), &WorldInfoAddy, 4, NULL);
            RPM(hProc, (LPCVOID) (WorldInfoAddy + 0x0488), &PawnListAddy, 4, NULL);
            if(WorldInfoAddy && PawnListAddy)
            {
                TargetAddy = PawnListAddy;
                float BestDistance = SizeX/2;
                while(TargetAddy)
                {
                    RPM(hProc, (LPCVOID) (CameraAddy + 0x0100), &Loc, 12, NULL);
                    RPM(hProc, (LPCVOID) (CameraAddy + 0x010C), &Rot, 12, NULL);
                    RPM(hProc, (LPCVOID) (TargetAddy + 0x09B4), &Target.m_nControllerCharacterUID, 4, NULL);
                    RPM(hProc, (LPCVOID) (PawnAddy + 0x09B4), &MyPawn.m_nControllerCharacterUID, 4, NULL);
                    if(ValidTarget(MyPawn, Target))
                    {
                        RPM(hProc, (LPCVOID) (TargetAddy + 0x0100), &Target.Location, 12, NULL);
                        RPM(hProc, (LPCVOID) (TargetAddy + 0x0675), &Target.m_nHeatLevel, 1, NULL);
                        RPM(hProc, (LPCVOID) (PawnAddy + 0x0675), &MyPawn.m_nHeatLevel, 1, NULL);
                        RPM(hProc, (LPCVOID) (TargetAddy + 0x09DC), &Target.m_MissionSideInfo.m_nMissionUID, 4, NULL);
                        RPM(hProc, (LPCVOID) (PawnAddy + 0x09DC), &MyPawn.m_MissionSideInfo.m_nMissionUID, 4, NULL);
                        RPM(hProc, (LPCVOID) (TargetAddy + 0x066F), &Target.m_eFaction, 1, NULL);
                        RPM(hProc, (LPCVOID) (PawnAddy + 0x066F), &MyPawn.m_eFaction, 1, NULL);