Datenmodell

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.


Jeder Ort wird durch ein Datenmodell dargestellt, eine Hierarchie von Objekten, die alles über den Ort beschreiben. Das Datenmodell enthält alle Objekte, die die 3D-Welt ausmachen, wie Teile, Terrain, Beleuchtung und andere Umweltelemente. Es enthält auch Objekte, die das Laufzeitverhalten steuern können, wie Skripte, die Eigenschaften ändern, Methoden und Funktionen aufrufen und auf Ereignisse reagieren, die dynamisches Verhalten und Interaktivität ermöglichen.

Die Roblox-Engine verwendet das Datenmodell als Quelle der Wahrheit für den Zustand eines Ortes, damit sie ihn auf Client-Geräten simulieren und rendern kann. Weitere Informationen darüber, wie die Roblox-Engine das Datenmodell interpretiert, finden Sie in Client-Server-Laufzeit.

Objekte


Sie platzieren und organisieren Objekte im Datenmodell, um einen Ort in Roblox zu beschreiben. Jedes Objekt in Roblox erbt von der Klasse Instance, die allgemeine Eigenschaften, Methoden und Ereignisse definiert, die für alle Objekte gemeinsam sind. Objekte definieren auch ihre eigenen Merkmale, abhängig von der Funktionalität, die das Objekt bietet. Es gibt viele Kategorien von Objekten mit einer Vielzahl von Verwendungen, aber Sie werden häufig mit BasePart und LuaSourceContainer-Objekten arbeiten, die allgemein als Teile und Skripte bezeichnet werden.

Für eine umfassende Liste aller Funktionen der Roblox-Engine siehe die Referenzdokumentation.

3D-Bausteine

BasePart ist die Kernklasse für physikalisch simulierte 3D-Bausteine in der Welt. Sie definiert die Eigenschaften und Methoden, die für alle physischen Objekte mit Eigenschaften wie Position, Größe und Orientierung gemeinsam sind.

ObjektBeschreibung
PartEin primitives Teil, das die Form eines Blocks, Balls, Zylinders, Wedges oder Eckwedge annehmen kann.
MeshPartEin importiertes Mesh aus 3D-Modellierungssoftware wie Maya oder Blender.
TrussPartEin Trägerbalken, den Charaktere wie eine Leiter erklimmen können.

Obwohl Sie theoretisch ein voll funktionsfähiges Roblox-Spiel nur mit einfachen Teilen erstellen können, werden Sie höchstwahrscheinlich Meshes importieren und primitive Teile zu komplexeren Objekten und Strukturen durch solides Modellieren kombinieren.

Skripte

Sie können Interaktivität und Verhalten in die 3D-Welt Ihres Ortes einfügen und Logik mit Skripten definieren. Sie schreiben Skripte in der Programmiersprache Luau, um Dinge wie das Bewegen von Teilen, das Aufrufen anderer Skripte und das Reagieren auf Ereignisse zu tun. Da Roblox in einem Client-Server-Modell arbeitet, können Sie Skripte auf dem Server, dem Client ausführen oder sie über die Netzwerkgrenze hinweg kommunizieren lassen.

  • Ein Script-Objekt repräsentiert ein Skript, das nur auf dem Server ausgeführt werden kann.
  • Ein LocalScript-Objekt repräsentiert ein Skript, das nur auf dem Client ausgeführt werden kann.
  • Ein ModuleScript-Objekt repräsentiert ein wiederverwendbares Skript, das Sie von sowohl Server- als auch Client-Skripten mit require() aufrufen können.

Damit Skripte ordnungsgemäß funktionieren, müssen Sie sie in den richtigen Containern im Datenmodell platzieren. Weitere Informationen finden Sie in den Abschnitten Server und Client.

Objektorganisation

Obwohl Sie viel Flexibilität bei der Organisation Ihres Datenmodells haben, erwartet die Roblox-Engine, dass bestimmte Objekte in bestimmten Container-Diensten sind, die Objekte sind, die spezifische Verhaltensweisen haben und die Verhaltensweisen der Objekte, die sie enthalten, beeinflussen können. Die Hauptkategorien von Container-Diensten umfassen:

Darüber hinaus können Sie Ihre Objekte mit den folgenden Objekten weiter organisieren:

  • Ordner — Ein Folder dient organisatorischen Zwecken und definiert kein Verhalten. Zum Beispiel können Sie Ordner verwenden, um ähnliche Objekte wie eine Gruppe von Skripten im Server-Speicher zu gruppieren.
  • Modelle — Ein Model ist hauptsächlich für geometrische Gruppierungen von Teilen gedacht, wie das Gruppieren eines Schreibtischsets, das einen Stuhl, einen Tisch und eine Lampe umfasst. Um komplexere Sets zu organisieren, können Sie sogar Modelle innerhalb von Modellen verschachteln.

Workspace

