How do I create an accurate knockback system?

Hi, thanks for taking time to read this, I am currently trying to make a knockback system, but as you can
see by the video, its not accurate whatsoever

local RS = game:GetService(“ReplicatedStorage”)
local events = RS:WaitForChild(“Events”)
local attackEvent = events:WaitForChild(“attak”)
local char = script.Parent
local hrp = char:FindFirstChild(“HumanoidRootPart”)
local deb = game:GetService(“Debris”)


local cf = char.PrimaryPart.CFrame
local lv = cf.lookVector

local Speed = 10
local Force = 80000

local TotalForce = Force

local KnockBack ="BodyVelocity")
KnockBack.Parent = hrp

KnockBack.MaxForce =,TotalForce,TotalForce)
KnockBack.Velocity = char:FindFirstChild("HumanoidRootPart").CFrame.LookVector * Speed
deb:AddItem(KnockBack, 0.1)