Model data

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.


Setiap tempat diwakili oleh model data, sebuah hierarki objek yang menggambarkan segala sesuatu tentang tempat tersebut. Model data berisi semua objek yang membentuk dunia 3D, seperti bagian, terrain, pencahayaan, dan elemen lingkungan lainnya. Ini juga berisi objek yang dapat mengontrol perilaku runtime, seperti skrip yang memodifikasi properti, memanggil metode dan fungsi, serta merespons peristiwa yang memungkinkan perilaku dinamis dan interaktivitas.

Mesin Roblox menggunakan model data sebagai sumber kebenaran untuk keadaan tempat, sehingga dapat mensimulasikan dan merendernya di perangkat klien. Untuk informasi lebih lanjut tentang bagaimana Mesin Roblox menginterpretasikan model data, lihat Client-Server Runtime.

Objek


Anda menempatkan dan mengatur objek dalam model data untuk menggambarkan sebuah tempat di Roblox. Setiap objek di Roblox mewarisi dari kelas Instance, yang mendefinisikan properti, metode, dan peristiwa generik yang umum untuk semua objek. Objek juga mendefinisikan karakteristik mereka sendiri tergantung pada fungsionalitas yang disediakan oleh objek tersebut. Ada banyak kategori objek dengan berbagai macam penggunaan, tetapi Anda akan sering bekerja dengan objek BasePart dan LuaSourceContainer, yang biasa disebut sebagai bagian dan skrip.

Untuk daftar lengkap semua fitur Mesin Roblox, lihat dokumentasi referensi.

Blok bangunan 3D

BasePart adalah kelas inti untuk blok bangunan 3D yang disimulasikan secara fisik di dunia. Ini mendefinisikan properti dan metode yang umum untuk semua objek fisik dengan properti seperti posisi, ukuran, dan orientasi.

ObjekDeskripsi
PartSebuah bagian primitif yang dapat berbentuk blok, bola, silinder, wedge, atau sudut wedge.
MeshPartSebuah mesh yang diimpor dari perangkat lunak pemodelan 3D seperti Maya atau Blender.
TrussPartSebuah balok truss yang dapat dipanjat oleh karakter seperti tangga.

Meskipun secara teoritis Anda dapat membuat permainan Roblox yang sepenuhnya fungsional hanya dengan bagian sederhana, Anda kemungkinan besar akan mengimpor meshes dan menggabungkan bagian primitif menjadi objek dan struktur yang lebih kompleks melalui pemodelan solid.

Skrip

Anda dapat menambahkan interaktivitas dan perilaku ke dunia 3D tempat Anda dan mendefinisikan logika dengan skrip. Anda menulis skrip dalam bahasa pemrograman Luau untuk melakukan hal-hal seperti memindahkan bagian, memanggil skrip lain, dan merespons peristiwa. Karena Roblox bekerja dalam model klien-server, Anda dapat menjalankan skrip di server, klien, atau membuatnya berkomunikasi di seluruh batas jaringan.

  • Objek Script mewakili skrip yang hanya dapat dijalankan di server.
  • Objek LocalScript mewakili skrip yang hanya dapat dijalankan di klien.
  • Objek ModuleScript mewakili skrip yang dapat digunakan kembali yang dapat Anda require() dari skrip server dan klien.

Agar skrip berfungsi dengan baik, Anda harus menempatkannya di kontainer yang benar dalam model data. Untuk informasi lebih lanjut, lihat bagian Server dan Client.

Organisasi objek

Meskipun Anda memiliki banyak fleksibilitas dalam bagaimana Anda mengatur model data Anda, Mesin Roblox mengharapkan objek tertentu berada di layanan kontainer tertentu yang merupakan objek yang memiliki perilaku spesifik dan dapat mempengaruhi perilaku objek yang mereka kandung. Kategori utama layanan kontainer meliputi:

Selain itu, Anda dapat lebih mengatur objek Anda dengan objek berikut:

  • FolderFolder digunakan untuk tujuan organisasi dan tidak mendefinisikan perilaku apa pun. Misalnya, Anda dapat menggunakan folder untuk mengelompokkan objek serupa seperti sekumpulan skrip di penyimpanan server.
  • ModelModel terutama ditujukan untuk pengelompokan geometris bagian, seperti mengelompokkan set meja yang mencakup kursi, meja, dan lampu. Untuk mengatur set yang lebih kompleks, Anda bahkan dapat menempatkan model di dalam model.

Workspace