Workspace enthält alle Objekte, die die 3D-Welt eines Ortes ausmachen. Sie können Objekte zum Workspace hinzufügen, um Ihre 3D-Welt anzupassen, wie Basis-Teile, Mesh-Teile und Modelle. Clients rendern alles, was in diesem Container erscheint, und nichts außerhalb davon, sodass Sie steuern können, was Benutzer in Ihrem Ort sehen und mit dem sie interagieren. Obwohl sie nicht tatsächlich gerendert werden, können Sie auch Skripte hinzufügen, die den Teilen und Modellen zugeordnet sind, mit denen sie verbunden sind. Standardmäßig ist der Workspace mit einem Terrain- und einem Camera-Objekt vorbefüllt.

Kamera

Camera bestimmt, wie der Client die 3D-Welt sieht. Standardmäßig gibt es eine Kamera im Workspace, aber Sie können mehrere Kameraobjekte hinzufügen, um verschiedene Perspektiven und Ansichten zu erstellen. Jeder Client nimmt diese Einstellungen und erstellt seine eigene Kamerasicht, die der Server nicht direkt ändern kann.

Zum Beispiel können Sie eine Kamera so einstellen, dass sie den Bewegungen des Benutzers folgt oder an einem bestimmten Ort fixiert bleibt. Sie können auch den Sichtwinkel, die Entfernung und den Winkel anpassen, um verschiedene visuelle Effekte zu erzeugen, wie Benutzer Ihre 3D-Welt sehen.

Für weitere Informationen siehe Kamera anpassen.

Terrain

Terrain ermöglicht es Ihnen, Landschaften für Ihren Ort zu erstellen. Sie können ein Material auf das Terrain anwenden, um gewünschte natürliche Umgebungen zu simulieren, wie Gras, Wasser, Sand oder ein benutzerdefiniertes Material. Obwohl Sie nur ein Terrain-Objekt für Ihre 3D-Welt haben können und ein Material auf dieses Terrain anwenden können, können Sie den Terrain-Editor verwenden, um Regionen Ihres Terrains zu bearbeiten.

Für weitere Informationen siehe Umweltterrain.

Umgebung

Benutzerdefinierte Beleuchtung kann Ihre 3D-Welt viel immersiver und realistischer machen. Der Dienst Lighting enthält Objekte, die die globalen Beleuchtungseinstellungen Ihres Ortes steuern, wie Atmosphere, um atmosphärische Effekte zu simulieren, oder Sky, um die Sonne, den Mond und die Sterne in Ihren Umgebungen zu verändern. Darüber hinaus können Sie Lichtquellen verwenden, um Licht von bestimmten Objekten auszusenden.

Das Hinzufügen von Audio zu Ihren Spielen ist ebenfalls entscheidend, um Ihre Spiele auf neue Höhen zu heben. Durch strategische Verwendung von positioniertem und nicht positioniertem Audio können Sie Spieler in Ihre Welten eintauchen, ihnen nützliche Rückmeldungen für ihre Aktionen geben und ihre Aufmerksamkeit auf das lenken, was sie tun müssen, um in ihren Zielen erfolgreich zu sein.

Replikation

Replikation ist der Prozess, bei dem der Server den Zustand Ihres Ortes mit allen verbundenen Clients synchronisiert. Die Roblox-Engine repliziert Daten, Physik und Chat-Nachrichten intelligent und automatisch zwischen Server und Client in vielen Fällen, aber Sie können auch bestimmte Objekte zur Replikation angeben, indem Sie sie in spezifische Container platzieren.

ReplicatedFirst

ReplicatedFirst enthält Objekte, die Sie replizieren möchten, wenn ein Client Ihrem Ort beitritt. Es enthält typischerweise Objekte, die für die Initialisierung eines Spielers unerlässlich sind, wie clientseitige LocalScript-Objekte und die mit den Skripten verbundenen Objekte. Alle Inhalte in diesem Container werden nur einmal vom Server an den Client repliziert.

ReplicatedStorage

ReplicatedStorage enthält Objekte, die sowohl für den Server als auch für verbundene Clients verfügbar sind. Alle Änderungen, die auf dem Client erfolgen, bleiben bestehen, werden jedoch nicht an den Server repliziert. Der Server kann Änderungen auf dem Client überschreiben, um Konsistenz zu gewährleisten. Dieser Container wird typischerweise für ModuleScript-Objekte verwendet, die sowohl von Script (serverseitig) als auch von LocalScript (clientseitig) Objekten geteilt und aufgerufen werden müssen. Darüber hinaus können Sie diesen Container verwenden, um Objekte zu replizieren, die nicht im 3D-Raum existieren müssen, bis sie benötigt werden, wie einen ParticleEmitter, um ihn zu klonen und allen eingehenden Charaktermodellen zuzuordnen.

Für weitere Informationen darüber, wie Replikation funktioniert, siehe Client-Server-Laufzeit.

Server

Das Datenmodell definiert spezielle Container für serverseitige Objekte, die niemals an den Client repliziert werden. Dies ermöglicht es dem Server, das Verhalten und den Zustand des Clients zu beeinflussen, ohne die Objekte und Logik des Servers dem Client auszusetzen.

ServerScriptService

