Sword Slash Animation Not Working

Hello! So I’m trying to make a Sword for the Player(s) to use to defeat a boss, I made a simple slash animation but the issue is that the animation wont play

Script

local Tool = script.Parent
local Handle = script.Parent.Handle
local SlashAnimation = script.Parent.Slash
local character = script.Parent.Parent
local humanoid = character:FindFirstChild("Humanoid")
local SlashAnim = script.Parent.Slash

local function Slash(hit)
	if script.Parent.Activated then
		local animationTrack = humanoid:LoadAnimation(SlashAnim)

		animationTrack:Play()
		if hit.Parent.Name == "Dummy" then
			local humanoid = hit.Parent.Humanoid
			humanoid.Health = humanoid.Health - 20
		else
			if hit.Parent.Name ~= "Dummy" then
				return
			end
		end
	end
end

script.Parent.Handle.Touched:Connect(Slash)

Error

 10:25:18.185  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:18.186  Stack Begin  -  Studio
  10:25:18.186  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:18.186  Stack End  -  Studio
  10:25:26.476  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:26.477  Stack Begin  -  Studio
  10:25:26.477  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:26.478  Stack End  -  Studio
  10:25:26.478  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:26.479  Stack Begin  -  Studio
  10:25:26.485  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:26.485  Stack End  -  Studio
  10:25:35.466  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:35.466  Stack Begin  -  Studio
  10:25:35.466  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:35.467  Stack End  -  Studio
  10:25:35.475  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:35.476  Stack Begin  -  Studio
  10:25:35.478  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:35.479  Stack End  -  Studio
  10:25:35.479  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:35.480  Stack Begin  -  Studio
  10:25:35.480  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:35.480  Stack End  -  Studio
  10:25:35.480  Infinite yield possible on 'Workspace:WaitForChild("Stage1")'  -  Studio
  10:25:35.480  Stack Begin  -  Studio
  10:25:35.480  Script 'Workspace.Flag1.Script', Line 78  -  Studio - Script:78
  10:25:35.480  Stack End  -  Studio
  10:25:35.795  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:35.795  Stack Begin  -  Studio
  10:25:35.796  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:35.796  Stack End  -  Studio
  10:25:36.125  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:36.125  Stack Begin  -  Studio
  10:25:36.125  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:36.125  Stack End  -  Studio
  10:25:36.147  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:36.147  Stack Begin  -  Studio
  10:25:36.147  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:36.147  Stack End  -  Studio
  10:25:36.147  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:36.147  Stack Begin  -  Studio
  10:25:36.147  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:36.147  Stack End  -  Studio
  10:25:36.190  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:36.191  Stack Begin  -  Studio
  10:25:36.191  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:36.191  Stack End  -  Studio
  10:25:36.191  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:36.192  Stack Begin  -  Studio
  10:25:36.192  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:36.192  Stack End  -  Studio
  10:25:48.234  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:48.234  Stack Begin  -  Studio
  10:25:48.234  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:48.235  Stack End  -  Studio
  10:25:48.241  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:48.241  Stack Begin  -  Studio
  10:25:48.241  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:48.242  Stack End  -  Studio
  10:25:48.332  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:48.332  Stack Begin  -  Studio
  10:25:48.332  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:48.333  Stack End  -  Studio
  10:25:48.449  Workspace.ClassicSword.SwordScript:10: attempt to index nil with 'LoadAnimation'  -  Server - SwordScript:10
  10:25:48.449  Stack Begin  -  Studio
  10:25:48.449  Script 'Workspace.ClassicSword.SwordScript', Line 10 - function Slash  -  Studio - SwordScript:10
  10:25:48.449  Stack End  -  Studio

Put :WaitForChild(...) instead of :FindFirstChild(...) ?

local humanoid = character:FindFirstChild("Humanoid")
1 Like

It doesn’t seem to work!


Alright, here.

local Tool = script.Parent
local Handle = Tool.Handle

local SlashAnimation = Tool.Slash

local character = nil
local humanoid = nil

local SlashAnim = Tool.Slash

local function Slash(hit)
	if Tool.Activated and character ~= nil then
		local animationTrack = humanoid:LoadAnimation(SlashAnim)

		animationTrack:Play()
		if hit.Parent.Name == "Dummy" then
			local humanoid = hit.Parent.Humanoid
			humanoid.Health = humanoid.Health - 20
		else
			if hit.Parent.Name ~= "Dummy" then
				return
			end
		end
	end
end

local function GetCharacter()
	if character ~= nil then
		return
	end
	
	character = Tool.Parent
	humanoid = character:WaitForChild("Humanoid", 100)
end

Handle.Touched:Connect(Slash)

Tool.Equipped:Connect(function()
	GetCharacter()
end)
1 Like

That also doesn’t seem to work

This is weird, It should be saying errors in the Output, Should I make prints to check if things Work?

Is there any error? wwwwwwwwwwww

1 Like

No their isn’t really


Yea try make print and check if it work.

2 Likes

@Dynulax I figured out that the script isn’t even running, I printed everything after each event accrued and it skipped all of it and just printed, Does this need to be a local script?

  09:00:18.095  Stack End  -  Studio
  09:00:18.848  Animation Loaded  -  Server - SwordScript:16
  09:00:18.848  Non-Boss  -  Server - SwordScript:23
  09:00:18.849  Animation Loaded  -  Server - SwordScript:16
  09:00:18.849  Non-Boss  -  Server - SwordScript:23
  09:00:18.849  Animation Loaded  -  Server - SwordScript:16
  09:00:18.849  Non-Boss  -  Server - SwordScript:23
  09:00:18.984  Animation Loaded  -  Server - SwordScript:16
  09:00:18.984  Non-Boss  -  Server - SwordScript:23
  09:00:18.985  Animation Loaded  -  Server - SwordScript:16
  09:00:18.985  Non-Boss  -  Server - SwordScript:23

Try doing
local animationTrack = humanoid:LoadAnimation("rbxassetid://YOURIDHERE")

That didn’t work, their still no errors so I’m confused

Try this:

local Tool = script.Parent
local Handle = Tool:WaitForChild("Handle")
local SlashAnim = Tool:WaitForChild("Slash")

function HandleTouched(hit)
	if hit.Parent:FindFirstChildWhichIsA("Humanoid") then
		local targetHum = hit.Parent:WaitForChild("Humanoid")
		targetHum.Health -= 20
	else
		return
	end
end

Tool.Activated:Connect(function()
	local character = Tool.Parent
	local humanoid = character:WaitForChild("Humanoid")
	local Animator = humanoid.Animator
	
	local animationTrack = Animator:LoadAnimation(SlashAnim)
	animationTrack:Play()
	
	Handle.Touched:Connect(HandleTouched)
end)
1 Like

@StarJ3M Have you tried the code above this post?