ModuleScript¶
BETA Feature
ModuleScripts are currently in BETA. As of right now, you aren't able to run functions from ModuleScripts. However this is a planned feature in the near future.
Current Issues:
You can't call functions that are imported from a ModuleScript
You can't edit data such as tables that are imported from a ModuleScript
ModuleScripts are specialized scripts to hold data that can be accessed by other scripts using the require()
function.
It is important to define and return a table in a ModuleScript. When the place starts, the server and the client will run the ModuleScript once and store the result for other scripts to retrieve with require()
.
When trying to require a specific module script, put the path to the ModuleScript in the require function.
Inherits BaseScript
Example
ModuleScript named Structures
located in game["ScriptService"]
local Structures = {
["Tower"] = {
["Description"] = "This tower will obliterate any enemies on the way to the castle!",
["Price"] = 95,
["AttackDamage"] = 5
}
}
-- Make sure to return the table to be able to access it in other scripts!
return Structures
In a Script/LocalScript:
wait(0.1) -- The ModuleScript might only start running after this Script/LocalScript began running and thus this wait() is necessary
local Structures = require(game["ScriptService"]["Structures"])
print(Structures["Tower"]["Description"]) -- Prints out "This tower will obliterate any enemies on the way to the castle!" like how it was defined in the ModuleScript above.