Roblox ユーザーがゲームに参加すると、Player として DataModel に表示されます。この Player オブジェクトは、ユーザー名、友達リスト、保存された アバターキャラクター など、ゲーム間で普遍的なユーザーに関する情報を含んでいます。また、ゲームへの参加と退出の間にユーザーの ライフサイクル に影響を与えるプロパティ、メソッド、イベントも含まれています。各 Player オブジェクトは、ユーザーの体験をカスタマイズするために使用できる4つの重要な コンテナ を親として持っています:Backpack、StarterGear、PlayerGui、および PlayerScripts。
各 Player は、現在のエクスペリエンス内でプレイヤーのドメインスコープされたアイデンティティを表す User 値である Player.User プロパティも公開しています。ドメインスコープされたユーザー ID と User タイプに関するユーザー識別方法の詳細については、ユーザーとドメインスコープされたユーザー IDを参照してください。

ライフサイクル
Players サービスには、ゲーム内のすべての Player インスタンスが含まれています。クライアント側とサーバー側のスクリプトの両方が、Players.PlayerAdded および Players.PlayerRemoved イベントに接続して Player オブジェクトのライフサイクルに応じたアクションを実行できます。スクリプトはまた、キャラクターが出現したり消えたりする際のゲームプレイ関連のアクションを実行するために、Player.CharacterAdded および Player.CharacterRemoving イベントに接続することもできます。
ユーザー参加
ユーザークライアントがゲームに接続すると、Players.PlayerAdded イベントが発火し、参加するユーザーの Player オブジェクトを渡します。このオブジェクトは、データストアからの ユーザーデータ の読み込みやプレイヤーの チーム への割り当てなど、様々な目的で使用できます。
例えば、ユーザーがゲームに参加したときにデータを読み込むには、Script 内の PlayerAdded イベントを利用して、ユーザー ID の下に保存されたユーザーデータを取得します。
ServerScriptService のスクリプト
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerAdded:Connect(function(player)
local userId = player.UserId
-- データストアキーを読み取る
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- currentData を使ってさらなるアクションを実行
end)
キャラクター生成
デフォルトでは、ユーザーの Player.Character モデルは、そのプラットフォームアバターを表し、Players.CharacterAutoLoads は true に設定されています。つまり、ユーザーがゲームに参加すると、自動的にキャラクターモデルが生成されます。
ユーザーの Player.Character が生成されると、Scripts および LocalScripts が StarterCharacterScripts からキャラクターモデルにクローンされ、Player.CharacterAdded イベントが発火します。このイベントは新しいキャラクターモデルをリスナーに渡し、キャラクターの Humanoid オブジェクトを見つけてその動作を変更するために使用できます。例えば、Humanoid:ApplyDescription() を使用してアバターのアウトフィットを変更できます。
キャラクター消失
プレイヤーの Humanoid が死亡すると、サーバーは Players.RespawnTime で指定された時間の後に自動的にキャラクターモデルを削除します。さらに、Player.CharacterRemoving イベントを使用して、他のオブジェクトをリセットしたり、キャラクターに関連するデータを更新したりすることができます。
ユーザー退出
ユーザーがゲームから切断すると、サーバーは Players サービス内の関連する Player オブジェクトを破棄します。このとき、Players.PlayerRemoving イベントが発火し、切断したユーザーの Player オブジェクトを渡します。この機能は、ユーザーデータの保存、スコアボードからのプレイヤースタッツの削除、またはゲーム内のプレイヤー作成モデルの破壊など、さまざまな目的に使用できます。
以下の例の Script は PlayerRemoving イベントにリッスンし、ユーザー ID の下のデータストアにユーザーデータを保存しようとします。
ServerScriptService のスクリプト
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerRemoving:Connect(function(player)
local userId = player.UserId
-- ゲーム内のプレイヤーのデータ状態を取得
local currentData = getCurrentData(player)
-- データストアに保存
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)
コンテナ
各 Player オブジェクトは、ユーザーのクライアントを表すいくつかの重要なコンテナを格納します:Backpack、StarterGear、PlayerGui、および PlayerScripts。ゲーム実行時に、"編集" データモデル内のいくつかのコンテナは、これらの Player コンテナにコンテンツをコピーします。具体的には、StarterGui から PlayerGui、StarterPack から Backpack、および StarterPlayerScripts から PlayerScripts にコピーされます。

