ReplicatedStorage
クライアント(LocalScript)とサーバー(ServerScript)両方でアクセス可能
・クライアントとサーバーの両方で使用するオブジェクトを保存する
・LocalScriptから取得できるため、プレイヤーが UI ボタンを押したときに Toolを取得するなどの用途に適している。ToolRemoteEvent
(クライアント⇄サーバー通信)RemoteFunction
共有する Models
や Assets
など
【使用例】ReplicatedStorage
からソードを取り出す
#LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local tool = ReplicatedStorage:FindFirstChild("Sword") -- ReplicatedStorage から取得
if tool then
local newTool = tool:Clone()
newTool.Parent = game.Players.LocalPlayer.Backpack -- クライアントでもアクセス可能
end
【使用例】クラアント側から送られたものをサーバー側で受け取る
# Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local event = ReplicatedStorage:FindFirstChild("GiveToolEvent")
event.OnServerEvent:Connect(function(player)
print(player.Name .. " requested a tool!")
end)
SeverStorage
クライアント(LocalScript)からはアクセス不可!サーバーのみがアクセス可能(ServerScriptのみ)
・クライアントには見せたくない 重要なデータ を保存する。
・ゲーム開始時に すべてのプレイヤーに送る必要がないデータ を格納する。
・ServerScript
からのみアクセス可能。
大量の Models
や Tools
(必要なときだけロードする)ゲーム内で使用する 機密データ(例: 敵の AI スクリプトやセーブデータ)
【使用例】ServerStorage
からソードをとりだす
#Script
local ServerStorage = game:GetService("ServerStorage")
local tool = ServerStorage:FindFirstChild("Sword") -- クライアントは見えない
if tool then
local newTool = tool:Clone()
newTool.Parent = game.Players:GetPlayerFromCharacter(script.Parent).Backpack
end
まとめ
グラフにまとめると、こんな感じ
特徴 | ReplicatedStorage | ServerStorage |
---|---|---|
アクセス可能 | クライアント&サーバー | サーバーのみ |
使用例 | Tool や RemoteEvent | AI スクリプト、秘密のモデル |
セキュリティ | クライアントも見える(安全でない) | クライアントに見えない(安全) |
適用場面 | 共有データ | 機密データ |
リンク