I was making a script, but when I say to execute a function when a certain key is pressed, nothing happens. Also - don't say I should switch to RemoteEvents instead of KeyDown, because RemoteEvents are just awful... Here is the script:
wait(0.1) local player = game.Players.LocalPlayer local char = player.Character local mouse = player:GetMouse() local s1 = false local s2 = false ssj = false function ssj() char.Torso.Anchored = true if ssj == false then ssj = true print("SSJ was false.") end delay(0, function() spawn(function() spawn(function() for i = 1, 25 do local dust = Instance.new("Part", char.Torso) dust.Anchored = true dust.CanCollide = false dust.Transparency = 0.5 dust.BrickColor = BrickColor.Yellow() local dustmesh = Instance.new("SpecialMesh", dust) dustmesh.MeshType = "FileMesh" dustmesh.MeshId = "http://www.roblox.com/asset/?id=20329976" dustmesh.Scale = Vector3.new(1,1,1) dust.CFrame = char.Torso.CFrame - Vector3.new(0, 2.5, 0) game.Debris:AddItem(dust, 1) delay(0, function() for i = 1, 20 do dustmesh.Scale = dustmesh.Scale + Vector3.new(3.5, 1.75, 3.5) dust.Transparency = dust.Transparency + 0.05 wait(0.1) end end) wait(0.25) end end) s1 = true end) delay(0, function() for i = 1, 25 do local ball = Instance.new("Part", char.Torso) ball.Anchored = true ball.CanCollide = false ball.Transparency = 0 ball.BrickColor = BrickColor.Yellow() ball.Shape = "Ball" ball.CFrame = char.Torso.CFrame ball.TopSurface = "Smooth" ball.BottomSurface = "Smooth" game.Debris:AddItem(ball, 1) delay(0, function() for i = 1, 20 do ball.Size = ball.Size + Vector3.new(2.5, 2.5, 2.5) ball.Transparency = ball.Transparency + 0.05 wait(0.1) end end) wait(0.25) end end) s2 = true delay(0, function() spawn(function() for i = 1, 5 do local spike = Instance.new("Part", char.Torso) spike.Anchored = true spike.CanCollide = false spike.Transparency = 0.5 spike.BrickColor = BrickColor.new("Deep orange") spike.CFrame = char.Torso.CFrame local m = Instance.new("SpecialMesh", spike) m.MeshId = "rbxassetid://9982590" game.Debris:AddItem(spike, 1) delay(0,function() for i = 1, 20 do m.Scale = m.Scale + Vector3.new(2,2,2) spike.Transparency = spike.Transparency + 0.05 spike.Orientation = spike.Orientation + Vector3.new(math.random(1, 10), math.random(1, 10), math.random(1, 10)) wait(0.1) end end) wait(0.53) end end) delay(0,function() for i = 1, 12 do local ring = Instance.new("Part", char.Torso) ring.Anchored = true ring.CanCollide = false ring.Transparency = 0.5 ring.BrickColor = BrickColor.new("Deep orange") ring.CFrame = char.Torso.CFrame local m = Instance.new("SpecialMesh", ring) m.MeshId = "http://www.roblox.com/asset/?id=3270017" game.Debris:AddItem(ring, 1) delay(0,function() for i = 1, 20 do m.Scale = m.Scale + Vector3.new(12,12,12) ring.Transparency = ring.Transparency + 0.05 ring.Orientation = ring.Orientation + Vector3.new(math.random(-25, 25), math.random(-25, 25), math.random(-25, 25)) wait(0.25) end end) wait(0.53) end end) end) end) wait(5) local acc = Instance.new("Accessory", char.Head) acc.Name = "SSJHair" local handle = Instance.new("Part", acc) handle.Name = "Handle" handle.CanCollide = false handle.BrickColor = BrickColor.new("Deep orange") handle.Material = "Neon" handle.Transparency = 1 local m = Instance.new("SpecialMesh", handle) m.MeshId = "rbxassetid://430344159" m.Scale = Vector3.new(6, 6, 6) m.Offset = Vector3.new(0, 0.5, 0.5) local w = Instance.new("Weld", handle) w.Name = "AccessoryWeld" w.Part0 = handle w.Part1 = char.Head w.C0 = CFrame.new(0, -0.5, 0) char.Humanoid:AddAccessory(acc) for i = 1, 10 do handle.Transparency = handle.Transparency - 0.1 wait(0.025) end for i, v in pairs(char:GetChildren()) do if v:IsA("Accessory") and v.Name ~= "SSJHair" then v.Handle.Transparency = 1 end end local color1 = Color3.new(255, 255, 0) local p = game.ServerStorage.SSJAura:Clone() p.Parent = char.Torso p.Color = ColorSequence.new(color1) local l = Instance.new("ParticleEmitter", char.Torso) l.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 4, 0), NumberSequenceKeypoint.new(1, 4, 0)}) l.Lifetime = NumberRange.new(0.1) l.Rate = 2 l.Speed = NumberRange.new(2) l.VelocitySpread = NumberRange.new(400) l.Color = ColorSequence.new(Color3.new(171, 247, 255)) l.LightEmission = 0.5 l.Texture = "rbxassetid://281983189" local l2 = l:Clone() l2.Texture = "rbxassetid://278520320" local l3 = l:Clone() l3.Texture = "rbxassetid://281983280" local l4 = l:Clone() l4.Texture = "rbxassetid://281982895" local l5 = l:Clone() l5.Texture = "rbxassetid://281983242" l2.Parent = char.Torso l3.Parent = char.Torso l4.Parent = char.Torso l5.Parent = char.Torso s = Instance.new("Sound", char.Torso) s.Looped = true s.SoundId = "rbxassetid://828214895" s:Play() wait(4) s.TimePosition = 4 spawn(function() while wait(116) and ssj == true do s.TimePosition = 4 end end) char.Torso.Anchored = false end function nossj() s:Stop() for i, v in pairs(char:GetChildren()) do if v:IsA("Accessory") and v.Name ~= "SSJHair" then v.Handle.Transparency = 0 end end char.SSJHair:Destroy() for i, v in pairs(char.Torso:GetChildren()) do if v:IsA("ParticleEmitter") then v:Destroy() end end if ssj == true then ssj = false print("SSJ was true.") end end mouse.KeyDown:connect(function(key) if string.lower(key) == "h" then wait(0.1) ssj() elseif string.lower(key) == "h" then wait(0.1) nossj() end end)