Basically, I'm trying to make a code that starts the game once the server finds that there are 2 or more people playing (It will say if they are playing via ModuleScript, not if they are in the game)
The way how I'm attempting to do this is by:
1) Finding the number of players in the server (every 2 seconds)
2) If there are 2 or more players, the server will go through each player's descendants using forloop
3) The server finds the ModuleScript(GameSettings) inside a player's PlayerScripts and it's variable(Playing)
4) if GameSettings.Playing = "yes", the variable "PlayingValue" will increase by 1.
5) the script goes through other players and when the PlayingValue is 2 the game will begin
local Game = require(game.ReplicatedStorage.Game) --Gets the variables from the Game module script(Only Variable is GameStatus) local GameSettings = require(game.StarterPlayer.StarterPlayerScripts.GameSettings)----Gets the variables from the GameSettings module script(Only Variable is playing) local PlayingValue = 0 while true do local Players = game.Players:GetChildren()--finds how many things are in players local PlayerNumber = #Players --Get's the number of Players if PlayerNumber >=2 then for ActivePlayers = 0,PlayerNumber do if Players[ActivePlayers].PlayerScripts.GameSettings.Playing == "yes" then print("People are playing") PlayingValue = PlayingValue + 1 else print("People are not playing.") end end if PlayingValue >=2 then if Game.GameStatus == "unstarted" then Game.GameStatus = "starting" end end else print("The game will start when there are 2 players playing or more!") end wait(2) end
The problem is that the code is unable to go through the player's descendants. So, basically the problem is in this codeline:
if Players[ActivePlayers].PlayerScripts.GameSettings.Playing == "yes" then
Any help would be greatly appreciated. Thank You!
You will need to put the GameSettings folder somewhere else like directly in the player or the player's backpack as the server itself cannot see a players' PlayerScripts folder.