Randomly Kick Certain Number of Players?

So this is probably a very basic question, but I’ve searched on the DevForum and else where to find nothing. My issue is very basic, kick players randomly from a game. Now I’m pretty sure this has to do with getting the number of players or a for/while loop but getting said players is what I’m struggling with.

local players = game:GetService("Players")
local player_count = players:GetChildren()
if #player_count >= 2 (or the number of players wanted) then
--kick players randomly here and getting said players from the players service
end

Also note this isn’t my exact code, it’s the base of what I want in a sense. Any help is appreciated, thanks in advanced,
~Notrealac0unt

You can get players by simply doing this:

for i, v in ipairs(players:GetPlayers()) do
    --code here
end

According to his question he wants a random player to get kicked. This would kick every player currently in game unless you elaborate.

Here is a simple function I put together to kick a given amount of random players.

local Players = game:GetService("Players")

local function kickRandomPlayers(amount)
    for _ = 1, amount do
        Players:GetPlayers()[math.random(#Players:GetPlayers())]:Kick()
    end
end

kickRandomPlayers(5) -- will kick 5 random players

If you wanted to kick enough players until there was two left (which is what I am guessing you are trying to do) you could use the function like so:

kickRandomPlayers(#Players:GetPlayers() - 2)
1 Like

this script will kick some players depending on what number they get

local players = game:GetService("Players")
local player_count = players:GetChildren()

for i, v in pairs(player_count) do
    local kick = math.random(1,#player_count)
    if kick == 1 then
        kick that player
    end
end

i didn’t include your whole script but you get the idea

1 Like

You’re on the right track with your player_count variable.

local players = game:GetService("Players")

while true do                                     --// Infinite loop
	local player_count = players:GetChildren()    --// Get the current number of players each iteration
	if (#player_count >= 2) then                  --// Checks if there are enough players to start kicking
		local rnd = math.random(1, #player_count) --// Random # between 1 and the max players
		player_count[rnd]:Kick("Randomly kicked") --// Kicks the player at that number
		
		print("Kicked " .. player_count[rnd].Name)
	end
	wait(5)
end
1 Like