RobloxStudioでModuleScriptの基本を確認するメモになります。
はじめに
初めてRobloxStudioでゲーム作成する場合は下記の記事が参考になります。今回は、便利なModuleScriptの基本を確認していきます。
製作開始
簡単なサンプルを作成して確認していきます。まずは「ServerScriptService」配下に「Script」を追加します。

Scriptの中身は下記に変更します。
local function foo()
print("Foo!")
end
foo()
実行するとコンソールに下記の様に出力されます。

これをModuleScriptを利用して実装してみます。「ServerScriptService」配下に「ModuleScript」を追加します。

「ModuleScript」の中身を下記に変更します。
local module = {}
function module.foo()
print("Foo!")
end
return module
「Script」の中身を下記に変更します。
local Module = require(script.Parent.ModuleScript) Module.foo()
ModuleScript内の関数、値は他のスクリプトから利用することが出来ます。実行して同じように出力されたらOKです。

下記が公式リファレンスです。
利用例
もう一つ例を見ていきます。下記の様にModuleScriptの中身を変更します。指定した色のブロックが出現します。
local block = {
["Red"] = Color3.new(1,0,0),
["Green"] = Color3.new(0,1,0),
["Blue"] = Color3.new(0,0,1)
}
function block.spawn(color)
if block[color] then
local newblock = Instance.new("Part")
newblock.Color = block[color]
newblock.Parent = workspace
end
end
return block
Scriptで下記の様に実行します。
local Block = require(script.Parent.ModuleScript)
Block.spawn("Red")
ブロックが生成されます。

例えば、お店が複数あり販売する商品が異なる場合、ModuleScriptで全ての商品を管理して、お店のスクリプトで販売する商品を制御すると商品の管理がしやすくなりますね。

