I need help with UserInputService

Hi I was trying to give this tool an ability but it does not work, I don’t understand what I did wrong in my script

Server Script:

------------------Main-----------------
local RaycastHitbox = require(game.ReplicatedStorage.RaycastHitboxV4)
local Hitbox = RaycastHitbox.new(script.Parent.Handle)
local uis = game:GetService("UserInputService")
Hitbox.Visualizer = true
local CurrentHumnanoid
local idle
local CurrentAnimation
local CurrentAnimation2
local CurrentAnimation3
local Spin
local db = true
local click = 0
------------------ShortNames-----------
local tool = script.Parent
local char = tool.Parent
local handle = tool:FindFirstChild("Handle")
local T = 1
local Dmg = 19.75
local cd = .7
------------------functions------------

script.Parent.Activated:Connect(function()
	if db then
		db = false

		click += 1
		if click == 1 then
			Hitbox:HitStart(.55)
			if CurrentAnimation then
				CurrentAnimation:Play()
			end
		elseif click == 2 then
			Hitbox:HitStart(.55)
			if CurrentAnimation2 then
				CurrentAnimation2:Play()
				click = 0
			end
		end
		wait(cd)
		db = true
	end
end)

script.Parent.RemoteEvent.OnServerEvent:Connect(function(KeyCode)
	if KeyCode == Enum.KeyCode.Q then
		if db then
			db = false
			Hitbox:Hitstart(2)
			char.Humanoid.WalkSpeed = 0
			char.Humanoid.JumpHeight = 0
			if Spin then
				Spin:Play()
				wait(2)
				char.Humanoid.WalkSpeed = 16
				char.Humanoid.JumpHeight = 7.2
			end
		end
		wait(8)
		db = true
	end
end)

Hitbox.OnHit:Connect(function(Part, Humanoid)
	if Humanoid and Humanoid ~= script.Parent.Parent.Humanoid then
		Humanoid:TakeDamage(Dmg)
	end
end)

tool.Equipped:Connect(function()
	local Humanoid = script.Parent.Parent:FindFirstChild("Humanoid")
	if Humanoid and Humanoid ~= CurrentHumnanoid then
		CurrentHumnanoid = Humanoid
		idle = script.Parent.Parent.Humanoid:LoadAnimation(script.Idle)
		idle.Priority = Enum.AnimationPriority.Action
		idle.Looped = true
		idle:Play()
		CurrentAnimation = Humanoid.Animator:LoadAnimation(script.Slash)
		CurrentAnimation2 = Humanoid.Animator:LoadAnimation(script.Slash2)
		Spin = Humanoid.Animator:LoadAnimation(script.Spin)
	end
end)

script.Parent.Unequipped:Connect(function()

end)


Local Script

local uis = game:GetService("UserInputService")

uis.InputBegan:Connect(function(input, gameProcessedEvent)
	if gameProcessedEvent == false then
		script.Parent.RemoteEvent:FireServer(input.KeyCode)
	end
end)



Tool:
https://gyazo.com/406315ff1f03b17cafc8e4d23525c980

Also i think that UIS can only be used on localscripts.
https://developer.roblox.com/en-us/api-reference/event/UserInputService/InputBegan

the code below me should work.

local uis = game:GetService("UserInputService")

uis.InputBegan:Connect(function(input, gameProcessedEvent)
	if not gameProcessedEvent then
		if input.KeyCode == Enum.KeyCode.YOURKEY then
           --code
        end
	end
end)