How to animate Tool Parts (Guns, Knifes etc.)

Hello everybody! I’m Headstackk, I’ve been creating and making weapons on Roblox for a while. Today I’m going to teach you how to animate a weapon tool.

I have already briefly explain how on this DevForum post, but I’d like to make a new post to clarify everything and explain it step by step.

In most of the Roblox Shooter games (Excluding advanced shooter games such as Phantom Forces), I observed that they usually make a really simple animation, not even detached magazine, or moving bolt. In this tutorial, I’m going to teach you how to animate those details.
If you would like to make a really detailed gun in terms of Animations and details, be sure to follow this tutorial!

In the end of this tutorial, you should be able to create something like this:

So, let’s begin! :grinning:
I will use a M16 Assult Rifle that I built as an example this time.

1: Create an animating Dummy:

2: Group your gun model, and put it inside the dummy. Your gun model should be parented to the Dummy.

3: Create a new part, name it BodyAttach and place it at wherever you want to, I recommend you to put it near the Gun Handle.
Do Not name the part as Handle.

Inside, you can put cosmetics such as Gun Sounds, Flash Light etc.

4: Connect all the parts of your guns to BodyAttach with Motor6D.
Before we proceed, you have to install this plugin
It’s a must have plugin when it comes to Motor6Ds and Weld.

After installing it, you will need it to connect all the parts.
Please be sure that all the parts are unanchored and there are no welds.

First, select the BodyAttach part first, then select the rest.
After selecting all the parts, click “New Motor6D” in the plugin tab.

And that’s it! You connect all the parts in your gun with Motor6D, they will now stick together.
But before animating, we have to stick the Motor6D to the Animating Dummy!

5: Connecting the dummy to the gun:
For this step, we do not need to use the plugin. Instead, manually create a new Motor6D, you can create one by typing the command in the output bar:
Make sure that the Command Bar is on.

Then, put the Motor6D into the Dummy’s Torso.

After that, Connect the Motor6D’s Part0 as the dummy’s Torso, and connect it’s Part1 to the BodyAttach of your gun. Make sure your gun is NOT ANCHORED when doing this!

Last but not least, WOAH! You will realize your gun moved. Don’t worry, that’s an expected behavior. DO NOT move or rotate your gun after this step, or else the Motor6D will be disconnected!


6: Finally! You can start animating!
Open the Roblox Animation Editor, then you can start animating!

You might find something different, when you move the Right Arm, the Gun doesn’t move. This is because your weapon is connected to the Torso instead of Right Arm, like a legacy Roblox tool does.

Benefits of this:
The advantage of connecting to Torso instead of Right Arm is you can animate the gun freely instead of sticking to the Right Arm all the time.

LMG reloads:

Reloading with right arm

Lever weapons:

And more! You can also animate knife tricks animation with this, without the knife being stick to the Right Arm all the time.

However, in this tutorial, I’m not going to teach how to animate the gun since I’m also a Junior animator, but that’s how you animate details of a gun!

7: Essential part: In game

You will find this not working in game if you just put it as a typical tool, there are few steps to do before you put it into the game, which requires some scripting.

While animating it, the dummy’s torso is attached to BodyAttach, so does a player character do! You have to create a Motor6D to connect Player’s Character’s Torso manually when tool is being equipped, and destroy it when tool is being unequipped. This has to be done in Server, but you can perform it on Client first before the server for better visual effects.

Remember to implement a RemoteEvent in ReplicatedStorage. I name the Connect M6D and Disonnect M6D RemoteEvent ConnectM6D and DisconnectM6D respectively.
I also create the Motor6D inside the Torso when CharacterAdded.

Client script inside the gun tool:


	char.Torso.ToolGrip.Part0 = char.Torso
	char.Torso.ToolGrip.Part1 = WeaponTool.BodyAttach





Server Script:

		local M6D ="Motor6D", char.Torso)
		M6D.Name = "ToolGrip"


      local char = plr.Character
      char.Torso.ToolGrip.Part0 = char.Torso
      char.Torso.ToolGrip.Part1 = location


    plr.Character.Torso.ToolGrip.Part1 = nil

LAST, LAST BUT NOT LEAST! Remember to DISABLE RequireHandle in the tool!

That’s all about it! If you have any problem, feel free to reply and I’ll be glad to assist you
My aplogies for such a rushed tutorial, I might add more information when necessary. :slight_smile:
Happy animating guns… I guess?

Here’s the completed animation of the M16!

Apparently, your part can not be named as “MeshPart”. This will happen if you attempt to:

You won’t able to animate that part if it’s name is “MeshPart” with the Default Roblox Animator. No idea why it happens.

17/11 Edit:
Yes, obviously this is exploitable. Because someone actually wrote an exploit script for this lol. It can easily be exploited by cheaters mainly with the Remote Event “ConnectM6D”
I recommend doing server checks, when the Remote Event is being received, check whether the part is valid (is it inside a tool? is it a descendant of player’s character?) etc.

