This is a **local script **in a tool, it is only supposed to run while the tool is equipped and is meant to play an animation when the mouse is held for 4 (or more) seconds.
Absolutely nothing happens, no printing colour changing or animation playing, no output help either.
while script.Parent.Equiped.Value == true do -- There is a BoolValue called Equipped that -- Becomes true when the tool is equiped mouse = game.Players.LocalPlayer:GetMouse() mouseDown = false startedDown = 0 -- `mouse` a Mouse object from, e.g., theLocalPlayer:GetMouse() mouse.Button1Down:connect( function() mouseDown = true -- From now on, held startedDown = tick() -- Current time, in seconds end) mouse.Button1Up:connect( function() mouseDown = false if tick() - startedDown>4 then script.Parent.Blade.BrickColor = BrickColor.new("Pastel Blue") script.Parent.Attack:Play() script.Parent.Blade.BrickColor = BrickColor.new("Medium stone grey") end end) while wait() do if mouseDown then print( "Has been held for ", tick() - startedDown, -- Time between now and when `startedDown` was set "seconds" ) else print("Not held.") end end end