只有服務器上的內容才可存取的容器。從 LocalScripts 下來的對象將不會重複到客戶伺服器,並且將無法從 Class.LocalScript|LocalScripts 存取。
ServerStorage 是服務,因此它只能使用 DataModel.GetService 方法來存取。
通過將大型對象,例如地圖,存儲在 ServerStorage 中,直到需要時,網路交通不會使用傳輸這些對象給客戶,當他們加入遊戲。
Class.Script|Scripts 將不會在 ServerStorage 與 ModuleScripts 親和時執行,雖然 ServerScriptService 內包含可以存取並執行。建議開發人員使用 0> Class.ServerScriptService0> 來持有 Scripts3> 他們想要執行的�
注意,伺服器的內容僅可由伺服器存取,因此其內容需要在其他地方才會需要被父級 (例如 Workspace )才能存取。需要容器的開發人員應該使用 ReplicatedStorage 而不是 Class.Workspace。
範例程式碼
ServerStorage Map Rotation
local ServerStorage = game:GetService("ServerStorage")
local ROUND_TIME = 5
local map1 = Instance.new("Model")
map1.Name = "Map1"
map1.Parent = ServerStorage
local map2 = Instance.new("Model")
map2.Name = "Map2"
map2.Parent = ServerStorage
local map3 = Instance.new("Model")
map3.Name = "Map3"
map3.Parent = ServerStorage
local maps = { map1, map2, map3 }
local RNG = Random.new()
local currentMap = nil
local lastPick = nil
while true do
print("New map!")
-- remove current map
if currentMap then
currentMap:Destroy()
end
-- pick a map
local randomPick = nil
if #maps > 1 then
repeat
randomPick = RNG:NextInteger(1, #maps)
until randomPick ~= lastPick
lastPick = randomPick
end
-- fetch new map
local map = maps[randomPick]
currentMap = map:Clone()
currentMap.Parent = workspace
task.wait(ROUND_TIME)
end