mcpField
R
roblox-monetization

roblox-monetization

github.com/sentinelcore開発29573 回インストール35 週間前に更新
リポジトリ

roblox-monetization について

Roblox の開発者やデザイナー向けに、ゲーム内購入、アバターアイテム、Premium Payouts、DevEx による正規の Robux 収益化を解説します。Creator Hub の設定から Lua によるサーバー側の購入処理や信頼性確保まで扱います。

主な機能

  1. 01Game Pass の設定と所有権確認
  2. 02Developer Product の繰り返し購入処理
  3. 03UGC アイテムの公開手順
  4. 04Premium Payout と DevEx の案内
  5. 05サーバー側の購入安全対策

活用シーン

  1. 01Roblox の体験に恒久特典やアクセス権を追加
  2. 02繰り返し購入でコインやブーストを付与
  3. 03UGC 販売と Premium 収益を計画
  4. 04領収書の再試行に対応し購入を安全に保存

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sentinelcore/roblox-skills --skill roblox-monetization

インストール後、Claude Code で/roblox-monetizationを入力して読み込まれたか確認します。

詳細

Roblox マネタイゼーション

概要

Roblox のマネタイゼーションシステムを通じて合法的に Robux を稼ぐためのエンドツーエンドガイドです。開発者とデザイナーの両方向けに、ダッシュボードの設定と Lua スクリプトについて解説します。

クイックリファレンス

システム用途繰り返し購入?最低価格
ゲームパス永続的な特典/アクセス不可 (買い切り)1 Robux
開発者プロダクト消耗品、通貨、ブースト可 (無制限)1 Robux
UGC アイテムアバターマーケットプレイスでの販売該当なし1 Robux
Premium ペイアウトプレイ時間に応じた受動的収入自動設定不要

1. ゲームパス

永続的な特典を付与する買い切りの購入です。プレイヤーはゲームごと、パスごとに 1 回支払います。

ダッシュボードでの設定
  1. create.roblox.com → 体験を選択 → Monetization → Passes
  2. Create a Pass → 512×512 の PNG アイコンをアップロードし、名前、説明、価格を設定
  3. 保存 → Pass ID を控える
サーバースクリプト
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")

local PASS_ID = 000000 -- your Pass ID

-- Check ownership on join
Players.PlayerAdded:Connect(function(player)
    local success, hasPass = pcall(function()
        return MarketplaceService:UserOwnsGamePassAsync(player.UserId, PASS_ID)
    end)
    if success and hasPass then
        -- grant perk
    end
end)

-- Prompt purchase (call from server)
local function promptPass(player)
    MarketplaceService:PromptGamePassPurchase(player, PASS_ID)
end

-- Grant immediately after purchase
MarketplaceService.PromptGamePassPurchaseFinished:Connect(function(player, passId, purchased)
    if purchased and passId == PASS_ID then
        -- grant perk
    end
end)

常にサーバー上 (Script) で実行し、LocalScript は決して使用しないでください — クライアント側の所有権チェックは偽装される可能性があります。


2. 開発者プロダクト

繰り返し購入できるプロダクトです — プレイヤーは無制限に購入できます。コイン、ポーション、ブースト、ゲーム内通貨に使用します。

ダッシュボードでの設定
  1. Creator Hub → 体験 → Monetization → Developer Products
  2. Create a Developer Product → 名前、説明、アイコン、価格を設定
  3. Product ID を控える
サーバースクリプト
local MarketplaceService = game:GetService("MarketplaceService")
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")

local PRODUCT_ID = 000000 -- your Product ID
local coinStore = DataStoreService:GetDataStore("PlayerCoins")

local function processReceipt(receiptInfo)
    local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
    if not player then
        return Enum.ProductPurchaseDecision.NotProcessedYet
    end

    if receiptInfo.ProductId == PRODUCT_ID then
        -- Persist to DataStore FIRST — if server crashes after this line, coins are safe
        local ok, err = pcall(function()
            coinStore:UpdateAsync(tostring(player.UserId), function(current)
                return (current or 0) + 100
            end)
        end)
        if not ok then
            warn("DataStore failed:", err)
            return Enum.ProductPurchaseDecision.NotProcessedYet -- Roblox will retry
        end
        -- Now safe to update in-memory value (leaderstats, etc.)
    end

    return Enum.ProductPurchaseDecision.PurchaseGranted
end

MarketplaceService.ProcessReceipt = processReceipt

-- Prompt purchase
local function promptProduct(player)
    MarketplaceService:PromptProductPurchase(player, PRODUCT_ID)
end

