Gegevensmodel

*Deze inhoud is vertaald met behulp van AI (bèta) en kan fouten bevatten. Klik hier om deze pagina in het Engels te bekijken.

Elke plaats wordt vertegenwoordigd door een gegevensmodel, een hiërarchie van objecten die alles over de plaats beschrijven. Het gegevensmodel bevat alle objecten die de 3D-wereld vormen, zoals onderdelen, terrein, verlichting en andere omgevingselementen. Het bevat ook objecten die het runtime-gedrag kunnen controleren, zoals scripts die eigenschappen wijzigen, methoden en functies aanroepen, en reageren op gebeurtenissen die dynamisch gedrag en interactiviteit mogelijk maken.

De Roblox-engine gebruikt het gegevensmodel als de bron van waarheid voor de status van een plaats, zodat het deze kan simuleren en weergeven op clientapparaten. Voor meer informatie over hoe de Roblox-engine het gegevensmodel interpreteert, zie Client-Server Runtime.

Objecten

Je plaatst en organiseert objecten in het gegevensmodel om een plaats in Roblox te beschrijven. Elk object in Roblox erft van de Instance-klasse, die generieke eigenschappen, methoden en gebeurtenissen definieert die gemeenschappelijk zijn voor alle objecten. Objecten definiëren ook hun eigen kenmerken, afhankelijk van de functionaliteit die het object biedt. Er zijn veel categorieën van objecten met een breed scala aan toepassingen, maar je zult vaak werken met BasePart en LuaSourceContainer objecten, die vaak onderdelen en scripts worden genoemd.

Voor een uitgebreide lijst van alle functies van de Roblox-engine, zie de referentiedocumentatie.

3D-bouwblokken

BasePart is de kernklasse voor fysiek gesimuleerde 3D-bouwblokken in de wereld. Het definieert de eigenschappen en methoden die gemeenschappelijk zijn voor alle fysieke objecten met eigenschappen zoals positie, grootte en oriëntatie.

ObjectBeschrijving
PartEen primitief onderdeel dat de vorm kan aannemen van een blok, bal, cilinder, wig of hoekwig.
MeshPartEen geïmporteerd mesh uit 3D-modelleringssoftware zoals Maya of Blender.
TrussPartEen truss-balk waar karakters op kunnen klimmen als een ladder.

Hoewel je theoretisch een volledig functionele Roblox-game kunt maken met alleen eenvoudige onderdelen, zul je waarschijnlijk meshes importeren en primitieve onderdelen combineren tot complexere objecten en structuren via solide modellering.

Scripts

Je kunt interactiviteit en gedrag aan de 3D-wereld van je plaats toevoegen en logica definiëren met scripts. Je schrijft scripts in de Luau-programmeertaal om dingen te doen zoals onderdelen verplaatsen, andere scripts aanroepen en reageren op gebeurtenissen. Omdat Roblox werkt in een client-servermodel, kun je scripts op de server, client uitvoeren of ze laten communiceren over de netwerkgrens.

  • Een Script object vertegenwoordigt een script dat alleen op de server kan draaien.
  • Een LocalScript object vertegenwoordigt een script dat alleen op de client kan draaien.
  • Een ModuleScript object vertegenwoordigt een herbruikbaar script dat je kunt require() vanuit zowel server- als clientscripts.

Om ervoor te zorgen dat scripts correct functioneren, moet je ze in de juiste containers in het gegevensmodel plaatsen. Voor meer informatie, zie de secties Server en Client.

Objectorganisatie

Hoewel je veel flexibiliteit hebt in hoe je je gegevensmodel organiseert, verwacht de Roblox-engine dat bepaalde objecten in bepaalde containerservices worden geplaatst, wat objecten zijn die specifieke gedragingen hebben en de gedragingen van de objecten die ze bevatten kunnen beïnvloeden. De belangrijkste categorieën van containerservices zijn:

Daarnaast kun je je objecten verder organiseren met de volgende objecten:

  • Mappen — Een Folder is voor organisatorische doeleinden en definieert geen gedrag. Je kunt bijvoorbeeld mappen gebruiken om vergelijkbare objecten te groeperen, zoals een set scripts in serveropslag.
  • Modellen — Een Model is voornamelijk bedoeld voor geometrische groeperingen van onderdelen, zoals het groeperen van een bureau-set die een stoel, tafel en een lamp omvat. Om complexere sets te organiseren, kun je zelfs modellen binnen modellen nestelen.

Workspace

