I have a BoolValue called InGame in the StarterPack with a Value of false. In the ServerScriptService, I have one script with the following code:
local plrs = game.Players:GetChildren()
for _, child in ipairs(plrs) do
child:WaitForChild("Backpack"):WaitForChild("InGame").Value = true
print(child:WaitForChild("Backpack"):WaitForChild("InGame").Value)
child:LoadCharacter()
end
This outputs True, which is the new Value of InGame for each Player.
In another script (also in ServerScriptService) I have the following code:
game.Players.PlayerAdded:connect(function(player)
player.CharacterAdded:connect(function(character)
print(player:WaitForChild("Backpack"):WaitForChild("InGame").Value)
if player:WaitForChild("Backpack"):WaitForChild("InGame").Value then
character.Humanoid.WalkSpeed = 30
character.Humanoid.JumpPower = 200
end
end)
end)
This outputs False, which is the actual value of InGame for each Player. Thus, the WalkSpeed and JumpPower properties aren't changed. What am I doing wrong?

1 comment
This should all be managed on the server then have a remote to toggle the value