ModuleScript

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Um ModuleScript é um tipo de script que retorna exatamente um valor por meio de uma chamada para require() . execute uma vez e apenas uma vez por ambiente Luau e retorne o mesmo valor exato para chamadas subsequentes a .

ModuleScripts são objetos essenciais para aderir ao princípio "Não Repita-se" (DRY), permitindo que você escreva uma função apenas uma vez e a use em todos os lugares.Ter várias cópias de uma função é problemático quando você precisa alterar seu comportamento, então você deve definir funções ou grupos de funções em ModuleScripts e ter seu Scripts e LocalScripts chamada require() em esses módulos.

É importante saber que os valores de retorno de ModuleScripts são independentes em relação a Scripts e LocalScripts, e outros ambientes como o Bar de Comando .Usar require() em um ModuleScript em um LocalScript executará o código no cliente, mesmo que um Script já tenha feito isso no servidor.Portanto, tenha cuidado se você estiver usando um ModuleScript no cliente e no servidor ao mesmo tempo, ou debugando-o dentro do Studio.

Observe que a primeira chamada para require() não produzirá (pausa) a menos que a ModuleScript produza (chamadas task.wait() por exemplo), caso em que o subprocesso atual que chamou require() renderizará até que o ModuleScript retorne um valor.Se um ModuleScript estiver tentando require() outro ModuleScript que, por sua vez, tenta require() isso, o thread vai pendurar e nunca parar (chamadas cíclicas require() não geram erros).Tenha em mente suas dependências de módulo em grandes projetos!

Se um ModuleScript for carregado no Roblox e o módulo raiz tiver o nome definido como MainModule , ele pode ser carregado como modelo e exigido usando require() com o ID de recurso do modelo.Então, ele pode ser carregado na sua experiência, embora essa lógica só funcione no servidor e errote no cliente.Se outros usuários quiserem usar o módulo, ele deve ser público.

Amostras de código

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()

Propriedades

Source

Ler Parallel
Segurança do plugin
Segurança OpenCloud

O código a ser executado.

Se você quiser ler ou modificar um script que o usuário tem aberto, considere usar o ScriptEditorService para interagir com o Editor de Scripts em vez disso.

Métodos

Eventos