Workspace bevat alle objecten die de 3D-wereld van een plaats vormen. Je kunt objecten aan de workspace toevoegen om je 3D-wereld aan te passen, zoals basisonderdelen, mesh-onderdelen en modellen. Clients renderen alles wat in deze container verschijnt en niets daarbuiten, zodat je kunt controleren wat gebruikers zien en mee kunnen interageren in je plaats. Hoewel ze niet daadwerkelijk worden weergegeven, kun je ook scripts toevoegen die zijn gekoppeld aan de onderdelen en modellen waarmee ze zijn geassocieerd. Standaard is de workspace vooraf gevuld met een Terrain en Camera object.

Camera

Camera bepaalt hoe de client de 3D-wereld bekijkt. Standaard is er één camera in de workspace, maar je kunt meerdere camera-objecten toevoegen om verschillende perspectieven en weergaven te creëren. Elke client neemt deze instellingen en creëert zijn eigen camerabeeld dat de server niet direct kan wijzigen.

Bijvoorbeeld, je kunt een camera instellen om de bewegingen van de gebruiker te volgen of vast te blijven op een bepaalde locatie. Je kunt ook de kijkhoek, afstand en hoek aanpassen om verschillende visuele effecten te creëren van hoe gebruikers je 3D-wereld bekijken.

Voor meer informatie, zie de camera aanpassen.

Terrain

Terrain stelt je in staat om landschappen voor je plaats te creëren. Je kunt een materiaal op het terrein toepassen om gewenste natuurlijke omgevingen te simuleren, zoals gras, water, zand of een aangepast materiaal. Hoewel je slechts één terreinobject voor je 3D-wereld kunt hebben en één materiaal op dat terrein kunt toepassen, kun je de Terrain Editor gebruiken om regio's van je terrein te bewerken.

Voor meer informatie, zie milieu-terrein.

Environment

Aangepaste verlichting kan je 3D-wereld veel meeslepender en realistischer maken. De Lighting service bevat objecten die de globale verlichtingsinstellingen van je plaats regelen, zoals Atmosphere voor het simuleren van atmosferische effecten of Sky om de zon, maan en sterren in je omgevingen te veranderen. Daarnaast kun je lichtbronnen gebruiken om licht van specifieke objecten uit te stralen.

Het toevoegen van audio aan je games is ook cruciaal om je games naar nieuwe hoogten te tillen. Door strategisch gebruik te maken van positionele en niet-positionele audio, kun je spelers onderdompelen in je werelden, hen nuttige feedback geven voor hun acties en hun aandacht richten op wat ze moeten doen om succesvol te zijn in hun doelstellingen.

Replication

Replicatie is het proces waarbij de server de status van je plaats synchroniseert met alle verbonden clients. De Roblox-engine repliceert intelligent en automatisch gegevens, fysica en chatberichten tussen de server en client in veel gevallen, maar je kunt ook bepaalde objecten specificeren om te repliceren door ze in specifieke containers te plaatsen.

ReplicatedFirst

ReplicatedFirst bevat objecten die je wilt repliceren naar een client wanneer deze je plaats binnenkomt. Het bevat doorgaans objecten die essentieel zijn om een speler te initialiseren, zoals client-side LocalScript objecten en de objecten die aan de scripts zijn gekoppeld. Alle inhoud in deze container wordt slechts één keer van de server naar de client gerepliceerd.

ReplicatedStorage

ReplicatedStorage bevat objecten die beschikbaar zijn voor zowel de server als verbonden clients. Wijzigingen die op de client plaatsvinden, blijven bestaan, maar worden niet naar de server gerepliceerd. De server kan wijzigingen op de client overschrijven om consistentie te behouden. Deze container wordt doorgaans gebruikt voor ModuleScript objecten die moeten worden gedeeld en toegankelijk zijn voor zowel Script (serverzijde) als LocalScript (clientzijde) objecten. Daarnaast kun je deze container gebruiken om objecten te repliceren die niet in de 3D-wereld hoeven te bestaan totdat ze nodig zijn, zoals een ParticleEmitter voor klonen en koppelen aan alle binnenkomende karaktermodellen.

Voor meer informatie over hoe replicatie werkt, zie client-server runtime.

Server

Het gegevensmodel definieert speciale containers voor serverzijde alleen objecten die nooit naar de client worden gerepliceerd. Dit stelt de server in staat om het gedrag en de status van de client te beïnvloeden zonder de objecten en logica van de server aan de client bloot te stellen.

ServerScriptService

ServerScriptService bevat Script objecten, ModuleScript objecten die door serverscripts worden vereist, en andere scripting-gerelateerde objecten die alleen voor servergebruik zijn bedoeld. Als je scripts andere, niet-scriptingobjecten vereisen, moet je ze in ServerStorage plaatsen. Scripts in deze container worden nooit naar clients gerepliceerd, wat je in staat stelt om veilige, server-side logica te hebben.

