I made Kills leaderstats for whenever you kill a player and/or a bot, and it works perfectly fine until someone else joins the server. If another person joins the server, it completely pauses your kills leaderstats and only the other person can earn kills.

Here is the game: https://www.roblox.com/games/4708400827/Sword-fighting-AI-Testing-v2 I have made it 5 player servers so you can test it out with other people for yourself.

Here is my leaderboard script:

local Players = game.Players

local Template = Instance.new 'BoolValue'
Template.Name = 'leaderstats'

Instance.new('IntValue', Template).Name = "Kills"
Instance.new('IntValue', Template).Name = "Deaths"


Players.PlayerAdded:connect(function(Player)
	wait(1)
	local Stats = Template:Clone()
	Stats.Parent = Player
	local Deaths = Stats.Deaths
	Player.CharacterAdded:connect(function(Character)
		Deaths.Value = Deaths.Value + 1
		local Humanoid = Character:FindFirstChild("Humanoid")
		if Humanoid then
			Humanoid.Died:connect(function()
				for i, Child in pairs(Humanoid:GetChildren()) do
					if Child:IsA('ObjectValue') and Child.Value and Child.Value:IsA('Player') then
						local Killer = Child.Value
						if Killer:FindFirstChild('leaderstats') and Killer.leaderstats:FindFirstChild("Kills") then
							local Kills = Killer.leaderstats.Kills
							Kills.Value = Kills.Value + 1
						end
						return
					end
				end
			end)
		end
	end)
	game.Workspace:WaitForChild("Bot1").Bot.Humanoid.Died:Connect(function()
		local BotHumanoid1 = game.Workspace:WaitForChild("Bot1").Bot.Humanoid
		for i, Child in pairs(BotHumanoid1:GetChildren()) do
			if Child:IsA('ObjectValue') and Child.Value then
				local Killer = Child.Value
				if Killer:FindFirstChild('leaderstats') and Killer.leaderstats:FindFirstChild("Kills") then
					local Kills = Killer.leaderstats.Kills
					Kills.Value = Kills.Value + 1
				end
				return
			end
		end
	end)
	game.Workspace:WaitForChild("Bot2").Bot.Humanoid.Died:Connect(function()
		local BotHumanoid2 = game.Workspace:WaitForChild("Bot2").Bot.Humanoid
		for i, Child in pairs(BotHumanoid2:GetChildren()) do
			if Child:IsA('ObjectValue') and Child.Value then
				local Killer = Child.Value
				if Killer:FindFirstChild('leaderstats') and Killer.leaderstats:FindFirstChild("Kills") then
					local Kills = Killer.leaderstats.Kills
					Kills.Value = Kills.Value + 1
				end
				return
			end
		end
	end)
end)

Thank you!