Workspace berisi semua objek yang membentuk dunia 3D tempat. Anda dapat menambahkan objek ke workspace untuk menyesuaikan dunia 3D Anda, seperti bagian dasar, bagian mesh, dan model. Klien merender semua yang muncul di kontainer ini dan tidak ada yang di luar itu, sehingga Anda dapat mengontrol apa yang dilihat dan diinteraksikan pengguna di tempat Anda. Meskipun tidak benar-benar dirender, Anda juga dapat menambahkan skrip yang diparent ke bagian dan model yang terkait dengannya. Secara default, workspace sudah dipenuhi dengan objek Terrain dan Camera.

Kamera

Camera menentukan bagaimana klien melihat dunia 3D. Secara default, ada satu kamera di workspace, tetapi Anda dapat menambahkan beberapa objek kamera untuk membuat perspektif dan tampilan yang berbeda. Setiap klien mengambil pengaturan ini dan membuat tampilan kameranya sendiri yang tidak dapat dimodifikasi langsung oleh server.

Sebagai contoh, Anda dapat mengatur kamera untuk mengikuti gerakan pengguna atau tetap tetap di lokasi tertentu. Anda juga dapat menyesuaikan bidang pandang, jarak, dan sudut untuk menciptakan efek visual yang berbeda tentang bagaimana pengguna melihat dunia 3D Anda.

Untuk informasi lebih lanjut, lihat kustomisasi kamera.

Terrain

Terrain memungkinkan Anda membuat lanskap untuk tempat Anda. Anda dapat menerapkan material pada terrain untuk mensimulasikan lingkungan alami yang diinginkan, seperti rumput, air, pasir, atau material kustom. Meskipun Anda hanya dapat memiliki satu objek terrain untuk dunia 3D Anda dan menerapkan satu material pada terrain tersebut, Anda dapat menggunakan Terrain Editor untuk mengedit wilayah terrain Anda.

Untuk informasi lebih lanjut, lihat terrain lingkungan.

Lingkungan

Pencahayaan kustom dapat membuat dunia 3D Anda jauh lebih imersif dan realistis. Layanan Lighting berisi objek yang mengontrol pengaturan pencahayaan global tempat Anda, seperti Atmosphere untuk mensimulasikan efek atmosfer atau Sky untuk mengubah matahari, bulan, dan bintang di lingkungan Anda. Selain itu, Anda dapat menggunakan sumber cahaya untuk memancarkan cahaya dari objek tertentu.

Menambahkan audio ke permainan Anda juga penting untuk meningkatkan permainan Anda ke tingkat yang baru. Dengan menggunakan audio posisi dan non-posisi secara strategis, Anda dapat membenamkan pemain ke dalam dunia Anda, memberikan umpan balik yang berguna untuk tindakan mereka, dan mengarahkan perhatian mereka pada apa yang perlu mereka lakukan untuk berhasil dalam tujuan mereka.

Replikasi

Replikasi adalah proses server menyinkronkan keadaan tempat Anda dengan semua klien yang terhubung. Mesin Roblox secara cerdas dan otomatis mereplikasi data, fisika, dan pesan chat antara server dan klien untuk banyak kasus, tetapi Anda juga dapat menentukan objek tertentu untuk direplikasi dengan menempatkannya di kontainer tertentu.

ReplicatedFirst

ReplicatedFirst berisi objek yang ingin Anda replikasi ke klien ketika ia bergabung dengan tempat Anda. Ini biasanya berisi objek yang penting untuk menginisialisasi pemain, seperti objek LocalScript di sisi klien dan objek yang terkait dengan skrip tersebut. Semua konten dalam kontainer ini direplikasi dari server ke klien hanya sekali.

ReplicatedStorage

ReplicatedStorage berisi objek yang tersedia untuk server dan klien yang terhubung. Setiap perubahan yang terjadi di klien akan bertahan tetapi tidak akan direplikasi ke server. Server dapat menimpa perubahan di klien untuk mempertahankan konsistensi. Kontainer ini biasanya digunakan untuk objek ModuleScript yang perlu dibagikan dan diakses oleh objek Script (sisi server) dan LocalScript (sisi klien). Selain itu, Anda dapat menggunakan kontainer ini untuk mereplikasi objek apa pun yang tidak perlu ada di dunia 3D sampai diperlukan, seperti ParticleEmitter untuk menggandakan dan memparenting ke semua model karakter yang masuk.

Untuk informasi lebih lanjut tentang cara kerja replikasi, lihat client-server runtime.

Server

Model data mendefinisikan kontainer khusus untuk objek yang hanya ada di sisi server yang tidak pernah direplikasi ke klien. Ini memungkinkan server mempengaruhi perilaku dan keadaan klien tanpa mengekspos objek dan logika server kepada klien.

ServerScriptService

