Hey so, im making a sword that does time stop, and when i tested this, it says that this error: "Players.waluigifaster8998.Backpack.TimeSword.Server:196: attempt to index nil with 'Play'" I dont know what does this mean but i think its the animation problem,
And it says here on the Server's Script, Any help? Scroll down when you see Animations.TimeStop:Play(), that is the problem on error.
--Rescripted by TakeoHonorable
function Create(ty)
return function(data)
local obj = Instance.new(ty)
for k, v in pairs(data) do
if type(k) == 'number' then
v.Parent = obj
else
obj[k] = v
end
end
return obj
end
end
local Tool = script.Parent
Tool.Enabled = true
local Handle = Tool:WaitForChild("Handle")
local Remote = (Tool:FindFirstChildOfClass("RemoteEvent") or Create("RemoteEvent"){
Name = "Remote",
Parent = Tool
})
local MouseInput = (Tool:FindFirstChild("MousePos") or Create("RemoteFunction"){
Name = "MousePos",
Parent = Tool
})
local Services = {
Players = (game:FindService("Players") or game:GetService("Players")),
TweenService = (game:FindService("TweenService") or game:GetService("TweenService")),
RunService = (game:FindService("RunService") or game:GetService("RunService")),
Debris = (game:FindService("Debris") or game:GetService("Debris")),
ServerScriptService = (game:FindService("ServerScriptService") or game:GetService("ServerScriptService"))
}
local Player,Character,Root,Humanoid
local Animations = {}
local Particle = Handle:WaitForChild("Particle"):WaitForChild("Flare")
Particle.Enabled = true
local Sounds = {}
local Events = {}
function IsTeamMate(Player1, Player2)
return (Player1 and Player2 and not Player1.Neutral and not Player2.Neutral and Player1.TeamColor == Player2.TeamColor)
end
function TagHumanoid(humanoid, player)
local Creator_Tag = Instance.new("ObjectValue")
Creator_Tag.Name = "creator"
Creator_Tag.Value = player
Services.Debris:AddItem(Creator_Tag, 2)
Creator_Tag.Parent = humanoid
end
function UntagHumanoid(humanoid)
for i, v in pairs(humanoid:GetChildren()) do
if v:IsA("ObjectValue") and v.Name == "creator" then
v:Destroy()
end
end
end
function daggerUp()
Tool.GripUp = Vector3.new(0, 0, 1)
Tool.GripForward = Vector3.new(-1, 0, 0)
Tool.GripRight = Vector3.new(0, 1, 0)
Tool.GripUp = Vector3.new(0, 0, 1)
end
function daggerOut()
Tool.Grip = Tool.Grip * CFrame.Angles(math.rad(90),math.rad(20),0)
end
local CurrentTime,LastTime = tick(),tick()
function Activated()
if not Tool.Enabled or not Humanoid or Humanoid.Health <= 0 then return end
Tool.Enabled = false
CurrentTime = tick()
if (CurrentTime-LastTime) <= 0.2 then
daggerOut()
--Components.PeriTrail.Enabled = true
local sucess,MousePosition = pcall(function() return MouseInput:InvokeClient(Player) end)
MousePosition = (sucess and MousePosition) or Vector3.new(0,0,0)
local Direction = CFrame.new(Root.Position, Vector3.new(MousePosition.X, Root.Position.Y, MousePosition.Z))
local BodyVelocity = Instance.new("BodyVelocity")
BodyVelocity.MaxForce = Vector3.new(math.huge, 0, math.huge)
BodyVelocity.Velocity = Direction.lookVector * 75
Services.Debris:AddItem(BodyVelocity, 0.5)
BodyVelocity.Parent = Root
delay(.5,function()
--Components.PeriTrail.Enabled = false
end)
Root.CFrame = CFrame.new(Root.CFrame.p,Root.CFrame.p+Direction.lookVector)
coroutine.wrap(function()
wait(.7)
daggerUp()
end)()
wait(1)
else
--Swing
if Animations["Stab"] then
Animations.Stab:Play(nil,nil,5)
end
end
LastTime = CurrentTime
Tool.Enabled = true
end
function Touched(hit)
if not hit or not hit.Parent then return end
local Hum,FF = hit.Parent:FindFirstChildOfClass("Humanoid"),hit.Parent:FindFirstChildOfClass("ForceField")
if not Hum or Hum.Health <= 0 or FF or Hum == Humanoid then return end
if IsTeamMate(Player,Services.Players:GetPlayerFromCharacter(Hum.Parent)) then return end
UntagHumanoid(Hum)
TagHumanoid(Hum,Player)
Hum:TakeDamage(15)
if not Hum.Parent:FindFirstChild("SlowScript") then
local Slow = script:WaitForChild("SlowScript"):Clone()
Slow.Parent = Hum.Parent
Slow.Disabled = false
end
end
function Equipped()
Character = Tool.Parent
Player = Services.Players:GetPlayerFromCharacter(Character)
Humanoid = Character:FindFirstChildOfClass("Humanoid")
Root = Character:FindFirstChild("HumanoidRootPart")
if not Humanoid or Humanoid.Health <= 0 or not Root then return end
Animations = {
TimeStop = Humanoid:LoadAnimation(Tool:WaitForChild("Animations"):WaitForChild(Humanoid.RigType.Name):WaitForChild("TimeStop")),
}
Events[#Events+1] = Handle.Touched:Connect(Touched)
end
function Unequipped()
for _,anim in pairs(Animations) do
if anim then
anim:Stop()
end
end
for _,sound in pairs(Sounds) do
if sound then
sound:Stop()
end
end
for i=1,#Events do
if Events[i] then
Events[i]:Disconnect()
end
end
Events = {}
end
Tool.Activated:Connect(Activated)
Tool.Equipped:Connect(Equipped)
Tool.Unequipped:Connect(Unequipped)
Remote.OnServerEvent:Connect(function(Client,Key)
if not Player or not Client or Client ~= Player or not Key or not Tool.Enabled then return end
if Key == Enum.KeyCode.Q and Particle.Enabled then
local function IsStoppingTime()
local TimeScripts = Services.ServerScriptService:GetChildren()
for i=1,#TimeScripts do
if TimeScripts[i] and TimeScripts[i].Name == tostring(script:FindFirstChild("TimeStop")) and TimeScripts[i]:IsA("Script") and TimeScripts[i]:FindFirstChild("Creator") and TimeScripts[i]:FindFirstChild("Creator").Value == Player then
return true
end
end
return false
end
if IsStoppingTime() then return end
Particle.Enabled = false
delay(30,function()
Particle.Enabled = true
end)
--print("Time Stops now!")
----> Animations.TimeStop:Play() -This is the error
local TimeStopScript = script:FindFirstChild("TimeStop")
if TimeStopScript then
TimeStopScript = TimeStopScript:Clone()
Create("ObjectValue"){
Name = "Creator",
Value = Player,
Parent = TimeStopScript
}
Create("ObjectValue"){
Name = "CenterPart",
Value = Root,
Parent = TimeStopScript
}
TimeStopScript.Parent = Services.ServerScriptService
TimeStopScript.Disabled = false
end
end
end)

1 comment
What's the code firing the remote? Theres' a Remote.OnServerEvent so it could be its trying to play the animation when it hasn't loaded yet.