Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Why won't the script kick the player?

Asked by
262187 45
8 years ago

I have a GUI, which purpose is to simply kick players, and a kick reason is included. The GUI also includes the names of in-game players on a list so I dont need to type out the player name in a text button.

The script will run perfectly in studio, will not error in-game, but still dosent work, can anyone help?

Normal Script in Screen GUI(Called RemoteFunctions):

local remote = script.Parent["Kicking Function"]

remote.OnServerInvoke = function(var) -- WHEN INVOKE RUN SCRIPT
    local players = game.Players:GetPlayers()
    for i = 1,#players do
        if var == players[i] then return var end
    end
end

Local Script in Screen GUI(Called Invoke[needed?]):


wait() script.Parent.Script.RemoteFunction:InvokeServer()

Normal Script in GUI button(called Kicking script):

local remote = script.Parent.Parent.Parent["Kicking Function"]

script.TakeInfo.OnInvoke = function(var,Reason)
    local player = game.Players:GetChildren()
    for i,v in ipairs(player) do
        if var == v then
            v:Kick("You have been kicked for Reason: "..Reason)
        end
    end
end

Local script in GUI button(Called ListPlayers):

player = game.Players.LocalPlayer
Kick = script.Parent

Kick.MouseButton1Down:connect(function()
    local people = game.Players:GetChildren()
    for i,people in ipairs(people) do
        local newLine = Instance.new("TextButton", script.Parent.Parent)
        newLine.Text = people.Name
        newLine.Name = people.Character.Name
        newLine.BackgroundColor3 = script.Parent.BackgroundColor3
        newLine.TextColor3 = script.Parent.TextColor3
        newLine.Size = UDim2.new(0, 150,0, 50)
        newLine.Position = script.Parent.Position - UDim2.new(0,0,-i,-i)
        newLine.TextXAlignment = Enum.TextXAlignment.Center
        newLine.TextYAlignment = Enum.TextYAlignment.Center
        newLine.FontSize = Enum.FontSize.Size18
        newLine.Font = Enum.Font.SourceSans

    newLine.MouseButton1Down:connect(function()
        local ID = newLine.Name
        local KickReason = script.Parent.Parent.KickReason
        local Reason = script.Parent.Parent.KickReason.Text
        local verify = script.Parent.Parent.Parent["Kicking Function"]:InvokeServer(ID)
        if KickReason.Text == "Kick Reason" or KickReason.Text == "" then
            KickReason.BackgroundColor3 = Color3.new(255,0,0)
            wait(1)
            KickReason.BackgroundColor3 = newLine.BackgroundColor3
            else
        local Kick = script.Parent["Kicking script"].TakeInfo:Invoke(verify,Reason)
        end
    end)
    end
end)

Answer this question