ServerStorage

ServerStorage bevat objecten die alleen voor servergebruik zijn bedoeld. Je kunt deze container gebruiken om objecten op te slaan die je wilt klonen en koppelen aan de workspace of andere containers tijdens runtime. Je kunt bijvoorbeeld grote objecten zoals kaarten in deze container opslaan totdat ze nodig zijn en ze alleen naar de workspace verplaatsen wanneer dat vereist is. Dit stelt je in staat om het netwerkverkeer van de client bij de eerste verbinding te verminderen.

Client

De clientcontainerservices zijn bedoeld voor objecten die naar elke verbonden client worden gerepliceerd. Deze categorie containers repliceert naar elke verbonden client en bevat doorgaans 3D-objecten en bijbehorende LocalScript objecten. Alle objecten die je in deze containers opslaat, zijn niet persistent tussen sessies en worden elke keer gereset wanneer een client opnieuw verbindt. Je kunt objecten in deze containers plaatsen, zoals speler-GUI's, client-side scripts en andere objecten die alleen relevant zijn voor de client.

Wanneer een client verbinding maakt met een server, luistert de Players containerservice naar gebruikers die je plaats binnenkomen en maakt een Player object voor elke client. De server kopieert de objecten van de clientcontainers in het bewerkingsgegevensmodel naar de overeenkomstige locatie in het runtime-gegevensmodel binnen het Players object. De volgende tabel beschrijft de oorspronkelijke container waarin het zich bevindt in de container en de resulterende container waar ze naar de client worden gekopieerd:

Bewerk gegevensmodelRuntime gegevensmodelOpmerkingen
StarterPackPlayer.BackpackScripts die de inventaris van de speler instellen en doorgaans Tool objecten bevatten, maar vaak ook lokale scripts.
StarterGuiPlayer.PlayerGuiScripts die de lokale GUI van de speler kunnen beheren. Wanneer een speler opnieuw verschijnt, worden de inhoud van PlayerGui leeggemaakt. De server kopieert de objecten binnen StarterGui naar de PlayerGui.
StarterPlayerScriptsPlayer.PlayerScriptsAlgemene scripts voor de client. Als je bijvoorbeeld speciale effecten op de client wilt creëren wanneer aan bepaalde voorwaarden wordt voldaan, kun je een lokaal script in deze container plaatsen om dat te doen. De server kan deze container niet openen.
StarterCharacterScriptsPlayer.CharacterScripts die naar de client worden gekopieerd wanneer ze verschijnen. Deze scripts blijven niet bestaan wanneer de speler opnieuw verschijnt.
ReplicatedFirstDe inhoud van deze container wordt als eerste naar alle clients gerepliceerd (maar niet terug naar de server), voordat iets anders gebeurt.

Chat

TextChatService

TextChatService vertegenwoordigt de service die verschillende, in-game tekstchat-taken beheert, zoals het beheren van kanalen, het decoreren van berichten, het filteren van tekst, het creëren van commando's en het ontwikkelen van aangepaste chatinterfaces.

Voor meer informatie, zie overzicht van tekstchat.

VoiceChatService

VoiceChatService vertegenwoordigt de op nabijheid gebaseerde spraakchatfunctie die realistische communicatie simuleert op basis van hoe dicht je bij andere gebruikers bent. Je kunt deze service gebruiken om de functie in en uit te schakelen.

Voor meer informatie, zie spraakchat.

Mappen en modellen

Er zijn twee primaire methoden voor het groeperen van objecten in het gegevensmodel: mappen en modellen. Beide zijn containers voor objecten, maar ze hebben verschillende doeleinden.

  • Mappen zijn het beste voor het opslaan van secties van een omgeving, zoals de lobby of een gevechtsarena.
  • Modellen worden gebruikt voor sets van objecten, zoals een bureau-set die een stoel, tafel en een lamp omvat. Om complexere sets te organiseren, nest je modellen binnen modellen.

Je moet altijd je objecten beschrijvend benoemen. Dit maakt het gemakkelijk om objecten later te vinden en te wijzigen indien nodig.

Het Explorer-venster met een demonstratie van een maporganisatie structuur.
Objecten georganiseerd in Mappen
Het Explorer-venster met een demonstratie van een modelorganisatie structuur in verschillende services.
Verschillende "kaart" modellen om te wisselen tussen Workspace en ServerStorage
©2026 Roblox Corporation. Roblox, het Roblox-logo en Powering Imagination behoren tot onze geregistreerde en niet-geregistreerde handelsmerken in de VS en andere landen.