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)