ServerScriptService berisi objek Script, objek ModuleScript yang diperlukan oleh skrip server, dan objek terkait skrip lainnya yang hanya dimaksudkan untuk digunakan di server. Jika skrip Anda memerlukan objek lain yang bukan objek skrip, Anda harus menempatkannya di ServerStorage. Skrip dalam kontainer ini tidak pernah direplikasi ke klien, yang memungkinkan Anda memiliki logika sisi server yang aman.

ServerStorage

ServerStorage berisi objek yang hanya dimaksudkan untuk digunakan di server. Anda dapat menggunakan kontainer ini untuk menyimpan objek yang ingin Anda gandakan dan parent ke workspace atau kontainer lain saat runtime. Misalnya, Anda dapat menyimpan objek besar seperti peta dalam kontainer ini sampai mereka diperlukan dan memindahkannya ke workspace hanya saat diperlukan. Ini memungkinkan Anda mengurangi lalu lintas jaringan klien saat bergabung pertama kali.

Klien

Layanan kontainer klien dimaksudkan untuk objek yang direplikasi ke setiap klien yang terhubung. Kategori kontainer ini mereplikasi ke setiap klien yang terhubung dan biasanya berisi objek 3D dan objek LocalScript terkait. Semua objek yang Anda simpan di kontainer ini tidak persisten di seluruh sesi dan direset setiap kali klien bergabung kembali. Anda dapat menempatkan objek di kontainer ini seperti GUI pemain, skrip sisi klien, dan objek lain yang hanya relevan untuk klien.

Ketika klien terhubung ke server, layanan kontainer Players mendengarkan pengguna yang bergabung dengan tempat Anda dan membuat objek Player untuk setiap klien. Server menyalin objek dari kontainer klien dalam model data edit ke lokasi yang sesuai dalam model data runtime di dalam objek Players. Tabel berikut menjelaskan kontainer asli di mana objek tersebut berada dan kontainer hasil yang mereka salin ke klien:

Model data editModel data runtimeCatatan
StarterPackPlayer.BackpackSkrip yang mengatur inventaris pemain dan umumnya berisi objek Tool tetapi sering juga berisi skrip lokal.
StarterGuiPlayer.PlayerGuiSkrip yang dapat mengelola GUI lokal pemain. Ketika pemain respawn, konten PlayerGui dikosongkan. Server menyalin objek di dalam StarterGui ke PlayerGui.
StarterPlayerScriptsPlayer.PlayerScriptsSkrip tujuan umum untuk klien. Misalnya, jika Anda ingin membuat efek khusus di klien ketika kondisi tertentu terpenuhi, Anda dapat menempatkan skrip lokal di kontainer ini untuk melakukannya. Server tidak dapat mengakses kontainer ini.
StarterCharacterScriptsPlayer.CharacterSkrip yang disalin ke klien ketika mereka muncul. Skrip ini tidak bertahan ketika pemain respawn.
ReplicatedFirstKonten kontainer ini direplikasi ke semua klien (tetapi tidak kembali ke server) terlebih dahulu, sebelum yang lainnya.

Chat

TextChatService

TextChatService mewakili layanan yang menangani berbagai tugas chat teks dalam permainan, seperti mengelola saluran, menghias pesan, menyaring teks, membuat perintah, dan mengembangkan antarmuka chat kustom.

Untuk informasi lebih lanjut, lihat ikhtisar chat teks.

VoiceChatService

VoiceChatService mewakili fitur chat suara berbasis jarak yang mensimulasikan komunikasi realistis berdasarkan seberapa dekat Anda dengan pengguna lain. Anda dapat menggunakan layanan ini untuk menghidupkan dan mematikan fitur tersebut.

Untuk informasi lebih lanjut, lihat chat suara.

Folder dan model

Ada dua metode utama untuk mengelompokkan objek dalam model data: folder dan model. Keduanya adalah kontainer untuk objek, tetapi memiliki tujuan yang berbeda.

  • Folder paling baik untuk menyimpan bagian dari lingkungan, seperti lobi atau arena pertempuran.
  • Model digunakan untuk sekumpulan objek, seperti set meja yang mencakup kursi, meja, dan lampu. Untuk mengatur set yang lebih kompleks, letakkan model di dalam model.

Anda harus selalu memberi nama objek Anda dengan deskriptif. Ini memudahkan untuk menemukan dan memodifikasi objek di kemudian hari jika diperlukan.

Jendela Explorer dengan demonstrasi struktur organisasi folder.
Objek yang diorganisir ke dalam Folders
Jendela Explorer dengan demonstrasi struktur organisasi model di beberapa layanan.
Berbagai model "peta" untuk bertukar antara Workspace dan ServerStorage
©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.