Wanneer een Roblox-gebruiker zich bij een spel voegt, wordt hij weergegeven als een Player in het DataModel. Dit Player-object bevat informatie over de gebruiker die universeel is voor spellen, zoals hun gebruikersnaam, vriendenlijst en opgeslagen avatar-personage, evenals eigenschappen, methoden en gebeurtenissen die de levenscyclus van de gebruiker beïnvloeden tussen het toetreden tot en het verlaten van het spel. Elk Player-object heeft ook vier belangrijke containers die je kunt gebruiken om de ervaring van een gebruiker aan te passen: Backpack, StarterGear, PlayerGui en PlayerScripts.
Elke Player exposeert ook een Player.User-eigenschap, die een User is die de identiteit van de speler binnen het domein van het huidige spel vertegenwoordigt. De Id-eigenschap is altijd de effectieve gebruikers-ID van die gebruiker voor het bijbehorende domein. Voor meer informatie over effectieve gebruikers-ID's, zie Gebruikers en gescoope gebruikers-ID's.

Levenscyclus
De Players-service bevat alle Player-instanties in een spel. Scripts aan de client- en serverzijde kunnen beide verbinding maken met de Players.PlayerAdded en Players.PlayerRemoved-evenementen om acties uit te voeren als reactie op de levenscyclus van een Player-object. Scripts kunnen ook verbinding maken met de Player.CharacterAdded en Player.CharacterRemoving-evenementen om gameplay-gerelateerde acties uit te voeren wanneer het personage verschijnt of verdwijnt.
Gebruiker voegt toe
Wanneer een gebruikersclient verbinding maakt met een spel, wordt het Players.PlayerAdded-evenement geactiveerd en wordt het Player-object van de gebruiker die zich voegt doorgegeven; je kunt dit object voor verschillende doeleinden gebruiken, zoals het laden van gebruikersgegevens uit een gegevensopslag of het toewijzen van de speler aan een team.
Bijvoorbeeld, om de gegevens van een gebruiker te laden wanneer ze zich bij een spel voegen, gebruik je het PlayerAdded-evenement in een Script om de gegevens van de gebruiker op te halen die zijn opgeslagen in een gegevensopslag onder hun gebruikers-ID:
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerAdded:Connect(function(player)
local userId = player.UserId
-- Lees gegevensopslag sleutel
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- Voer verdere acties uit met currentData
end)Personage spawnen
Standaard vertegenwoordigt het Player.Character-model van een gebruiker hun platformavatar en is Players.CharacterAutoLoads true, wat betekent dat het personagemodel automatisch spawnt wanneer de gebruiker zich bij een spel voegt.
Wanneer het Player.Character van een gebruiker spawnt, worden Scripts en LocalScripts in StarterCharacterScripts gekloond naar het personagemodel en wordt het Player.CharacterAdded-evenement geactiveerd. Dit evenement geeft het nieuwe personagemodel door aan zijn luisteraars, die je kunt gebruiken om het Humanoid-object van het personage te vinden en het gedrag ervan te wijzigen. Je kunt bijvoorbeeld Humanoid:ApplyDescription() gebruiken om de outfit van de avatar te veranderen.
Personage despawnen
Wanneer de Humanoid van de speler sterft, verwijdert de server automatisch het personagemodel na de tijd die is opgegeven door Players.RespawnTime. Je kunt vervolgens het Player.CharacterRemoving-evenement gebruiken om andere objecten opnieuw in te stellen of gegevens die aan het personage zijn gekoppeld bij te werken.
Gebruiker verlaat
Wanneer een gebruikersclient zich loskoppelt van een spel, vernietigt de server het bijbehorende Player-object binnen de Players-service. Op dit punt wordt het Players.PlayerRemoving-evenement geactiveerd en wordt het Player-object van de gebruiker die zich heeft losgekoppeld doorgegeven. Je kunt dit voor verschillende doeleinden gebruiken, zoals het opslaan van gebruikersgegevens, het verwijderen van spelersstatistieken van een scorebord of het vernietigen van door spelers gemaakte modellen in het spel.
Het volgende voorbeeld Script luistert naar het PlayerRemoving-evenement en probeert de gegevens van de gebruiker op te slaan in een gegevensopslag onder hun gebruikers-ID:
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerRemoving:Connect(function(player)
local userId = player.UserId
-- Verkrijg de gegevensstatus van de speler in het spel
local currentData = getCurrentData(player)
-- Opslaan in gegevensopslag
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)Containers
Elk Player-object dat een gebruikersclient vertegenwoordigt, slaat verschillende belangrijke containers op: Backpack, StarterGear, PlayerGui en PlayerScripts. Tijdens de runtime van het spel kopiëren verschillende containers in het "bewerk" gegevensmodel hun inhoud naar deze Player-containers, waaronder StarterGui naar PlayerGui, StarterPack naar Backpack en StarterPlayerScripts naar PlayerScripts.

