This is a local script that is supposed to trigger one sever event if the key q is down and the other one if the key q is up, but all it does is activates the first event. Here is the script:
wait()
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Character = Player.Character
local Mouse = Player:GetMouse()
local event = workspace.Events.DemonAbilities["Dark Nebula"]
Enabled = true
ButtonDown = true
Mouse.KeyDown:Connect(function(key)
if Enabled == false then return end
Mouse.KeyUp:Connect(function(key)
key = key:lower()
if key == "q" then
ButtonDown = false
end
end)
key = key:lower()
if key == "q" then
Enabled = false
if ButtonDown == true then
event:FireServer()
end
end
if ButtonDown == false then
workspace.Events.DemonAbilities.darknebulaweldoff:FireServer()
end
wait(15)
Enabled = true
end)

2 comments
i thought local scripts cannot change the server things now
Keys being pressed is local stuff, server scripts can't mess with mouse crap unless a local script gives them the info.