ModuleScript

Tampilkan yang Tidak Digunakan Lagi

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

A ModuleScript adalah jenis skrip yang mengembalikan persis satu nilai dengan panggilan ke require() . ModuleScripts jalankan sekali dan hanya sekali per lingkungan Luau dan kembalikan nilai yang sama persis untuk panggilan berikutnya ke require() .

ModuleScripts adalah objek penting untuk mematuhi prinsip "Jangan Ulangi Diri Anda" (DRY), memungkinkan Anda menulis fungsi hanya sekali dan menggunakannya di mana-mana.Memiliki beberapa salinan fungsi adalah bermasalah ketika Anda perlu mengubah perilaku mereka, jadi Anda harus mendefinisikan fungsi atau kelompok fungsi di dan memiliki panggilan dan pada modul tersebut.

Penting untuk mengetahui bahwa nilai pengembalian dari ModuleScripts independen terhadap Scripts dan LocalScripts , dan lingkungan lain seperti Bilah Perintah .Menggunakan require() pada ModuleScript di dalam LocalScript akan menjalankan kode di klien, bahkan jika Script melakukannya sudah ada di server.Oleh karena itu, berhati-hatilah jika Anda menggunakan ModuleScript pada klien dan server pada saat yang sama, atau mendepurinya dalam Studio.

Perhatikan bahwa panggilan pertama ke require() tidak akan menghasilkan (berhenti) kecuali jika ModuleScript menghasilkan (panggilan task.wait() misalnya), dalam hal ini thread saat ini yang memanggil require() akan menghasilkan sampai ModuleScript kembali nilai.Jika sebuah ModuleScript mencoba untuk require() lain ModuleScript yang pada gilirannya mencoba untuk require() itu, thread akan menggantung dan tidak pernah berhenti (panggilan siklik require() tidak menghasilkan kesalahan).Perhatikan dependensi modul Anda di proyek besar!

Jika ModuleScript diunggah ke Roblox dan modul akar memiliki nama diatur ke MainModule , itu dapat diunggah sebagai model dan diperlukan menggunakan require() dengan ID aset model.Kemudian dapat dimuat ke dalam pengalaman Anda, meskipun logika ini hanya berfungsi di server dan akan gagal pada klien.Jika pengguna lain ingin menggunakan modul, itu harus publik.

Contoh Kode

The code sample starts by creating a local variable holding an empty table. It then fills the table with two placeholder functions, and then finally returns the table. Using this code in a ModuleScript would make the my_functions table (and thus any functions, tables or other values within it) available to any Script, LocalScript or other ModuleScript.

Simple ModuleScript Example

-- Tables store multiple values in one variable
local MyFunctions = {}
-- Add a few functions to the table
function MyFunctions.foo()
print("Foo!")
end
function MyFunctions.bar()
print("Bar!")
end
-- ModuleScripts must return exactly one value
return MyFunctions

This code sample shows how to use the require function on a ModuleScript, then use the value that it returned. See the "Simple ModuleScript Example" for the code to go with this sample.

Simple ModuleScript Usage

-- The require function is provided a ModuleScript, then runs
-- the code, waiting until it returns a singular value.
local MyFunctions = require(script.Parent.MyFunctions)
-- These are some dummy functions defined in another code sample
MyFunctions.foo()
MyFunctions.bar()

Properti

Source

Baca Paralel
Keamanan Plugin
Keamanan OpenCloud

Kode yang akan dieksekusi.

Jika Anda ingin membaca atau memodifikasi skrip yang dibuka oleh pengguna, pertimbangkan untuk menggunakan ScriptEditorService untuk berinteraksi dengan Editor Skrip sebagai gantinya.

Metode

Acara