A 開発者製品 は、経験通貨、弾薬、またはポーションなど、ユーザーが複数回購入できるアイテムまたは能力です。

開発者製品を作成する
開発者製品を作成するには:
- クリエーションに移動し、エクスペリエンスを選択します。
- 移動する 収益化 > 開発者製品 .
- クリック 開発者製品を作成する 。
- 製品アイコンとして表示する画像をアップロードします。画像が 512x512 ピクセルを超えない、円形の境界の外に重要な詳細を含まない、および .jpg、.png、または .bmp 形式で格納されていることを確認してください。
- 製品の名前と説明を入力します。
- Robux で製品価格を設定します。最低価格は 1 Robux、最高価格は 10億 Robux です。
- クリック 開発者製品を作成 。
開発者製品IDを取得する
スクリプトを使用するには、開スクリプト作成製品 ID が必要です。製品 ID を取得するには:
移動する 収益化 > 開発者製品 。
製品のサムネイルをホバーし、 ⋯ ボタンをクリックし、コンテキストメニューから アセットIDをコピー を選択します。
開発者製品を販売する
開発者製品を販売する前に、適切に販売領収書を処理し、ユーザーに購入した製品を付与していることを確認してください。そのためには、次のことを行う必要があります:
- ProcessReceipt APIを使用して、購入領収書をチェックします。ProcessReceipt 自動的に読み込み、ユーザーがエクスペリエンスの外で製品を購入したことを認識します。
- 各レシートを User ID、Developer Product ID、およびレシートステータスを有効にする
- 領収書のステータスが 開ける の場合、ユーザーに購入した開発者アイテムを付与します。
- 受信を認め、購入済みアイテムが付与されたことを検証するメッセージで ProcessReceipt APIに応答します。
開発者製品を 2 つの方法で販売できます:
エクスペリエンスの内側
エクスペリエンス内で開発者製品を実装して販売するには、MarketplaceService 関数を呼び出します。
GetProductInfo を使用して、開発者製品の名前や価格などの情報を取得し、その製品をユーザーに表示します。たとえば、エクスペリエンスの市場で製品を販売できます。開発者製品の場合、2番目のパラメータは Enum.InfoType.Product でなければなりません。
local MarketplaceService = game:GetService("MarketplaceService")
-- プレースホルダー ID を開発者製品 ID に置き換える
local productId = 000000
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- 製品情報を表示
-- 印刷文を UI コードで置き換えて製品を表示する
print("Developer Product Name: " .. productInfo.Name)
print("Price in Robux: " .. productInfo.PriceInRobux)
print("Description: " .. productInfo.Description)
end
GetDeveloperProductsAsync を使用して、エクスペリエンスに関連するすべての開発者製品を回収します。この機能は、エクスペリエンス内のストアや製品リストの GUI のようなものを構築するために調査してフィルタできる Pages オブジェクトを返します。
local MarketplaceService = game:GetService("MarketplaceService")
local success, developerProducts = pcall(function()
return MarketplaceService:GetDeveloperProductsAsync()
end)
if success and developerProducts then
local firstPage = developerProducts:GetCurrentPage()
for _, developerProduct in firstPage do
-- 印刷文を UI コードで置き換えて製品を表示する
print(field .. ": " .. value)
end
end
PromptProductPurchase を使用して、エクスペリエンス内で製品購入を促す。ユーザーがボタンを押すなどのアクションを実行したり、ベンダーNPCと対話したりするときにこの関数を呼び出すことができます。
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- プレースホルダー ID を開発者製品 ID に置き換える
local productId = 000000
local function promptProductPurchase()
local success, errorMessage = pcall(function()
MarketplaceService:PromptProductPurchase(player, productId)
end)
if success then
print("Purchase prompt shown successfully")
end
end
また、LocalScript 内の機能を組み合わせることもできます。たとえば、ボタンやベンダーNPCのような UI 要素を作成し、GetProductInfo() を使用して既存の開発者製品をその要素に接続し、製品が販売中されているかどうかをチェックし、ユーザーがクリックするたびに購入を促すために PromptProductPurchase() を使用します。
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local button = script.Parent
-- プレースホルダー ID を開発者製品 ID に置き換える
local productId = 000000
-- ユーザーがUIボタンをクリックすると、製品情報を取得する
button.MouseButton1Click:Connect(function()
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- 製品が販売中かどうかをチェックする
if productInfo.IsForSale then
print("This is for sale")
-- 製品購入の促進
MarketplaceService:PromptProductPurchase(player, productId)
else
-- 製品が販売中されていないことを通知する
print("This product is not currently for sale.")
end
else
print("Error retrieving product info: " .. tostring(productInfo))
end
end)
あなたの経験の外部
エクスペリエンス外で開発者製品の購入を有効にするには、ProcessReceipt API で作業する必要があります。ユーザーがエクスペリエンス詳細ページの ストア タブで購入を行った後、エクスペリエンスに入ると購入を確認し、アイテムを授与するには、ProcessReceipt を使用する必要があります。
テストモード
テストモード 機能は、エクスペリエンス外の開発者製品購入をシミュレートして、購入フローを検証するのに役立ちます。外部開発者製品の販売を有効にする前に、テストモードを使用して、ProcessReceipt を正しく実装したかどうかを確認する必要があります。
テストモードで販売する開発者製品は、あなたとグループのメンバーだけが見ることができます。ユーザーには表示されません。
実装をテストするには:
- In the クリエイターハブ , go to マネタイズ > 開発者製品 .
- クリックして ⋮ メニューを選択し、 外部購入設定 を選択します。
- 外部購入設定の ページ で、 テストモードを有効にする をクリック。
- テストモードが有効になったら、 開発者製品ページ に戻り、テストする製品を選択します。
- 基本設定 ページ で、 外部購入を許可する チェックボックスを選択し、変更を保存する。
- エクスペリエンス詳細ページの ストア タブに移動し、販売中売可能にした製品を購入します。
- エクスペリエンスに入り、購入した製品を受け取ったことを確認します。ProcessReceipt の受信ステータスは 閉じた に更新する必要があります。
実装をテストした後、Roblox はテストが成功して完了したことを確認し、エクスペリエンス外の開発者製品を販売するための機能を完全に有効にすることを許可します。
For more information about the ProcessReceipt API and its implementation, see the ProcessReceipt ページ.
外部販売を有効にする
外部販売を有効にするには:
- 外部購入設定 ページに移動します。
- 外部購入 を有効にします。
- 開発者製品 ページに戻り、エクスペリエンス外で販売したい製品を選択します。
- 基本設定 ページ で、 外部購入を許可する チェックボックスを選択し、変更を保存する。
- 製品が現在、エクスペリエンス詳細ページの ストア タブで購入可能であることを確認します。
開発者製品の外部販売を無効にするには、 開発者製品 ページで製品を選択し、 外部購入を許可する チェックボックスをクリアします。
制限
- テストモードで販売されるアイテムは、実際に Robux が必要です。低コストの開発者製品をテストすることをお勧めします。
- テストモードで販売されるアイテムは、あなたまたはグループのメンバーだけが見ることができます。
- 外部に販売するには、開発者製品 は サムネイルを持つ必要があります。
- エクスペリエンスの外で次のものを売ってはならない:
- 有料のランダムアイテム
- 特定の量、時間、場プレース、またはユーザー設定と役割に制限されたアイテム
開発者製品購入を処理する
ユーザーが開発者製品を購入した後、取引を処理して記録する必要があります。これを行うには、Script 内の ServerScriptService 機能を使用して、ProcessReceipt 関数を使用します。
For more information about the ProcessReceipt API and its implementation, see the ProcessReceipt ページ.
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local productFunctions = {}
-- 例: 製品 ID 123123 は、ユーザーをフル体力に戻す
productFunctions[123123] = function(receipt, player)
local character = player.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = humanoid.MaxHealth
-- 購入の成功を示す
return true
end
end
-- 例: 製品 ID 456456 はユーザーに 100 ゴールドコインを授与します
productFunctions[456456] = function(receipt, player)
local leaderstats = player:FindFirstChild("leaderstats")
local gold = leaderstats and leaderstats:FindFirstChild("Gold")
if gold then
gold.Value += 100
return true
end
end
local function processReceipt(receiptInfo)
local userId = receiptInfo.PlayerId
local productId = receiptInfo.ProductId
local player = Players:GetPlayerByUserId(userId)
if player then
-- 開発者製品 ID に関連するハンドラー機能を取得し、実行しようとします
local handler = productFunctions[productId]
local success, result = pcall(handler, receiptInfo, player)
if success then
-- ユーザーはアイテムを受け取りました
-- 取引を確認するために「PurchaseGranted」を返す
return Enum.ProductPurchaseDecision.PurchaseGranted
else
warn("Failed to process receipt:", receiptInfo, result)
end
end
-- ユーザーのアイテムは授与できませんでした
-- 「まだ処理されていない」を返し、次回ユーザーがエクスペリエンスに参加すると再試行します
return Enum.ProductPurchaseDecision.NotProcessedYet
end
-- コールバックを設定する
-- これは 1つのサーバー側のスクリプトでのみ 1回行うことができます
MarketplaceService.ProcessReceipt = processReceipt
開発者製品解析
開発者製品分析を使用して、個々の製品の成功を分析し、傾向を特定し、将来の可能な収益を予測します。
アナリティクスでは、次のことができま解析:
- 選択した期間の上位開発者製品を表示します。
- 時系列グラフで最大 8つのトップセールアイテムを表示し、総売上と純収入を分析します。
- カタログをモニタリングし、売上と純収入でアイテムをソートします。
開発者製品解析にアクセスするには:
- クリエーションに移動し、エクスペリエンスを選択します。
- 移動する 収益化 > 開発者製品 .
- 選択してください 分析 タブ。
