I need some help understanding why my weld script is acting a bit odd. I've created 9 backpacks for my upcoming game. In each backpack is an invisible part named WeldPart. I duplicate the exact same part into each backpack and build the pack around it as a model. Out of the 9 packs, 7 weld exactly as they should. Pack #6, however, welds to the bottom of the model instead of the front, and pack #9 welds to the side. Here are pictures showing what I mean...
All backpacks are welded to the player character through this script...
function weldToHuman(a,b) -- put person.torso as a and put object as b b.CFrame =a.CFrame * CFrame.new(0,0,1.5) local weld = Instance.new("Weld") weld.Part0 = a; weld.C0 = a.CFrame:inverse() weld.Part1 = b; weld.C1 = b.CFrame:inverse() weld.Parent = a; return weld; end game.Players.PlayerAdded:connect(function(player) print(player.Name .. " Welcome"); player.CharacterAdded:connect(function(character) print(character.Name .. " character") wait(6);-- waiting until character loads as you become a player before a character local conName = player.container:WaitForChild("ConName") local pTorso = character:FindFirstChild("UpperTorso") or character:FindFirstChild("Torso") print(conName.Value) local pcontainer = game:GetService("ServerStorage"):FindFirstChild(conName.Value):Clone() pcontainer.Parent = character pcontainer.Name = "Container" local weldcontainer = pcontainer:FindFirstChild("WeldPart") weldToHuman(pTorso,weldcontainer) end) end)