ProcessReceipt に関する重要なルール:

  • PurchaseGranted または NotProcessedYet を必ず返してください — 決してエラーを黙って無視しないでください
  • 返す前に DataStore に永続化してください — クラッシュすると損失が発生する可能性があります
  • DataStore の失敗時は NotProcessedYet を返し、Roblox がレシートを再試行できるようにしてください
  • サーバーごとに ProcessReceipt ハンドラーは 1 つだけ許可されます。すべてのプロダクト ID をその中にまとめてください
  • Roblox は同じ購入に対して ProcessReceipt を複数回呼び出す可能性があります — 二重付与が懸念される場合は、重複排除キーとして receiptInfo.PurchaseId を使用してください

3. UGC / アバターアイテム

Roblox マーケットプレイスで衣類、アクセサリー、バンドルを販売します。

要件
  • UGC プログラムへのアクセス — roblox.com/create/ugc で申請
  • アカウントで本人確認が完了していること
  • 3D メッシュアイテムには Roblox Studio または Blender
ワークフロー
  1. アイテムをデザインする (Roblox メッシュ/テクスチャ仕様に従ってください)
  2. Creator Hub → Avatar Items → Create → アップロードし、カテゴリ、タグ、価格を設定
  3. 審査に提出 (通常 1〜3 営業日)
  4. アイテムが公開され、マーケットプレイスに表示されます
収益率
アイテム種別クリエイターの取り分
衣類 (Tシャツ、シャツ、パンツ)売上の 70%
UGC アクセサリー30% (Premium サブスクリプションで 40%)
再販可能な Limited UGC最大 70%

4. 購入状態をクライアントに伝える

サーバー側でプロダクトを付与した後、RemoteEvent を介してクライアントに通知し、UI が更新できるようにします (ブーストタイマーの表示、ボタンのアンロックなど):

-- Inside ProcessReceipt, after DataStore save succeeds
local NotifyClient = game:GetService("ReplicatedStorage").Remotes.PurchaseGranted
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if player then
    NotifyClient:FireClient(player, { productId = receiptInfo.ProductId })
end

5. Premium ペイアウト

Roblox Premium サブスクライバーがあなたのゲームで過ごした時間に応じた受動的な Robux です。設定は不要です。

  • Roblox は Premium メンバーのエンゲージメントを自動的に追跡します
  • Premium のプレイ時間に比例して、Premium ペイアウトプールの取り分を毎月受け取ります
  • 収益の確認: Creator Hub → Analytics → Monetization → Premium Payouts
Premium ペイアウトを最大化する
  • より長いセッションループを構築する (進行、ストーリー、リプレイ性)
  • Premium 限定のコスメティックやボーナスを追加して Premium プレイヤーを引き付ける

DevEx: Robux → リアルマネー

資格要件:

  • 30,000 以上の Robux を獲得していること(購入した Robux はカウントされません)
  • 13 歳以上であること
  • Roblox アカウントでメールアドレスを認証済みであること
  • 有効なアカウント違反がないこと
  • Roblox Premium サブスクリプションに加入していること

手順:

  1. Creator Hub → DevEx(Developer Exchange)
  2. 交換リクエストを送信
  3. Roblox がリクエストを審査(通常 1〜2 週間)
  4. Tipalti を通じて、およそ Robux 1 あたり $0.0035(35,000 Robux で約 $122)で支払われます

Tipalti: 最初の支払いの前に、別途 Tipalti アカウントを作成して認証する必要があります。遅延を避けるため、早めに設定しておきましょう。


よくある間違い

間違い修正方法
LocalScript での所有権チェックサーバーの Script に移動してください — クライアント側のチェックは悪用される可能性があります
ProcessReceipt がエラーをスローするロジックを pcall でラップしてください。常に決定を表す enum を返すようにします
購入を DataStore に保存していないクラッシュするとプレイヤーがアイテムを失います — PurchaseGranted を返す前に永続化してください
複数の ProcessReceipt ハンドラーサーバーごとに 1 つだけ許可されています — すべての製品ロジックを 1 つの関数にまとめてください
レシートの再試行で二重付与receiptInfo.PurchaseId を DataStore のキーとして使用し、処理済みのレシートを検出してください
プログラムへのアクセスなしで UGC を販売先に UGC プログラムに申請してください。そうしないとアップロードが拒否されます
プラットフォームの最低価格を下回る価格ほとんどのアイテム種別で最低価格は 1 Robux です
十分な Robux があるのに DevEx がブロックされるすべての資格を確認してください: 13 歳以上、認証済みメールアドレス、違反なし、Premium サブスクリプション、(購入ではなく)獲得した Robux

コメント