Hello, I have an R15 Compatible Sword Script. It has no animations due to old animations being either non-existant and or, R6 only. I have all my animations as children of the sword itself and all I need is someone to help me add in the animations I have, they are as follows, 1. Equip 2. Attack 3. Lunge and here is my script,
local Tool = script.Parent local Handle = Tool.Handle local Config = Tool:WaitForChild'Configurations' local Sword = { DoubleClickMaxTime = 0.2, LocalDoubleClickMaxTime = 0.2, State = 'Idle', LocalState = 'Idle', SlashingStartedAt = 0, LocalSlashingStartedAt = 0, AttackTicket = 0, LocalAttackTicket = 0, DestroyOnUnequip = {} } local GLib = require(Tool:WaitForChild'GLib') function Sword:Connect() Handle.Touched:connect(function(hit) local myPlayer = GLib.GetPlayerFromPart(Tool) local character, player, humanoid = GLib.GetCharacterFromPart(hit) if myPlayer~=nil and character~=nil and humanoid~=nil and myPlayer~=player then local isTeammate = GLib.IsTeammate(myPlayer, player) local myCharacter = myPlayer.Character local myHumanoid = myCharacter and myCharacter:FindFirstChild'Humanoid' if (Config.CanTeamkill.Value==true or isTeammate~=true) and (myHumanoid and myHumanoid:IsA'Humanoid' and myHumanoid.Health > 0) and (Config.CanKillWithForceField.Value or myCharacter:FindFirstChild'ForceField'==nil) then local doDamage = Config.IdleDamage.Value if Sword.State == 'Slashing' then doDamage = Config.SlashDamage.Value elseif Sword.State == 'Lunging' then doDamage = Config.LungeDamage.Value end GLib.TagHumanoid(humanoid, myPlayer, 1) humanoid:TakeDamage(doDamage) end end end) end function Sword:Attack() local myCharacter, myPlayer, myHumanoid = GLib.GetCharacterFromPart(Tool) if myHumanoid~=nil and myHumanoid.Health > 0 then if Config.CanKillWithForceField.Value or myCharacter:FindFirstChild'ForceField'==nil then local now = tick() if Sword.State == 'Slashing' and now-Sword.SlashingStartedAt < Sword.DoubleClickMaxTime then Sword.AttackTicket = Sword.AttackTicket+1 Sword:Lunge(Sword.AttackTicket) elseif Sword.State == 'Idle' then Sword.AttackTicket = Sword.AttackTicket+1 Sword.SlashingStartedAt = now Sword:Slash(Sword.AttackTicket) end end end end function Sword:LocalAttack() local myCharacter, myPlayer, myHumanoid = GLib.GetCharacterFromPart(Tool) if myHumanoid~=nil and myHumanoid.Health > 0 then if Config.CanKillWithForceField.Value or myCharacter:FindFirstChild'ForceField'==nil then local now = tick() if Sword.LocalState == 'Slashing' and now-Sword.LocalSlashingStartedAt < Sword.LocalDoubleClickMaxTime then Sword.LocalAttackTicket = Sword.LocalAttackTicket+1 Sword:LocalLunge(Sword.LocalAttackTicket) elseif Sword.LocalState == 'Idle' then Sword.LocalAttackTicket = Sword.LocalAttackTicket+1 Sword.LocalSlashingStartedAt = now Sword:LocalSlash(Sword.LocalAttackTicket) end end end end function Sword:Slash(ticket) Sword.State = 'Slashing' Handle.SlashSound:Play() Sword:Animate'Slash' wait(0.5) if Sword.AttackTicket == ticket then Sword.State = 'Idle' end end function Sword:LocalSlash(ticket) Sword.LocalState = 'Slashing' wait(0.5) if Sword.LocalAttackTicket == ticket then Sword.LocalState = 'Idle' end end function Sword:Lunge(ticket) Sword.State = 'Lunging' Handle.LungeSound:Play() Sword:Animate'Lunge' local force = Instance.new'BodyVelocity' force.velocity = Vector3.new(0, 10, 0) force.maxForce = Vector3.new(0, 4000, 0) force.Parent = Tool.Parent.HumanoidRootPart Sword.DestroyOnUnequip[force] = true wait(0.25) Tool.Grip = CFrame.new(0, -1.5, 0, 0, 1, 0, 0, 0, -1, -1, 0, 0) wait(0.25) force:Destroy() Sword.DestroyOnUnequip[force] = nil wait(0.5) Tool.Grip = CFrame.new(0, -1.5, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0) Sword.State = 'Idle' end function Sword:LocalLunge(ticket) Sword.LocalState = 'Lunging' wait(1) Sword.LocalState = 'Idle' end function Sword:Animate(name) local tag = Instance.new'StringValue' tag.Name = 'toolanim' tag.Value = name tag.Parent = Tool end function Sword:Unequip() for obj in next, Sword.DestroyOnUnequip do obj:Destroy() end Sword.DestroyOnUnequip = {} Tool.Grip = CFrame.new(0, -1.5, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0) Sword.State = 'Idle' Sword.LocalState = 'Idle' end function Sword:Initialize() Sword:Connect() end return Sword
Thank you if you are able to help! Killerburger111