ゲーム内リーダーボード

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

Roblox には、スコア、通貨、レースの最速タイムなどのユーザー情報を表示できる リーダーボードシステム が組み込まれています。

リーダーボード画面

リーダーボードの設定

リーダーボードを設定し、プレイヤーがゲームに参加したときに追加するには:

  1. ServerScriptService 内に新しい Script を作成し、それに Leaderboard という名前を付けます。

    リーダーボードスクリプトの挿入
  2. スクリプト内で、PlayerAdded イベントに関数を接続します。


    local Players = game:GetService("Players")
    local function leaderboardSetup(player)
    end
    Players.PlayerAdded:Connect(leaderboardSetup)
  3. 接続された関数内で、新しい Folder インスタンスを作成し、それに leaderstats という名前を付け、プレイヤーの親にします。


    local Players = game:GetService("Players")
    local function leaderboardSetup(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player
    end
    Players.PlayerAdded:Connect(leaderboardSetup)

スタッツの追加

リーダーボードは、プレイヤースタッツを保存および表示するために 値タイプオブジェクト を使用します。このスクリプトは、プレイヤーの金を IntValue を使用して表示します。これは整数のプレースホルダーです。

leaderboardSetup() 関数内に、8行目から11行目を追加します:


local Players = game:GetService("Players")
local function leaderboardSetup(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local gold = Instance.new("IntValue")
gold.Name = "Gold"
gold.Value = 0
gold.Parent = leaderstats
end
Players.PlayerAdded:Connect(leaderboardSetup)

これらの行は次のことを実現します。

  1. IntValue インスタンスが作成されます。

  2. インスタンスの Name"Gold" に設定されます。これがリーダーボードに表示されるスタッツの正確な名前です。

    リーダーボードに表示されたスタッツ名 'Gold'
  3. スタッツの初期 Value0 に設定されます。この値は、永続リーダーボードを実装する場合、データストア に保存されている値を含め、任意の値に設定できます。

  4. インスタンスは leaderstats フォルダーに親付けされ、リーダーボードに追加されます。プレイヤーがゲームに参加すると、その名前がボードに表示されます。

    リーダーボードに表示された複数のプレイヤー

スタッツの更新

プレイヤーのリーダーボードスタッツを更新するには、そのスタッツの leaderstats フォルダー内の Value プロパティを変更します。たとえば、次の Script をピックアップオブジェクトに添付して、プレイヤーが収集すると Gold スタッツを増加させることができます。


local Players = game:GetService("Players")
local goldChunk = script.Parent
local function onPartTouch(otherPart)
local partParent = otherPart.Parent
local player = Players:GetPlayerFromCharacter(partParent)
local leaderstats = player and player:FindFirstChild("leaderstats")
local goldStat = leaderstats and leaderstats:FindFirstChild("Gold")
if goldStat then
-- ピックアップを破壊
goldChunk:Destroy()
-- プレイヤーのリーダーボードスタッツを更新
goldStat.Value += 10
end
end
goldChunk.Touched:Connect(onPartTouch)

スタッツの順序

リーダーボード内のスタッツの順序を制御する方法は3つあります:

  • 表示したい順序でスタッツを追加します。
  • スタッツに子 BoolValue を追加して IsPrimary と名付け、その値を true に設定してリーダーボードの最初にスタッツを配置します。
  • スタッツに子 NumberValue を追加して Priority と名付け、その値を整数に設定します。優先度の高い値はリーダーボードの早い位置に表示されます。優先度が指定されていないスタッツはデフォルトの優先度 0 となります。

このコードサンプルは、スタッツに IsPrimary 値を追加する方法を示しています:


local Players = game:GetService("Players")
local function leaderboardSetup(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local gold = Instance.new("IntValue")
gold.Name = "Gold"
gold.Value = 0
gold.Parent = leaderstats
local isPrimary = Instance.new("BoolValue")
isPrimary.Name = "IsPrimary"
isPrimary.Value = true
isPrimary.Parent = gold
end
Players.PlayerAdded:Connect(leaderboardSetup)

リーダーボードを非表示にする

メニュー画面やカットシーンの間などでリーダーボードを非表示にするには、StarterGui または StarterPlayerScripts 内に LocalScript を配置し、StarterGui を呼び出します。


local StarterGui = game:GetService("StarterGui")
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。