Hey, so I have tried this solution. It worked, I mean almost.
game.Players.PlayerAdded:Connect(function(plr)
plr.CharacterAdded:Connect(function(char)
local uppertorso = char:WaitForChild("UpperTorso")
for i,v in pairs(plr.Backpack:GetChildren()) do
if v:IsA("Tool") then
for j,b in pairs(v:GetChildren()) do
if b:IsA("MeshPart") or b:IsA("Part") then
if b.Name == "Handle" then
local clonedB = b:Clone()
clonedB.Parent = uppertorso
local weld = Instance.new("Motor6D")
weld.Parent = uppertorso:FindFirstChild("Handle")
weld.Part0 = uppertorso
weld.Part1 = uppertorso:FindFirstChild("Handle")
weld.C0 = uppertorso.CFrame
local positionalOffset = CFrame.new(Vector3.new(uppertorso.Position.X,uppertorso.Position.Y,uppertorso.Position.Z+0.65)) -- in this case, it would be 5 units above the humanoidrootpart and 5 units in front of it too.
local OrientationalOffset = CFrame.Angles(math.rad(0),math.rad(180),math.rad(45))
weld.C1 = positionalOffset*OrientationalOffset
clonedB.CanCollide = true
end
end
end
end
end
end)
end)