I'm making a game and I have keybinds. I currently only have one action, punch. It works on computer but not on console. Can someone help me. Thanks in Advance

First off, I have a Local script in Starter gui

local uis = game:GetService("UserInputService")
local remote = game.ReplicatedStorage:WaitForChild("PunchRemote")

local plrgui = script.Parent
local setngs = plrgui:WaitForChild("Settings")
local KeyReq = setngs:WaitForChild("Key")
local frame = setngs:WaitForChild("Frame")
local button = frame:WaitForChild("PunchBtn")
local activating = false
local ConSetngs = plrgui:WaitForChild("Settings")
local ConOpen = ConSetngs:WaitForChild("Open")
local ConKeyReq = setngs:WaitForChild("Key")
local Conframe = setngs:WaitForChild("Frame")
local Conbutton = frame:WaitForChild("PunchBtn")

if uis.KeyboardEnabled then
    if setngs.Open.Value == false then
        uis.InputBegan:Connect(function(input, gameProcessedEvent)
            if activating == false then
                activating = true
                tostring(input.KeyCode)
                tostring(Enum.KeyCode[KeyReq.Value])
                if input.KeyCode == Enum.KeyCode[KeyReq.Value] then
                    remote:FireServer()
                else
                    print('NotEqual')
                end
            end
        end)

        uis.InputEnded:Connect(function(input, gameProcessedEvent)
            print("Ended")
            wait(1)
            activating = false
        end)
elseif uis.GamepadEnabled then
    if ConSetngs.Open.Value == false then
        uis.InputBegan:Connect(function(input, gameProcessedEvent)
            if activating == false then
                activating = true
                tostring(input.KeyCode)
                tostring(Enum.KeyCode[ConKeyReq.Value])
                if input.KeyCode == Enum.KeyCode[ConKeyReq.Value] then
                    remote:FireServer()
                end
            end
        end)

        uis.InputEnded:Connect(function(input, gameProcessedEvent)
            print("Ended")
            wait(1)
            activating = false
        end)
    end
    end
end

Next I have a Local script in a button inside a frame inside a gui

local UserInputService = game:GetService("UserInputService")
local KeyStroke = Enum.KeyCode.V --// KeyStroke
local button = script.Parent


button.MouseButton1Click:Connect(function(player)
    if UserInputService.GamepadEnabled then
        UserInputService.InputBegan:Connect(function(input, GameProcessed)
            if (input == KeyStroke ) then
            else
                if script.Parent.Parent.Parent.Open.Value == true then
                    local keycode = input.KeyCode
                    local keycodeStr = tostring(keycode)
                    print(keycode)
                    print(keycodeStr)
                    if keycodeStr == 'Enum.KeyCode.ButtonA' or keycodeStr == 'Enum.KeyCode.ButtonSelect' or keycodeStr == 'Enum.KeyCode.ButtonStart' then
                        print('Unkown KeyCode')
                    else
                        button.Parent.Parent.Key.Value = string.gsub(keycodeStr, "Enum.KeyCode.", "")
                        button.Text = string.gsub(keycodeStr, "Enum.KeyCode.Button", "")
                    end
                end 
            end
        end)
    end
end)

Finally I have a script in ServerScriptService

local remote = Instance.new("RemoteEvent")
remote.Name = "PunchRemote"
remote.Parent = game:GetService("ReplicatedStorage")

game.Players.PlayerAdded:Connect(function(player)   
    player.CharacterAdded:Connect(function(char)        
        local humanoid = char:WaitForChild("Humanoid")
        local animate = char:WaitForChild("Animate")
        local animHold = Instance.new("StringValue")
        animHold.Name = "Punch"
        animHold.Parent = animate
        local anim = Instance.new("Animation")
        anim.Parent = animHold
        anim.AnimationId = 'http://www.roblox.com/asset/?id=2889390323'
    end)
end)

remote.OnServerEvent:Connect(function(player)
    local humanoid = player.Character:WaitForChild("Humanoid")
    local anim = player.Character:WaitForChild("Animate"):WaitForChild("Punch"):WaitForChild("Animation")
    local animTrack = humanoid:LoadAnimation(anim)
    print('playing')
    animTrack:Play()
    wait(1)
    animTrack:Stop()
    print("Punch")
end)

Remember it's just on console it won't work