Hello!
First of all, sorry for the brief title, I wasn't really sure what to make it.
Anyway, I'm not really sure to start so here's the error.
23:36:16.918 - Workspace.GameScripts.PlayerLeft:19: bad argument #2 (string expected, got Object)
Here's the script. If the second last player who is either on the "playing" team, or the "complete" team leaves, "v" in players should be awarded a win. This is just a brief explanation of it. I should also add that the wins object is an IntValue.
game.Players.PlayerRemoving:Connect(function(plr)
local numPlaying = #game.Teams.Playing:GetPlayers()
local numComplete = #game.Teams.Complete:GetPlayers()
local numLobby = #game.Teams.Lobby:GetPlayers()
print(numPlaying.."playing")
print(numComplete.."complete")
print(numLobby.."lobby")
print(plr.Name.."plr")
print("player removed")
if plr.Team ~= game.Teams.Lobby then
if numComplete == 0 then
if numPlaying == 1 then
local playing = game.Teams.Playing:GetPlayers()
for i,v in pairs(playing) do
game.Players[v].leaderstats.Wins.Value = game.Players[v].leaderstats.Wins.Value + 1
end
end
end
end
end)

4 comments
You can also do game.Players[i].leaderstats.Wins.Value = game.Players[i].leaderstats.Wins.Value + 1 to index the players list with the current loop value it's on.
You need it to be a table, so do game.Players:GetChildren().
Or game.Players:GetPlayers().
Yeah. :))