Well my question is why does my puppet change positions? I've had this for too long and I really need a anwser, everytime I pull the tool out it's good at the first time but like 2nd and 3rd time then it keeps changing positions like when I have it forward it stays like that when I deselect it and select it again then it has his body positioned to the sky or the ground. It's a glitch and I need it fixed, please I think it has something to do with the Welding and Arm Movement, I use stickmasterluke's weld script so I think it's old but I just need to fix this Weld Script:
function Weld(x,y)
local W = Instance.new("Weld")
W.Part0 = x
W.Part1 = y
local CJ = CFrame.new(x.Position)
local C0 = x.CFrame:inverse()*CJ
local C1 = y.CFrame:inverse()*CJ
W.C0 = C0
W.C1 = C1
W.Parent = x
end
function Get(A)
if A.className == "Part" then
Weld(script.Parent.Handle, A)
A.Anchored = false
else
local C = A:GetChildren()
for i=1, #C do
Get(C[i])
end
end
end
function Finale()
Get(script.Parent)
end
script.Parent.Equipped:connect(Finale)
script.Parent.Unequipped:connect(Finale)
Finale()
Arm Movement Script:
--Stickmasterluke
--just put this script under the tool and when weilded the left arm will go up aswell.
tool=script.Parent
while true do
if tool.Parent.Parent.Name=="Workspace" then
local la=tool.Parent:FindFirstChild("Left Arm")
local ra=tool.Parent:FindFirstChild("Left Arm")
local ts=tool.Parent:FindFirstChild("Torso")
if la~=nil and ts~=nil and ra~=nil then
local ls=ts:FindFirstChild("Left Shoulder")
local rs=ts:FindFirstChild("Right Shoulder")
if ls~=nil and rs~=nil then
ls.CurrentAngle=rs.CurrentAngle*-1
ls.MaxVelocity=0
end
end
end
wait(.01) --If arm looks glitchy, then make this number smaller. And avoid setting to 0(game will crash).
end
Thanks for reading and hopefully you can anwser my question
