Model Data

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


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

Mesin Roblox menggunakan model data sebagai sumber kebenaran untuk keadaan sebuah 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 diberikan objek tersebut. Ada banyak kategori objek dengan berbagai kegunaan, namun Anda akan sering bekerja dengan objek BasePart dan LuaSourceContainer, yang biasa disebut sebagai bagian dan skrip.

Untuk daftar komprehensif 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 mengambil bentuk blok, bola, silinder, wedge, atau corner wedge.
MeshPartSebuah mesh yang diimpor dari perangkat lunak pemodelan 3D seperti Maya atau Blender.
TrussPartSebuah balok truss yang bisa dipanjat oleh karakter seperti tangga.

Meskipun secara teoretis Anda dapat membuat permainan Roblox yang sepenuhnya fungsional hanya dengan bagian-bagian sederhana, Anda kemungkinan besar akan mengimpor meshes dan menggabungkan bagian primitif menjadi objek dan struktur yang lebih kompleks melalui modelling 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 client-server, Anda dapat menjalankan skrip di server, klien, atau membuat mereka berkomunikasi melintasi 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 dengan perilaku spesifik dan dapat mempengaruhi perilaku objek yang mereka miliki. Kategori utama layanan kontainer termasuk:

Selain itu, Anda dapat lebih mengorganisir objek Anda dengan objek-objek berikut:

  • FolderFolder adalah untuk tujuan organisasi dan tidak mendefinisikan perilaku apa pun. Misalnya, Anda dapat menggunakan folder untuk mengelompokkan objek serupa seperti seperangkat skrip di penyimpanan server.
  • ModelModel terutama dimaksudkan untuk pengelompokan geometris bagian, seperti mengelompokkan bersama set meja yang termasuk kursi, meja, dan lampu. Untuk mengorganisir set yang lebih kompleks, Anda bahkan dapat menyusun model di dalam model.

Workspace

Workspace berisi semua objek yang menyusun dunia 3D sebuah tempat. Anda dapat menambahkan objek ke workspace untuk menyesuaikan dunia 3D Anda, seperti bagian dasar, bagian mesh, dan model. Klien merender segala sesuatu yang muncul dalam kontainer ini dan tidak ada di luar itu, jadi Anda dapat mengontrol apa yang dilihat dan diinteraksi oleh pengguna di tempat Anda. Meskipun tidak dirender, Anda juga dapat menambahkan skrip yang diparentasi ke bagian dan model yang terkait. Secara default, workspace sudah diisi sebelumnya 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 pergerakan pengguna atau tetap tetap di lokasi tertentu. Anda juga dapat menyesuaikan sudut pandang, jarak, dan sudut untuk menciptakan efek visual yang berbeda tentang bagaimana pengguna melihat dunia 3D Anda.

Untuk informasi lebih lanjut, lihat sesuaikan kamera.

Terrain

Terrain memungkinkan Anda untuk membuat lanskap untuk tempat Anda. Anda dapat menerapkan material di terrain untuk mensimulasikan lingkungan alam yang diinginkan, seperti rumput, air, pasir, atau material khusus. 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 area 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 dari 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 sangat penting untuk membawa permainan Anda ke tingkat yang lebih tinggi. Dengan secara strategis menggunakan audio posisional dan non-posisional, Anda dapat menghidupkan pemain dalam dunia Anda, memberi mereka 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 obrolan antara server dan klien dalam 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 saat bergabung dengan tempat Anda. Ini biasanya berisi objek yang penting untuk menginisialisasi pemain, seperti objek LocalScript 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 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 hingga dibutuhkan, seperti ParticleEmitter untuk mengkloning dan memparenting ke semua model karakter yang masuk.

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

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 ke klien.

ServerScriptService

ServerScriptService berisi objek Script, objek ModuleScript yang diperlukan oleh skrip server, dan objek terkait skrip lainnya yang hanya dimaksudkan untuk penggunaan server. Jika skrip Anda memerlukan objek lain yang bukan 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 penggunaan server. Anda dapat menggunakan kontainer ini untuk menyimpan objek yang ingin Anda kloning dan parent ke workspace atau kontainer lain saat runtime. Sebagai contoh, Anda dapat menyimpan objek besar seperti peta dalam kontainer ini hingga dibutuhkan dan memindahkannya ke workspace hanya ketika diperlukan. Ini memungkinkan Anda mengurangi lalu lintas jaringan klien pada saat bergabung.

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 bersifat persisten di antara sesi dan direset setiap kali klien kembali bergabung. Anda dapat meletakkan 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 tempat objek berada dan kontainer hasil salinannya di klien:

Model data editModel data runtimeCatatan
StarterPackPlayer.BackpackSkrip yang menyiapkan inventaris pemain dan umumnya berisi objek Tool tetapi sering juga berisi skrip lokal.
StarterGuiPlayer.PlayerGuiSkrip yang dapat mengelola GUI lokal pemain. Ketika pemain respawn, isi PlayerGui dikosongkan. Server menyalin objek di dalam StarterGui ke PlayerGui.
StarterPlayerScriptsPlayer.PlayerScriptsSkrip umum untuk klien. Misalnya, jika Anda ingin membuat efek khusus di klien ketika kondisi tertentu terpenuhi, Anda dapat menempatkan skrip lokal dalam 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.
ReplicatedFirstIsi 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 obrolan teks dalam permainan, seperti mengelola saluran, menghias pesan, menyaring teks, membuat perintah, dan mengembangkan antarmuka obrolan kustom.

Untuk informasi lebih lanjut, lihat keterangan obrolan teks.

VoiceChatService

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

Untuk informasi lebih lanjut, lihat obrolan 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 terbaik untuk menyimpan bagian-bagian dari lingkungan, seperti lobi atau arena pertempuran.
  • Model digunakan untuk seperangkat objek, seperti set meja yang mencakup kursi, meja, dan lampu. Untuk mengorganisir set yang lebih kompleks, susun model di dalam model.

Anda selalu harus memberi nama pada objek Anda dengan deskriptif. Ini membuatnya mudah untuk menemukan dan memodifikasi objek nanti jika diperlukan.

Jendela Explorer dengan demonstrasi struktur organisasi folder.
Objek yang diorganisir menjadi Folders
Jendela Explorer dengan demonstrasi struktur organisasi model di beberapa layanan.
Bermacam model "peta" untuk beralih 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.