# サーバーとクライアント：ロブロックス（Roblox）のゲームが動くしくみ

> ロブロックス（Roblox）のゲームは、全員が共有する「サーバー」と、プレイヤーそれぞれの「クライアント」で動いています。クライアントで変えたことは、基本的に他の人には見えません。みんなに反映したいことはサーバーで行います。

- URL：https://roblox.minecraft-okinawa.com/basics/server-and-client/
- 更新日：2026-11-13

## 2つの場所

- サーバー：ゲームの「本体」です。全員が同じ世界を見られるのは、サーバーが世界の状態を管理しているからです。
- クライアント：プレイヤーそれぞれのパソコンやスマホです。画面の表示や操作の受け付けを担当します。

## クライアントで変えても、他の人には見えない

LocalScriptでパーツの色を変えても、その変化は自分の画面だけに見えます（他の人の画面では変わりません）。全員に見せたい変化は、サーバーのScriptで行います。

## サーバーとクライアントをつなぐ：RemoteEvent

（Script／置く場所：ServerScriptService）

```lua
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local remote = Instance.new("RemoteEvent")
remote.Name = "SayHello"
remote.Parent = ReplicatedStorage

remote.OnServerEvent:Connect(function(player, message)
	print(player.Name .. "：" .. tostring(message))
end)
```


（LocalScript／置く場所：StarterPlayerScripts）

```lua
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local remote = ReplicatedStorage:WaitForChild("SayHello") :: RemoteEvent

remote:FireServer("こんにちは")
```


クライアントから「こんにちは」を送り、サーバーで受け取って表示します。サーバー側では、1つ目の引数に送ってきたプレイヤーが入ります。

## 大切な注意：クライアントを信用しない

クライアントから送られてきた値は、そのまま信用しないようにします。たとえば「コインを100枚ください」という合図を、確かめずにそのまま実行すると、ずるができてしまいます。点数やアイテムを増やす判断は、必ずサーバーで行いましょう。

## 出典

- [Roblox Creator Documentation](https://create.roblox.com/docs)

執筆：鈴木孝昌（現役プロジェクトマネージャー／プログラミング講師）／運営：沖縄マイクラ部 プログラミングスクール「クロスウェーブ」（https://minecraft-okinawa.com/）