Tools Falling Issue

The original issue was that you were not welding the parts together, however EquipTool automatically does this
Your tool formatting looks perfectly fine, and the solution should be no more complicated than simply using EquipTool in a serverscript whereever you are cloning the tool and giving it to the player

Where do I put the script though?

Wherever this original script is

Did you weld the tool to its handle

Yes, all the unions, everything.

Won’t work, where it says ‘local tool = workspace:FindFirstChild(“Tool”)’ does the tool need to be in the workspace?

That may be true, but that isn’t the current solution he needs, because that will just connect the weld of the tool to his character rig… meanwhile his tool will continue to fall apart because he doesn’t have the parts within the tool that arent the handle welded to the handle

So what your saying is that the tool no longer falls apart? if it still falls it means you haven’t welded(all the parts that aren’t handle to the handle) correctly,

@Extrenious I added a weldconstraint to the unions and connected them to the handle, or should I do a normal weld?

I believe that would solve your problem? have you done it already.

The tools still fall apart, it’s weird really. If you’re free could you maybe come check it out? I’m quite stuck and this is vital to my game.

Yep, did it and it still falls apart.

Could you provide a gif so that we can better assist you?

Yes! I can do that, let me record a gif now.

https://gyazo.com/41771b0ca6464cdfe2f275e161e7effb I was limited to a 7 second gif, but the tool falls behind the counter I was trying to show at the end.

You need two scripts

  1. A welding script inside of the tool, consisting of the following:
local p = script.Parent
local h = p:WaitForChild("Handle")
for i,v in next, p:GetChildren() do
    if v:IsA("BasePart") then
        local w = Instance.new("Weld")
        w.Part0 = h
        w.Part1 = v
        w.C0 = h.CFrame:Inverse()*v.CFrame
        w.Parent = h
    end
end
h.Anchored = false
script:Destroy()
  1. A script anywhere in the server that you need it which will firstly create, then parent, then equip the tool, using something along the lines of:
local tool = replicatedStorage.tool:Clone()
tool.Parent = plr.Backpack

hum:EquipTool(tool)

Where do I put the second script? I know you said anywhere in the server, wasn’t sure if that mean put the second script anywhere orr

Wherever you want to clone and equip the tool
It could be chatservice for all it matters
I dont know what youre trying to accomplish so youd either have to specify that or just decide on your own where youd want it, which could basically be anywhere

Problem solved! Nothing in the replies worked, but thanks for the help. Found a script that worked.

Next time I recommend learning how to use welds or even getting plugins that will set it up automatically because the problem wasn’t scripting-related

even though you could use a script to make the welds for you it would of been easier just to set the welds up without needing to paste scripts into each tool

here’s a plugin I use to make welds all you would need to do is select parts you want to weld and select new weld
https://www.roblox.com/library/804263305/Constraint-Editor