Tool animation not working

maybe the anim over all doent work

but how do i fix that???

at this point i dont even know the issue

“If an Animator is a descendant of a Humanoid or AnimationController in a Player’s Character then animations started on that Player’s client will be replicated to the server and other clients.” Taken directly from the roblox API on animations

1 Like

Try removing the default tool holding animation

1 Like

alr how do i do that???

I have a place which overrides my default load animation, I made the animation which the tool connected to the right arm as a Motor6D. When The Equip runs I’d connect the M6D thru a remote event and Break the M6D when the tool gets unequipped,

The Server script could look something like this

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RemoteEventsFolder = ReplicatedStorage:WaitForChild("RemoteEvents")
local Init_M6D = RemoteEventsFolder:WaitForChild("Init_M6D")
local Destroy_M6D = RemoteEventsFolder:WaitForChild("Destroy_M6D")

local function Init(player)
	
	local char = player.Character
	local a = char:FindFirstChild("Right Arm"):WaitForChild("RightGrip")
	local m6d = Instance.new("Motor6D")
	m6d.Parent = char:FindFirstChild("Right Arm")
	m6d.Name = "RightGrip"
	m6d.Part0 = a.Part0
	m6d.Part1 = a.Part1
	m6d.C0 = a.C0
	m6d.C1 = a.C1
	a:Destroy()
	return m6d
	
end

Init_M6D.OnServerInvoke = Init

Destroy_M6D.OnServerEvent:Connect(function(player, M6D)
	
	M6D:Destroy()
	
end)

And the client could look somthing like this

--Init
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RemoteEventsFolder = ReplicatedStorage:WaitForChild("RemoteEvents")
local Player = game.Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Animator  = Character:WaitForChild("Humanoid"):WaitForChild("Animator")
local Tool = script.Parent
local Equip_1 = script:WaitForChild("Equip_1")
local Equip_2 = script:WaitForChild("Equip_2")
local Slash_1 = script:WaitForChild("Slash_1")
Equip_1 = Animator:LoadAnimation(Equip_1)
Equip_2 = Animator:LoadAnimation(Equip_2)
Slash_1 = Animator:LoadAnimation(Slash_1)
local Init_M6D = RemoteEventsFolder:WaitForChild("Init_M6D")
local Destroy_M6D = RemoteEventsFolder:WaitForChild("Destroy_M6D")
local M6D

--Main?

Tool.Equipped:Connect(function(mouse)
	
	M6D = Init_M6D:InvokeServer()
	Equip_1:Play()
	Equip_2:Play()
end)

Tool.Unequipped:Connect(function(mouse)
	
	Equip_2:Stop()
	Destroy_M6D:FireServer(M6D)
	
end)

Tool.Activated:Connect(function()
	Slash_1:Play()
end)

If it still does not work, There might be something wrong with your animation, I suggest following this tutorial: How to animate tools (the easiest and best way) (for melees)

1 Like

Also, to add on, The initialization (Init) of the M6D in the server script is connect thru a remote function, not to remote event. I’ve done this to return the specific M6D to destroy it later on.

Is the game your animation is in owned by anyone other than you? (I.e. a group or friend/ colleague) This is the most common issue for animations not playing.

I made the animation in my baseplate in my studio by myself so yeah i think its mine

I cant even test the scripts my studio isnt working

I am unable to access studio currently to demonstrate(roblox is having some server troubles it seems) this video should show you: How to remove Tool Holding Animation - Roblox Scripting Tutorial - YouTube

1 Like

alr thx ill check it out!!!

your animation is R6, but your game’s character is R15? isn’t that the cause?

6 Likes

bro omg I think thats it man with the one million iq

1 Like
local player = game:GetService("Players").LocalPlayer
local anims = script.Parent.Hold
local loadedAnims
local tool = script.Parent
local Animator

tool.Equipped:Connect(function()
   Animator = player.Character:WaitForChild("Humanoid"):WaitForChild("Animator")
   loadedAnims = Animator:LoadAnimation(anims)
   loadedAnims.Priority = Enum.AnimationPriority.Idle
   loadedAnims:Play()
end)

tool.Unequipped:Connect(function()
   loadedAnims:Stop()
end)

I got !
You need to publish your animation and create an animation in your script and put the ID into and after remove in the animate script the animation “toolnone” !
I hope that was helpful ! :wink:

I dont really understand this could you be a little clearer

The animation needs to be owned by you to work. Even a free modeled animation cannot be used, unless re-uploaded by you!

1 Like

You need to do this :

  1. Go into your animation and publish it !
  2. Get the ID animation
  3. Create an animation in your script :
    Help
  4. Do this in your script :
local player = game:GetService("Players").LocalPlayer
local anims = script.Parent.Hold
local tool = script.Parent
local Animation = game.Players.LocalPlayer.Character.Humanoid:LoadAnimation(script:WaitForChild("anims"))

tool.Equipped:Connect(function()
   Animation:Play()
end)

tool.Unequipped:Connect(function()
   Animation:Stop()
end)
  1. Play your game, search animate in the workspace and copy it and paste it into StarterCharacterScripts and search “toolnone” and delete his line !
    I hope that was helpful ! :smiley:
    EDIT : I didn’t view there was a solution sorry !