ScriptとLocalScript

Robloxではプログラムを実行するときにScriptもしくはLocalScriptを選択してプログラムを記述するがそれぞれどのような性質をもち、どのように使いわせすればよいのかをまとめる

一言で説明

Scriptはサーバー上で動き、LocalScriptはクライアントで動く

※クライアント : サーバーと連携しながらゲームを実行する端末/環境のこと

Script

サーバーでLuaコードを実行するために利用する形式。作成時には最初から以下のコードが含まれている。

print("Hello, world")

また、以下の2つの条件を満たすときに記述されたコードが実行される

  • Disableプロパティがfalseに設定
  • Script本体がServerScriptServiceもしくはWorkspaceの配下に配置

Scriptは以下の条件で実行が終了/中止される

  • Scriptに記述された処理がすべて完了
  • Scriptの実行途中でエラーが発生
  • Scriptが配置されているパーツが破壊される(※Parentをnilにした場合は中止されない)

Scriptはサーバー内のオブジェクトやプロパティやイベントにアクセスできる。

Scriptの利用例

  • プレイヤーにバッジを付与する
  • ユーザーデータを保存する
  • 有料アイテムを販売する

LocalScript

クライアントでLuaコードを実行するために利用する形式。Scriptと同様作成時には以下のコードが含まれる。

print("Hello, world")

LocalScriptはカメラなどのクライアントにのみ存在するオブジェクトにアクセスできる。

LocalScriptは以下の条件を満たすときのみ実行される

  • LocalScriptがプレイヤーのBackpack, character, PlayerGui, PlayerScripts, ReplicatedFirstの配下に配置

LocalScriptの使用例

  • プレイヤーの入力を検知する
  • カメラの挙動を変える

Script, LocalScriptのRobloxStudio上での見た目

RobloxStudio上ではScriptはメモのようなアイコン、LocalScriptはメモに人が書いてあるようなアイコンになっている