Although empty during development, once a game starts the ‘Players’ service will be populated with player objects. These objects contain player specific information, such as the currently assigned character, and player functionality.
Player objects are not the same thing as the player’s character you see on screen.
The character usually exist in the workspace and only contains character specific functionality such as animations or health.
Players can be assigned to different characters, including other players’ characters. Unlike characters, the player object cannot be reassigned and persists for the entirely of a game.
During a game each client receives a ‘PlayerGui’ container and a ‘PlayerScripts’ container. These are is accessible to the client and the server but not to other clients.
Notice here that the GUI and script containers of other players are not visible to the local player (Player5).
Players will also receive a ‘Backpack’ container. This container is named “Backpack” for convention only and does not have a physical representation on the player character nor is it related to the aesthetic backpacks you might see characters wearing in-game.
Any Script or LocalScript that is a descendant of Backpack or the PlayerGui will automatically execute. LocalScripts in the PlayerScripts container will also execute.
(We will go over the difference between the two later on.)
If the ‘CharacterAutoLoads’ property of this service is disabled, the player character will not automatically be spawned in when the player enters a game nor will their character respawn after the character dies.