So, I had some code that is meant to weld an object to the player whenever they touch it, I tried to modify an older code so that it is easier to modify for each object I need to weld, but when I touch the object, it doesn't do anything.
Here is the code:
function WeldEnable (Prt0, Prt1, x, y, z) Prt1.CFrame = Prt0.CFrame * CFrame.new(x, y, z) weld = Instance.new("Weld") weld.Part0 = Prt0 weld.C0 = Prt0.CFrame:Inverse() weld.Part1 = Prt1 weld.C1 = Prt1.CFrame:Inverse() weld.Parent = Prt1 weld.Parent.Anchored = false end Target = workspace.CoolOlivie057 Targetpart = "LeftLowerLeg" script.Parent.Touched:Connect(function(hit) humanoid = hit.Parent:findFirstChild("Humanoid") if humanoid then if script.Parent:FindFirstChild("weld") == nil then WeldEnable(Target:FindFirstChild(Targetpart), script.Parent, 0, -0.0965, 0) end end end)
Here is the code before it was modified:
script.Parent.Touched:Connect(function(hit) humanoid = hit.Parent:findFirstChild("Humanoid") if humanoid then if script.Parent:FindFirstChild("weld") == nil then leftLowerLeg = hit.Parent.LeftLowerLeg script.Parent.CFrame = leftLowerLeg.CFrame * CFrame.new(0, -0.0965, 0) weld = Instance.new("Weld") weld.Part0 = leftLowerLeg weld.C0 = leftLowerLeg.CFrame:Inverse() weld.Part1 = script.Parent weld.C1 = script.Parent.CFrame:Inverse() weld.Parent = script.Parent weld.Parent.Anchored = false end end end)
BTW, the unmodified code works.
--you did not define Prt0 and Prt1 in the script -- for example l local Prt0 = script.Parent local Prt1 = Script.Parent.Parent --so you can't say weld.Part0 = Prt0