服務器
Roblox 體驗預設為多人遊戲,並使用客戶端伺服器模型運行。Roblox 伺服器 是維持體驗狀態的最終權威,並負責將所有連接的客戶端與伺服器保持同步。

客戶
當體驗運行時,Roblox 會複製你從 Studio 建立並發布的「編輯」數據模型的版本,並將其作為「運行時」數據模型在 Roblox 伺服器上運行。
連接的客戶端也會收到運行時資料模型的副本,並且發生任何初始化玩家的背包(道具欄)或本地使用者介面的情況,例如初始化玩家的背包(庫存)或本地使用者介面。當體驗設為真實時,伺服器最初只會發送最接近客戶端的內容的子集 。客戶端然後渲染3D世界,並開始執行任何適用的腳本。

複製
伺服器不斷更新連接的客戶端,通過稱為 複製 的過程來保持所有內容在服務器和客戶端之間同步,這會同步數據模型、物理模擬和聊天訊息。複製邏輯存在於客戶端和伺服器上,以確保同步。
資料
數據模型變更可能在各種情況下發生,例如當 3D 世界中的某物被創建或 3D 世界的某個屬性發生變更時。這通常發生在伺服器或客戶端的腳本做出需要反映在客戶端-伺服器邊界另一側的變更時。以下圖表顯示了數據複製的常見情況。

從任何客戶端傳送到伺服器的通訊。例如,客戶按下 P 鍵喝下隱形藥水,並告訴服務器讓該玩家的角色對所有其他玩家隱形。

從伺服器傳送到一個特定客戶端的通訊。例如,玩家加入體驗,伺服器會將一組物品填滿該玩家的庫存。

伺服器與所有連線的客戶端之間的通訊。例如,向比賽中的所有參與者顯示倒計時時間。
物理
Roblox 使用剛性身體物理引擎,負責計算 3D 世界中零件的運動和互動。預設情況下,Roblox 中的所有零件都是剛性體,並參與模擬物理學,除非另有說明。您也可以將多個零件組合成裝配,物理引擎會視為單一剛性體。



當需要時,Roblox 會在服務器和客戶端之間複製物理模擬數據。為了幫助模擬性履約,Roblox 可以將裝配的所有權分配給特定的客戶或伺服器。這意味著客戶端或伺服器可以負責模擬該裝配的物理。其他客戶端從擁有客戶端或伺服器那裡收到關於裝配位置和移動的更新。所有權通常會自動發生,但您可以直接分配以獲得精確的響應。
聊天
Roblox 會複製伺服器與客戶端之間的聊天訊息。伺服器負責過濾聊天訊息,並決定複製哪些訊息給其他客戶端。例如,伺服器可能會過濾包含低俗或過長的訊息。