Sorry for not responding to the questions raised in this thread, I’ll try to make a video and explain it in detail soon if I have time.

How to animate a sword?
How do I replicate Real Arm movements to Fake Arms (ViewModel)?
How could I make your arms and head follow your mouse up and down?
How to animate a tool/object with a Dummy in the Animation Editor
How would I rig a weapon to an r6 character model using scripts?
How to animate weapons?
[FEEDBACK] Glock 17 Comission
How do I make a sword unsheathe animation?
Animating something to go down and up
Motor6D still not allowing animation
Motor6D Equipping
Welding an item into an animation
Animation not playing in a tool as it should be?
Trouble animating tools
How to cframe unfold?
How to devs get their animations spot on?
How Motor6D weapons work?
Any working gun tutorials?
Motor6D Confusion - Connecting Rigs
Attempting Gun Bobbing (not swaying!)
CFrame Issue with my tool
How can I make this Jetpack move more realistic?
Character spawns with a sword in their right arm (R6) without gear
I'm following a tool animation tutorial; help?
Blender + Roblox animating
Animation | Can't Select HumanoidRootPart
Character mixing animations
What is the easiest way to learn motor6d?
I have a problem with random tool animation
Problems with my guns on my star ships
How to animate tools
How do you animate a tool?
Cant see my hand in gun holding animation
Does anyone know how to apply animations to parts?
How could I make your arms and head follow your mouse up and down?
[Help] How Do I Make Parts of a Tool Move?
Gamepass Asset wont load correctly? (R6)
How to use cframe to make object animations?
How to spin the barrels when mouse is held using a script
[~45-65K R$] Looking for Weapons Engineer
Having Tool Equipped While Jumping Knocks Character Back
How do you animate parts in an animation?
Custom tool button/gui
How to add a part to an aniamtion
Why is my gun acting weirdly?
How to prevent the object from constantly being created
Issue with welding items to hand in Blender
Animation is inaccurate
Tool animation not playing
Gun handle not holding corectly
New game made by me! PRISM
Animation weirdly not loading
How can I include objects in animation
Final Attempt At Help For Tool Rig Animations initial delay (Help!)
How do you detect if ButtonR2 is held down or not with ContextActionService?
How do I animate animals?
Animating Tool Parts, delay issue
Help with Motor6D
How do I make an animation with a mesh in it?

Thanks! This is very useful and it’s explained very well, I might start animating guns soon!


Very well taught tutorial, i might even consider moving back to animating again! :smile:


Will this worked with lightsaber as well?


Any model i think, all you’ll have to do is follow the steps in this guide but do it for what you desire to animate.


Yeah but the script kinda make me confused it not worked in studio when I test it.


The script is for reference only! It’s a part of my code and you have to set up variables and instances by yourself.


I can’t select the gun while animating with the default ROBLOX anim editor. Any help?


Really good tutorial! Although, i just have a question. Does this work with R15 too?


It should work with R15, just use UpperTorso instead of Torso.


It says that ToolGrip is not a valid member of part, still doesn’t work even though if I add a :WaitForChild. Do you know what to do? I can send you my full script that I added variables to, if necessary.


I fixed the issue, but now it won’t even play the animation when I try to equip it.

Here’s what it looks like in the game:

Here’s what it looks like in animator:

What it looks like on a regular tool: (just to prove that the animation actually works)

If anyone could add me on Discord to help me resolve this minor issue, please add me: stick pepega#1603

1 Like

Never mind, I figured it out. It seems like you can only play the animation through a local script.

1 Like

Thanks for this, I’ll definitely try this out, however I only know the simplest of scripting so I might have problems with that part of it.


You wanna know what would be REALLY nice? A video tutorial, following this step by step. My small brain hurts when I try to follow this as how it is. I think it’d help others (including myself).

My brain hurts. Send help. No, I did not manage to get what I wanted (to animate my tools with motor6Ds.)


Please if you don’t mind is there any possible way that you can provide a very basic example model/file of this?
You see I learn faster by looking at models.


Help, it doesn’t seem to work for me, I want to make a Idle animation for my gun. I followed every instruction you did, but it didn’t quite work for me so I made it so it waits for the motor 6d to be made. It seemed to work but now this happens :

and this is what it’s supposed to look like

It’s my first time animating a Gun. I also put the priority to Idle. I have no idea what’s happening. What I saw is: Normally when you spawn, your character has a idle animation it kinda breathes. But when I equip the gun , it stops the idle animation. I don’t know what may be the problem, someone please help. Thank you


You need to set your priority higher, ‘Idle’ is overridden by the tool’s default holding animation. It’s safe to put custom idle animations as ‘action’ priority, it will still be overridden by any ‘actions’ you play next.


Thank you, I solved it today already. I was very confused why this was happening.

I’ve been using that weld plugin ever since I originally saw this post. Super helpful man. Grateful to have had this in my time of stupidity.

1 Like