Making a basic gravity system like egomoose's

I don’t need the camera to be the same but it would be nice, where should i start if i want to make a very very basic gravity system? i already have:

local plr = game.Players.LocalPlayer
local char = plr.Character or plr.CharacterAdded:Wait()
local hum = char:WaitForChild("Humanoid")
local hrp = char:WaitForChild("HumanoidRootPart")

local dir = Vector3.new(0, -1, 0)

local normal = Vector3.new(0,1,0)

local force = Instance.new("VectorForce",hrp)

game["Run Service"].RenderStepped:Connect(function()
	local rayParams = RaycastParams.new()
	rayParams.FilterType = Enum.RaycastFilterType.Whitelist
	rayParams.FilterDescendantsInstances = {workspace.wallrun}
	if hum:GetState() == Enum.HumanoidStateType.Running then
		if hum.WalkSpeed >= 75 then
			local checkForWallrun = workspace:Raycast(hrp.CFrame.Position,hrp.CFrame.Position * dir,rayParams)
			if checkForWallrun then
				
				local partnormal = checkForWallrun.Normal
				
				force.ApplyAtCenterOfMass = true
				force.Attachment0 = hrp.RootAttachment
				
				force.Force = Vector3.new(partnormal.X * 500,-workspace.Gravity*hrp.AssemblyMass, partnormal.Z * 500)
				print(force.Force)
			end
		end
	end
end)