Item Holding Arm Problem

So,My character is holding the tool like this:

https://gyazo.com/6fc167d00dd1cbb69a71dd78ef23575e

but I want to hold it like this:

https://gyazo.com/1efa83bfad75008f885cdf880c0e2bcb

Is there anyway to make the arm not stick out when equipping the tool?

10 Likes

I think you need to make idle animation, but only using fist. I am not really sure that would work… but try it.

1 Like

Not sure if there’s a built-in feature that allows for this, but there are two ways to achieve this:

  1. You can rename/remove the handle and have the tool weld to your hand, which will prevent it from being held like that. I think you need to disable ‘RequireHandle’ in the tool as well.

  2. Override the equip animation by either stopping it or playing an animation with same/higher priority (if you’re using custom idle & movement animations).

2 Likes

Your 1st method is the one that I’m using.
You need to set the Tool.RequiresHandle to false, otherwise the scripts won’t execute.

4 Likes

Any help on how can I weld the tool with hand

1 Like

Same here. I am using welding method. Just make a model and weld these parts inside of it and then join it to right fist.

need help on joining model to right fist (everything is welded in the model thou)

1 Like

Maybe include a screenshot. And then we can see exactly where you need help!. :grin:

https://gyazo.com/b6c6b3f1a08644ae32a04fae1cb04e05
RequireHandle = False

https://gyazo.com/19c66906055968051a35ba45eb52f9f5
Everything welded

but how to weld it to hand now?
because this is what happening now:
https://gyazo.com/2494eb3a448036302cb84e97e2f05d94

Haha! :joy: I just wasn’t quite sure what you where talking about.

Anyways, What is the Weld Script welding it to exactly?

Me too, When I saw it I was laughing because I have opened many tabs idk I mixed my message with that reply :stuck_out_tongue:

Well it is welding all the parts inside the model together.

Correct me if i’m wrong but I don’t think you need to weld the parts together if there is only 1 part in the tool.

Yes, just in case.

And,
The screenshot you have shown about how you want it to look like.
Booga Booga must be using a hold animation.

When making a hold animation make sure its priority is set to Action.

Is there any way I can weld it to the hand so that I don’t need to remake my every animation

I am using custom animations that’s why

From Roblox Wiki:

Priority
In your game you may have several different animations for player actions and states, but what happens when you want to start playing an animation when another is currently running? For instance, suppose you have a jump animation and an animation for when a character is standing still. To make the jump animation override the standing animation, priority should be used.

There are four levels of animation priority:

  1. Core (lowest priority)
  2. Idle
  3. Movement
  4. Action (highest priority)
    If you start playing an animation with a higher priority than the one that was already playing, the new animation will supersede the old. You can set the priority in the editor while making an animation by clicking on the priority menu and selecting your desired level.

You don’t have to remake any animation. You only have to make a new one which would be your

Holding Animation

but welding is more simple way to go right?

I saw you mentioned you’re using custom animations, therefore welding to the hand is probably the best method.

You could just change the tool equip animation in the default Animate script, which you can find in your character. Read more about replacing default character animations here.
Alternatively, you can make an overriding animation play when the tool is equipped, this does not require anything besides knowing how to find playing animations or how to create & play an animation.

Disabling the animation through playing over it
You’ll need to ensure you have an AnimationTrack with a higher priority setting than ‘Idle’. This can be changed in a script or in the animation editor.
Make sure that the player’s arm is the focus of the animation!

local tool = script.Parent
-- Constant for Animation object that contains the new ToolEquip Animation
local animation = script.Parent.ToolEquipAnim

local animationTrack;

tool.Equipped:Connect(function()
    local character = tool.Parent
    local humanoid = character:WaitForChild('Humanoid')
    -- This will load an AnimationTrack on Humanoid
    local animationTrack = humanoid:LoadAnimation(animation)
    -- Set animationTrack priority to the same priority as idle animation;
    -- will cancel it out
    animationTrack.Priority = Enum.AnimationPriority.Idle
    -- Play the animationTrack
    animationTrack:Play()
end)

tool.Unequipped:Connect(function()
-- Stop the animationTrack from persisting once unequipped
if animationTrack then
    animationTrack:Stop()
   end
end)

Welding
If you want to weld it to your hand, then:

Make sure you have the following:

  • That Tool.RequiresHandle is set to false.
  • There is no part named ‘Handle’ within the part.
  • That there is a main or primary part in the tool that will be used to weld to the player’s hand.

You’ll want to weld the tool to the player’s hand by finding the correct offset for your tool. You can use a WeldConstraint to achieve this or use a Weld (useful article here) by finding the correct CFrame.

Tl;dr: welding is probably more efficient.

7 Likes

I m surely going to weld and thanks for help :smiley:

1 Like