Why isn't this working?

This is not present because again, enabling use handle would break animations.

Not solved. Here’s the tool properties:

You may have better luck with creating your own custom tool instead of using the Roblox tool instance

How exactly would this be done? I think there is a much better idea, this would not only put me under too much pressure, use CoreGuis in some method, it’s a waste of time and effort. I think that it’s impossible to do that, anyways.

Well, it’s not exactly impossible and I believe there are some custom tool modulescripts floating around too, but yes, on second thought, perhaps that is too much to deal with.

The only thing else I can think of is to either:
A.) Create an invisible handle and WeldConstraint your real tool to the handle (make sure to set CFrame to the handle’s)
B.) Do the same thing as above but without a handle

Not sure what you mean. Animations need M6D or it doesn’t work. This is the tutorial that kind of explains it:
Tutorial - Animate tools

No, no, you misunderstood. You would still have the Motor6Ds of the tool, you only need to weld one part of the tool to the invisible handle. You don’t have to replace any Motor6Ds

Can you help? I don’t understand. I think you can’t use a handle, anyways.

Okay, here, I will make some pseudocode of a localscript (may not work fully, but should help give an idea):

local Player = game:GetService("Players").LocalPlayer
local CharacterAdded = Player.Character or Player.CharacterAdded:Wait()
local Character = Player.Character

--Get the tool and then get the model of your tool you are using.
--If you do not have your tool part(s) wrapped in a model, it's a good idea to do so. Make sure to set the Model.PrimaryPart to a part that stays static and has no animations on it
local tool = script.Parent
local yourToolModel = tool["YourToolModelGoesHere"]

--Create a handle (make sure to have UseHandle checked on the tool)
local handle = Instance.new("Part")
handle.Name = "Handle"
handle.Transparency = 1
handle.CanCollide = false
handle.Size = Vector3.new(0.1,0.1,0.1)
handle.Parent = tool

--Line up the model with the handle
yourToolModel:SetPrimaryPartCFrame(handle.CFrame)

--Makes the tool model attach to the handle with a WeldConstraint
local newWeld = Instance.new("WeldConstraint")
newWeld.Part0 = handle
newWeld.Part1 = yourToolModel.PrimaryPart
newWeld.Parent = handle

Would it be a localscript or serverscript?

Localscript. Keep in mind, it may or may not work, I just wrote it off the top of my head to give a rough idea.

Make sure to read the comments because they explain what everything is doing

1 Like

I get this:

Model:SetPrimaryPartCFrame() failed because no PrimaryPart has been set, or the PrimaryPart no longer exists. Please set Model.PrimaryPart before using this. - Client - LocalScript:19

Yes, make sure the tool parts you are using are inside a model AND set the model’s “PrimaryPart” property to a part that remains static/not animated, but is attached to the rest of the parts (like with Motor6Ds)

I don’t really understand. Sorry, all of this is sort of new to me.

It’s okay, send a screenshot of the tool model and everything in it

1 Like


There is useless stuff below it.

This is trial and error, but try setting the model’s PrimaryPart to the “Top” part (click the model, look for where it says “PrimaryPart”)

After that, try testing the script again

Now it does this:

That’s a start! Okay, now what is the proper holding animation?

This (Ik it doesn’t look the best)
image