C0 Acting Very Wierdly

  1. What do you want to achieve? Keep it simple and clear!
    Im Helping My Friend On A Game And Im Trying To Add Aiming To The Gun

  2. What is the issue?

  3. What solutions have you tried so far?
    I’ve Been Trying To Change Values

script.Parent.Equipped:Connect(function()
	script.Parent.LocalScript.Disabled = false
	xOffSet = script.Parent.Parent.Torso["Right Shoulder"].C0.X
	yOffSet = script.Parent.Parent.Torso["Right Shoulder"].C0.Y
	zOffSet = script.Parent.Parent.Torso["Right Shoulder"].C0.Z	
	torso = script.Parent.Parent.Torso["Right Shoulder"]
end)
script.Parent.Unequipped:Connect(function()
	script.Parent.LocalScript.Disabled = true
	torso.C0 = CFrame.new(xOffSet,yOffSet, zOffSet)* CFrame.Angles(0, 90, 0)
end)

script.Parent.Aim.OnServerEvent:Connect(function(player,x,y,z)
	local part = Instance.new("Part")
	part.CanTouch = false
	part.CanCollide = false
	part.Anchored = true
	part.Size = Vector3.new(0.25,0.25,0.25)
	part.Transparency = 1
	part.Position = Vector3.new(x,y,z)
	part.Parent = game.Workspace
	local dir = (part.Position - script.Parent.Parent.HumanoidRootPart.Position).Unit
	local dist = (part.Position - script.Parent.Parent.HumanoidRootPart.Position).Magnitude 
	local vecA = Vector2.new(script.Parent.Parent.HumanoidRootPart.CFrame.LookVector.X, script.Parent.Parent.HumanoidRootPart.CFrame.LookVector.Z)
local vecB = Vector2.new(dir.X, dir.Z)
local dotValue = vecA:Dot(vecB)
local crossValue = vecA:Cross(vecB)
	local ht = script.Parent.Parent.HumanoidRootPart.Position.Y - part.Position.Y
local upAngle = math.atan(ht/dist)

local angle = math.atan2(crossValue, dotValue)
part:Destroy()
	script.Parent.Parent.Torso["Right Shoulder"].C0 = CFrame.new(xOffSet,yOffSet, zOffSet)* CFrame.Angles(0, -angle+90, -upAngle)
		
	end)
1 Like