I've recently been trying to make a rescripted version of Okeanskiy's head camera follow script, which instead of the head, moves the torso twoards the camera, it does not work and I have no idea why. help?

the remote event it fires is located in ReplicatedStorage and named "WTRE"

Local script:

local Ang = CFrame.Angles
local aSin = math.asin
local aTan = math.atan
local Cam = game.Workspace.CurrentCamera
local BodyHorFactor = 0.5
local BodyVertFactor = 0.4



local tweenService = game:GetService("TweenService")

local Camera = workspace.CurrentCamera
local Player = game.Players.LocalPlayer

local Character = Player.Character
local Root = Character:WaitForChild("HumanoidRootPart")
local Waist = Character:FindFirstChild("Waist", true)
local YOffset = Waist.C0.Y
local CamCF = Camera.CoordinateFrame
local WaistOrgnC0 = Waist.C0
local Torso = Character:WaitForChild("UpperTorso")

local CFNew, CFAng = CFrame.new, CFrame.Angles
local asin = math.asin

local Head = Character:WaitForChild("Head")
local Dist = (Head.CFrame.p-CamCF.p).magnitude
local Diff = Head.CFrame.Y-CamCF.Y

local TrsoLV = Torso.CFrame.lookVector
local HdPos = Head.CFrame.p


game:GetService("RunService").RenderStepped:Connect(function()
    local CameraDirection = Root.CFrame:toObjectSpace(Camera.CFrame).lookVector
    if Waist then
		if Character.Humanoid.RigType == Enum.HumanoidRigType.R15 then
			Waist.C0 = (WaistOrgnC0*Ang((aSin(Diff/Dist)*BodyVertFactor), -(((HdPos-CamCF.p).Unit):Cross(TrsoLV)).Y*BodyHorFactor, 0))
		end
		end
end)

game.ReplicatedStorage.WTRE.OnClientEvent:Connect(function(otherPlayer, neckCFrame)
	local Neck = otherPlayer.Character:FindFirstChild("Waist", true)
	
	if Waist then
		tweenService:Create(Waist, TweenInfo.new(.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 0, false, 0), {C0 = neckCFrame}):Play()
	end
end)

while wait(1) do
	game.ReplicatedStorage.WTRE:FireServer(Waist.C0)
end


Server script:

game.ReplicatedStorage.WTRE.OnServerEvent:Connect(function(player, neckCFrame)
	for key, value in pairs(game.Players:GetChildren()) do
		if value ~= player and (value.Character.UpperTorso.Position - player.Character.UpperTorso.Position).Magnitude < 100 then
			game.ReplicatedStorage.WTRE:FireClient(value, player, neckCFrame)
		end
	end
end)