Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Welding module issue?

Asked by
Chronomad 180
8 years ago

I have this weld module that should , when triggered, descend through the children of the character, check if they are a part or union, then checking for the value "BodyPartType" In each part and if the value = "Core" Then weld the appropriate parts to the aforementioned body part. However, for some reason it only gets to the right elbow and stops.

Any help is appreciated.



function weld(p1,p2,c0) local w = Instance.new("Weld",p1) w.Part0 = p1 w.Part1 = p2 w.C0 = c0 or p1.CFrame:inverse() * p2.CFrame return w end function PerformWeld(player) local DataLoad = player.Character:WaitForChild("PlayerData") local PlayerAttire = DataLoad:FindFirstChild("AttireData") local WD = DataLoad.WeldingAids:FindFirstChild("WeldData") local Weldee = DataLoad.WeldingAids.Weldee local PE = player.Character:FindFirstChild("PlayerEquipment") local Outfit = game.ServerStorage:FindFirstChild(Weldee.Value):Clone() local char = player.Character or player.CharacterAdded:wait() local Garment = Outfit:WaitForChild(WD.Value.."Components") local CurrentSection = Garment:Clone() CurrentSection.Parent = char for _,v in pairs(CurrentSection:GetChildren()) do if v.ClassName == "Part" or v.ClassName == "UnionOperation" then v.Anchored = true end end CurrentSection.Parent = PE for _,v in pairs(CurrentSection:GetChildren()) do if v.ClassName == "Part" or v.ClassName == "UnionOperation" then if v ~= CurrentSection["ArmorCore"] then weld(v, CurrentSection["ArmorCore"]) end end end local CurrentSectionWeld = weld(CurrentSection["ArmorCore"], char[WD.Value], CFrame.new()) for _,v in pairs(CurrentSection:GetChildren()) do if v.ClassName == "Part" or v.ClassName == "UnionOperation" then v.Anchored = false v.CanCollide = false print ("Welded "..WD.Value) end end end local WeldModule = {} function WeldModule.CycleWeld(player) print("Module_Booted") local DataLoad = player.Character:WaitForChild("PlayerData") local WD = DataLoad.WeldingAids:FindFirstChild("WeldData") local C = player.Character --local children = C:GetChildren() print("Data_Established"..player.Name) for _,v in pairs(C:GetChildren()) do if v.ClassName == "Part" or v.ClassName == "UnionOperation" then if v:FindFirstChild("BodyPartType").Value == ("Core") then WD.Value = v.Name print("Weld_Booted") PerformWeld(player) print("Welded") wait(0.2) else print("nil") end end end end return WeldModule

Answer this question