Tool-objecten in de Backpack vormen de inventaris van de speler en worden weergegeven als pictogramknoppen onderaan het scherm. Zie in‑game tools voor meer informatie.
Zoals hierboven geïllustreerd, worden de inhoud van StarterPack en de StarterGear van de speler gekloond naar Backpack wanneer het Character van een speler spawnt. Wanneer het personage sterft, vernietigt de client de Backpack en vervangt deze door een nieuwe.
Om de standaard Roblox-inventaris GUI uit te schakelen en deze te vervangen door je eigen, roep je StarterGui:SetCoreGuiEnabled() aan in een LocalScript, zoals beschreven in schakel standaard UI uit.
Ban gebruikers
Om de beleefdheid en eerlijk spel in je spellen te waarborgen, kun je gebruikers verbannen die de regels of richtlijnen van de gemeenschap schenden. Je kunt de banduur, banberichten en zelfs verbannen naar mogelijke alternatieve accounts aanpassen. Bij het gebruik van deze functie moet je de richtlijnen voor verbannen en berichten volgen.
Je hebt verschillende opties voor het werken met bans:
- Elke spelpagina op de Creator Hub heeft een Bans dashboard.
- Voor programmatisch gebruik met de engine API, zie Players:BanAsync().
- Voor Open Cloud, zie bans en blokkades.
Apparaat blokkeren
Naast het verbannen van een account ondersteunt Players:BanAsync() apparaat blokkeren via het ApplyDeviceBlock-veld in de configuratietabel. Wanneer je een gebruiker verbant die momenteel met ApplyDeviceBlock ingesteld op true met je spel is verbonden, wordt het apparaat dat aan die gebruiker is gekoppeld ook geblokkeerd om opnieuw te verbinden voor 24 uur. Deze optie voegt wrijving toe tegen het omzeilen van bans; verbannen spelers kunnen zich niet onmiddellijk opnieuw bij het spel voegen vanaf een nieuw account op hetzelfde apparaat.
- Apparaat blokkeren geldt momenteel alleen voor spelers op desktop (Windows en macOS). Het geldt niet voor mobiele apparaten of consoles.
- De apparaatblokkade wordt niet als een ban doorgegeven aan andere accounts die het apparaat hebben gebruikt.
- Het aanroepen van de unban API op de getroffen gebruiker verwijdert onmiddellijk elke actieve apparaatblokkade die aan het apparaat van die gebruiker is gekoppeld, waardoor ze zich opnieuw bij het spel kunnen voegen.
Ban richtlijnen
Bij het implementeren van bans in je spel, houd je aan de volgende richtlijnen:
- Spelregels mogen niet in tegenspraak zijn met Roblox's Community Standards en Terms of Use. Bijvoorbeeld, je kunt geen spelregel maken die iemand uitsluit vanwege hun geslacht, omdat dit in strijd is met Roblox's Discriminatie, Beledigingen en Haatacties beleid.
- Makers moeten hun spelregels duidelijk ergens toegankelijk voor alle gebruikers vermelden.
- Makers moeten hun spelregels eerlijk toepassen en niet willekeurig bepaalde gebruikers targeten.
- Gebruikers kunnen rechtstreeks bij makers in beroep gaan als ze geloven dat hun ban onterecht was. Roblox zal deze beroepen niet bemiddelen, tenzij de gebruiker gelooft dat de spelregels van de maker of de handhaving van hun regels in strijd zijn met de Community Standards.
- Roblox kan een spel modereren als er reden is om te geloven dat de spelregels van een maker of de handhaving van hun regels in strijd zijn met de Community Standards.
Bericht richtlijnen
Wanneer een gebruiker wordt verbannen, ontvangt hij een foutmodaal met informatie zoals de banlengte en reden. In het tekstgefilterde bericht kun je aanvullende informatie opnemen, zoals beroep of contactinformatie, zolang je voldoet aan Roblox's Community Standards.
Bijvoorbeeld, in je banberichten mag je merknamen en platforms vermelden:
- "Bezoek de Discord in mijn groep/spelpagina"
- "Stuur me een bericht op Twitter of X"
Vermeldingen van persoonlijke informatie of directe links zijn niet toegestaan in dit berichtveld. Dit omvat het plaatsen van een specifieke gebruikersnaam of handle, of het geven van een directe link naar een Discord-server of X-account.