ServerScriptService enthält Script-Objekte, ModuleScript-Objekte, die von Serverskripten benötigt werden, und andere skriptbezogene Objekte, die nur für die Servernutzung gedacht sind. Wenn Ihre Skripte andere, nicht-skriptbezogene Objekte benötigen, müssen Sie diese in ServerStorage platzieren. Skripte in diesem Container werden niemals an Clients repliziert, was es Ihnen ermöglicht, sichere, serverseitige Logik zu haben.

ServerStorage

ServerStorage enthält Objekte, die nur für die Servernutzung gedacht sind. Sie können diesen Container verwenden, um Objekte zu speichern, die Sie zur Laufzeit klonen und in den Workspace oder andere Container einfügen möchten. Zum Beispiel können Sie große Objekte wie Karten in diesem Container speichern, bis sie benötigt werden, und sie nur dann in den Workspace verschieben, wenn sie erforderlich sind. Dies verringert den Netzwerkverkehr des Clients beim ersten Beitritt.

Client

Die Client-Container-Dienste sind für Objekte gedacht, die an jeden verbundenen Client repliziert werden. Diese Kategorie von Containern repliziert an jeden verbundenen Client und enthält typischerweise 3D-Objekte und zugehörige LocalScript-Objekte. Alle Objekte, die Sie in diesen Containern speichern, sind nicht persistent über Sitzungen hinweg und werden jedes Mal zurückgesetzt, wenn ein Client erneut beitritt. Sie können Objekte in diesen Containern wie Spieler-GUIs, clientseitige Skripte und andere Objekte, die nur für den Client relevant sind, ablegen.

Wenn ein Client sich mit einem Server verbindet, hört der Container-Dienst Players auf Benutzer, die Ihrem Ort beitreten, und erstellt ein Player-Objekt für jeden Client. Der Server kopiert die Objekte aus den Client-Containern im Bearbeitungsdatenmodell an den entsprechenden Ort im Laufzeitdatenmodell innerhalb des Players-Objekts. Die folgende Tabelle beschreibt den ursprünglichen Container, in dem sie sich im Container befinden, und den resultierenden Container, in den sie auf dem Client kopiert werden:

BearbeitungsdatenmodellLaufzeitdatenmodellHinweise
StarterPackPlayer.BackpackSkripte, die das Inventar des Spielers einrichten und im Allgemeinen Tool-Objekte enthalten, aber oft auch lokale Skripte.
StarterGuiPlayer.PlayerGuiSkripte, die die lokale GUI des Spielers verwalten können. Wenn ein Spieler respawnt, wird der Inhalt von PlayerGui geleert. Der Server kopiert die Objekte innerhalb von StarterGui in das PlayerGui.
StarterPlayerScriptsPlayer.PlayerScriptsAllzweck-Skripte für den Client. Wenn Sie beispielsweise spezielle Effekte auf dem Client erstellen möchten, wenn bestimmte Bedingungen erfüllt sind, können Sie ein lokales Skript in diesem Container platzieren, um dies zu tun. Der Server kann auf diesen Container nicht zugreifen.
StarterCharacterScriptsPlayer.CharacterSkripte, die an den Client kopiert werden, wenn sie spawnen. Diese Skripte bleiben nicht bestehen, wenn der Spieler respawnt.
ReplicatedFirstDer Inhalt dieses Containers wird zuerst an alle Clients repliziert (aber nicht zurück an den Server), bevor etwas anderes geschieht.

Chat

TextChatService

TextChatService repräsentiert den Dienst, der verschiedene Aufgaben im Text-Chat im Spiel verwaltet, wie das Verwalten von Kanälen, das Dekorieren von Nachrichten, das Filtern von Texten, das Erstellen von Befehlen und das Entwickeln von benutzerdefinierten Chat-Schnittstellen.

Für weitere Informationen siehe Übersicht über den Text-Chat.

VoiceChatService

VoiceChatService repräsentiert die proximity-basierte Sprachchat-Funktion, die realistische Kommunikation simuliert, basierend darauf, wie nah Sie anderen Benutzern sind. Sie können diesen Dienst verwenden, um die Funktion ein- und auszuschalten.

Für weitere Informationen siehe Sprachchat.

Ordner und Modelle

Es gibt zwei Hauptmethoden zum Gruppieren von Objekten im Datenmodell: Ordner und Modelle. Beide sind Container für Objekte, haben jedoch unterschiedliche Zwecke.

  • Ordner sind am besten geeignet, um Abschnitte einer Umgebung zu speichern, wie die Lobby oder eine Kampf-Arena.
  • Modelle werden für Sets von Objekten verwendet, wie ein Schreibtischset, das einen Stuhl, einen Tisch und eine Lampe umfasst. Um komplexere Sets zu organisieren, können Sie Modelle innerhalb von Modellen verschachteln.

Sie sollten Ihre Objekte immer beschreibend benennen. Dies erleichtert das Finden und Ändern von Objekten später, falls erforderlich.

Das Explorer-Fenster mit einer Demonstration einer Ordnerorganisationsstruktur.
Objekte organisiert in Ordnern
Das Explorer-Fenster mit einer Demonstration einer Modellorganisationsstruktur in mehreren Diensten.
Verschiedene "Karten"-Modelle zum Wechseln zwischen Workspace und ServerStorage
©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.