Backpack 内の Tool オブジェクトは、プレイヤーのインベントリを構成し、画面下部にアイコンボタンとして表示されます。詳細については ゲーム内ツール を参照してください。
上に示すように、StarterPack の内容およびプレイヤーの StarterGear は、プレイヤーの Character が生成されるときに Backpack にクローンされます。キャラクターが死亡すると、クライアントは Backpack を破棄し、新しいものに置き換えます。
デフォルトの Roblox インベントリ GUI を無効にし、自分のものに置き換えるには、LocalScript 内で StarterGui:SetCoreGuiEnabled() を呼び出します。詳細は デフォルトUIの無効化 を参照してください。
ユーザーの禁止
あなたの体験の中で礼儀正しさと公正なプレイを確保するために、ルールやコミュニティガイドラインに違反したユーザーを禁止することができます。禁止期間、禁止メッセージを変更したり、潜在的な別のアカウントに禁止を拡張することもできます。この機能を使用する際は、禁止に関する ガイドライン および メッセージ に従う必要があります。
禁止に関していくつかのオプションがあります:
- Creator Hub の各体験ページには 禁止 ダッシュボードがあります。
- エンジン API でのプログラム的使用については Players:BanAsync() を参照してください。
- Open Cloud については、禁止とブロックを参照してください。
デバイス制限
アカウントを禁止するだけでなく、Players:BanAsync() は、その設定フィールド ApplyDeviceBlock を通じて デバイス制限 をサポートしています。この機能によって、ApplyDeviceBlock が true に設定されている場合に、あなたのゲームに現在接続しているユーザーを禁止すると、そのユーザーに関連付けられたデバイスも再参加できなくなります。これにより、禁止逃れへの摩擦が追加されます。禁止されたプレイヤーは同じデバイスから新しいアカウントで直ちにゲームに再参加することはできません。
- デバイス制限は、現在デスクトップ (Windows および macOS) のプレイヤーにのみ適用されます。モバイルデバイスやコンソールには適用されません。
- デバイス制限は、そのデバイスを使用した他のアカウントに禁止として伝播しません。
- 対象ユーザーに対してアンバン API を呼び出すと、関連するデバイス制限が即座に解除され、ユーザーはゲームに再参加できるようになります。
禁止ガイドライン
体験に禁止を実装する際は、次のガイドラインに従ってください:
- 体験のルールは、Roblox の Community Standards および Terms of Use に矛盾しないものでなければなりません。例えば、誰かの性別を理由に排除する体験ルールを作成することはできません。これは、Roblox の差別、侮辱、ヘイトスピーチポリシー に違反します。
- 制作者は、自身の体験ルールをすべてのユーザーがアクセスできる場所に明示する必要があります。
- 制作者は、体験ルールを公平に適用し、特定のユーザーを恣意的にターゲットにしてはなりません。
- ユーザーは、禁止が間違っていたと信じる場合、制作者に直接アピールできます。Roblox はこれらのアピールを仲介しませんが、ユーザーが制作者の体験ルールまたはそのルールの施行が Community Standards に違反したと信じる場合は別です。
- Roblox は、制作者の体験ルールまたは施行が Community Standards に違反していると思われる場合、体験を監視することがあります。
メッセージガイドライン
ユーザーが禁止されると、禁止の長さや理由などの情報を表示するエラーモーダルが表示されます。テキストフィルタリングされたメッセージには、Roblox の Community Standards を満たす限り、アピールや連絡先情報などの追加情報を含めることができます。
たとえば、禁止メッセージでは、ブランド名やプラットフォームに言及することが許可されています:
- "私のグループ/体験ページの Discord に参加してください"
- "Twitter や X でメッセージを送ってください"
このメッセージフィールドには個人情報や直接のリンクの言及は許可されていません。具体的なユーザー名やハンドル、Discord サーバーや X アカウントへの直接リンクを追加することはできません。