📃

Roblox: Script vs LocalScript vs ModuleScript

2024/08/01に公開

Robloxには以下の3種類のスクリプトがあります。

それぞれの用途、具体例、保存先について簡単にまとめます。

Script

サーバー側で実行されるスクリプト。

用途

サーバー側で実行したいロジックなどを記載する。

  • ゲーム全体の管理
  • データベース操作
  • プレイヤー間の通信
  • モジュールの実行

具体例

game.Players.PlayerAdded:Connect(function(player)
    print("Welcome to the game, " .. player.Name .. "!")
end)

保存先

  • ServerScriptService
  • Workspace(ModelやPartの子として)
  • その他サーバー側で実行したい場所

LocalScript

クライアント側(プレイヤーのコンピュータ)で実行されるスクリプト。

用途

  • ユーザーインターフェース操作
  • プレイヤーの入力処理
  • 個々のプレイヤーのカスタマイズ

具体例

local player = game.Players.LocalPlayer
local mouse = Player:GetMouse()

mouse.Button1Down:Connect(function()
    print("Mouse button clicked!")
end)

保存先

  • StarterPlayerScripts
  • StarterGui
  • StarterCharacterScripts
  • その他、クライアント側で実行したい場所

Module Script

再利用可能なコードを作成するためのスクリプト。

用途

他のScriptやLocalScriptから呼び出される関数やデータを定義する。

コードの整理と再利用性を高めるために使用される。

具体例

-- ServerStorage/ModuleScript

local module = {}

function module.add(a, b)
    return a + b
end

return module

これを他スクリプトから呼び出す例:

local module = require(game.ServiceStorage.ModuleScript)

local result = module.add(1, 2)
print(result) -- 3

保存先

  • ServerStorage
  • ServerScriptService
  • StarterPlayerScripts
  • その他、モジュールとして再利用した場所

まとめ

  • Script: サーバー側で実行、ServerScriptServiceやWorkspaceに保存。
  • LocalScript: クライアント側で実行、StarterPlayerScriptsやStarterGuiに保存。
  • ModuleScript: 再利用可能なコード、ServerScriptServiceやStarterPlayerScriptsに保存。

Discussion