ModuleScript

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Un ModuleScript es un tipo de script que devuelve exactamente un valor por una llamada a require() . ModuleScripts ejecutar una vez y solo una vez por entorno Luau y devolver el mismo valor exacto para llamadas posteriores a require() .

ModuleScripts son objetos esenciales para adherir al principio de "No te repitas a ti mismo" (DRY), lo que te permite escribir una función solo una vez y utilizarla en todas partes.Tener múltiples copias de una función es problemático cuando necesitas cambiar su comportamiento, por lo que deberías definir funciones o grupos de funciones en y tener tus llamadas y en esos módulos.

Es importante saber que los valores de devolución de ModuleScripts son independientes con respecto a Scripts y LocalScripts , y otros entornos como la barra de comandos Command Bar.Usar require() en un ModuleScript en un LocalScript ejecutará el código en el cliente, incluso si un Script ya lo hizo en el servidor.Por lo tanto, tenga cuidado si está usando un ModuleScript en el cliente y el servidor al mismo tiempo, o lo está depurando dentro de Studio.

Tenga en cuenta que la primera llamada a require() no producirá (se detendrá) a menos que la llamada ModuleScript produzca (llame a task.wait() por ejemplo), en cuyo caso el hilo actual que llamó require() producirá hasta que el ModuleScript devuelva un valor.Si un ModuleScript intenta require() a otro ModuleScript que a su vez intenta require() a él, el hilo se colgará y nunca se detendrá (las llamadas cíclicas require() no generan errores).¡Tenga en cuenta las dependencias de su módulo en proyectos grandes!

Si un ModuleScript se sube a Roblox y el módulo raíz tiene el nombre establecido en MainModule , se puede subir como modelo y se requiere usando require() con la ID de activo del aplicación de modelado.Entonces se puede cargar en tu experiencia, aunque esta lógica solo funciona en el servidor y fallará en el cliente.Si otros usuarios quieren usar el módulo, debe ser público.

Muestras de código

El ejemplo de código comienza creando una variable local que contiene una tabla vacía.Luego llena la tabla con dos funciones de marcador de posición, y luego finalmente devuelve la tabla.Usar este código en un ModuleScript haría que la tabla my_functions esté disponible para cualquier script, local script o otro ModuleScript.

Ejemplo de script de módulo simple

-- Las tablas almacenan múltiples valores en una variable
local MyFunctions = {}
-- Añade algunas funciones a la tabla
function MyFunctions.foo()
print("Foo!")
end
function MyFunctions.bar()
print("Bar!")
end
-- ModuleScripts deben devolver exactamente un valor
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()

Propiedades

Source

Leer paralelo
Seguridad del plugin
Seguridad de OpenCloud

El código que se debe ejecutar.

Si quieres leer o modificar un script que el usuario tiene abierto, considera usar el ScriptEditorService para interactuar con el editor de scripts en lugar.

Métodos

Eventos