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, Gelände, 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 diesen auf Client-Geräten simulieren und rendern kann. Weitere Informationen darüber, wie die Roblox-Engine das Datenmodell interpretiert, finden Sie im 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 generische Eigenschaften, Methoden und Ereignisse definiert, die für alle Objekte gemeinsam sind. Objekte definieren auch ihre eigenen Eigenschaften, je nach der Funktionalität, die das Objekt bietet. Es gibt viele Kategorien von Objekten mit einer Vielzahl von Verwendungsmöglichkeiten, aber Sie werden häufig mit Objekten vom Typ BasePart und LuaSourceContainer arbeiten, die gemeinhin 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 physikalischen Objekte mit Eigenschaften wie Position, Größe und Orientierung gemeinsam sind.

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

Während Sie theoretisch ein voll funktionsfähiges Roblox-Spiel mit nur einfachen Teilen erstellen können, werden Sie höchstwahrscheinlich Meshes importieren und primitive Teile in komplexere Objekte und Strukturen durch solides Modellieren kombinieren.

Skripte

Sie können Interaktivität und Verhalten in die 3D-Welt Ihres Ortes hinzufü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, im 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 beiden Server- und 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 in der Organisation Ihres Datenmodells haben, erwartet die Roblox-Engine, dass bestimmte Objekte in bestimmten Container-Diensten sind, die Objekte sind, die spezifische Verhaltensweisen besitzen und die Verhaltensweisen der Objekte, die sie enthalten, beeinflussen können. Die Hauptkategorien von Container-Diensten sind:

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 zu gruppieren, wie eine Gruppe von Skripten im Server-Speicher.
  • 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 schachteln.

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 Basisteile, 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 womit sie interagieren können. Obwohl sie tatsächlich nicht 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 Benutzerbewegungen folgt oder an einem bestimmten Standort fixiert bleibt. Sie können auch das Sichtfeld, die Entfernung und den Winkel anpassen, um verschiedene visuelle Effekte zu erzeugen, wie Benutzer Ihre 3D-Welt sehen.

Weitere Informationen finden Sie unter 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 wie Gras, Wasser, Sand oder ein benutzerdefiniertes Material zu simulieren. 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 Umwelterrain.

Umgebung

Benutzerdefinierte Beleuchtung kann Ihre 3D-Welt viel immersiver und realistischer gestalten. Der Lighting-Dienst enthält Objekte, die die globalen Beleuchtungseinstellungen Ihres Ortes steuern, wie Atmosphere zur Simulation atmosphärischer Effekte 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 aus spezifischen Objekten auszustrahlen.

Das Hinzufügen von Audio zu Ihren Spielen ist auch entscheidend, um Ihre Spiele auf neue Höhen zu heben. Durch den strategischen Einsatz von positionsabhängiger und nicht positionsabhängiger Audio können Sie Spieler in Ihre Welten eintauchen lassen, ihnen nützliche Rückmeldungen zu ihren 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 intelligent und automatisch Daten, Physik und Chatnachrichten zwischen Server und Client in vielen Fällen, aber Sie können auch bestimmte Objekte zur Replikation angeben, indem Sie sie in bestimmte 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 erforderlich 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 am Client überschreiben, um Konsistenz zu gewährleisten. Dieser Container wird typischerweise für ModuleScript-Objekte verwendet, die von sowohl Script (serverseitig) als auch LocalScript (clientseitig) Objekten geteilt und zugegriffen 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 z. B. einen ParticleEmitter, um ihn zu klonen und allen eingehenden Charaktermodellen anzuhängen.

Weitere Informationen zur Replikation finden Sie unter 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 die 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 vorgesehen sind. Wenn Ihre Skripte andere, nicht-skriptbezogene Objekte erfordern, 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 anfü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 dies erforderlich ist. Dadurch können Sie den Netzwerkverkehr des Clients beim ersten Beitritt verringern.

Client

Die Client-Container-Dienste sind für Objekte gedacht, die an jeden verbundenen Client repliziert werden. Diese Kategorie von Containern repliziert zu jedem 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 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 aufbewahren, die nur für den Client relevant sind.

Wenn sich ein Client 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 Edit-Datenmodell an den entsprechenden Ort im Laufzeitdatenmodell innerhalb des Players-Objekts. Die folgende Tabelle beschreibt den ursprünglichen Container, in dem es sich im Container befindet, und den resultierenden Container, in den sie auf dem Client kopiert werden:

Edit-DatenmodellLaufzeitdatenmodellBemerkungen
StarterPackPlayer.BackpackSkripte, die das Inventar des Spielers einrichten und in der Regel Tool-Objekte enthalten, oft jedoch 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 aus StarterGui in die PlayerGui.
StarterPlayerScriptsPlayer.PlayerScriptsAllzweckskripte 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 er spawnt. Diese Skripte bleiben nicht bestehen, wenn der Spieler respawnt.
ReplicatedFirstDer Inhalt dieses Containers wird zuerst an alle Clients (aber nicht zurück an den Server) repliziert, bevor etwas anderes passiert.

Chat

TextChatService

TextChatService repräsentiert den Dienst, der verschiedene Aufgaben im Textchat im Spiel verwaltet, wie das Verwalten von Kanälen, das Dekorieren von Nachrichten, das Filtern von Texten, das Erstellen von Befehlen und das Entwickeln benutzerdefinierter Chatoberflächen.

Für weitere Informationen siehe Übersicht über den Textchat.

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 mehr Informationen siehe Voice-Chat.

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 eignen sich am besten zum Speichern von Abschnitten einer Umgebung, wie der Lobby oder einer Kampfzone.
  • 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, schachteln Sie Modelle innerhalb von Modellen.

Sie sollten Ihre Objekte immer beschreibend benennen. Dadurch wird es einfacher, Objekte später nachzubessern oder zu ändern, falls erforderlich.

Das Explorer-Fenster mit einer Demonstration einer Ordnerstruktur.
Objekte organisiert in Ordner
Das Explorer-Fenster mit einer Demonstration einer Modellorganisation 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.