iT邦幫忙

2026 iThome 鐵人賽

0
Software Development

Roblox Studio AI 協作開發大全系列 第 33 篇

第 33 章:Pass、Developer Product 與 Roblox 官方 Shop

  • 分享至 

  • xImage
  •  

本章把第 32 章的商品假設轉成可檢查的產品設定。Pass 適合一次購買的長期權益;Developer Product 適合可重複購買的消耗品。Roblox 官方 Shop 則是平台用來呈現 Pass 與符合資格 Developer Product 的商品介面。

本章使用 placeholder Product ID。不要把 0 或範例 ID 當成真實商品,也不要由 Assistant 自動上架商品。

本章目標

  • 規劃 ExplorerPass 與 CrystalBundleSmall。
  • 建立 ReplicatedStorage.Config.MonetizationConfig。
  • 使用 MarketplaceService 取得商品資訊與開啟購買 prompt。
  • 理解官方 Shop 的分類、listed/unlisted 與入口。
  • 維持 client 提出購買意圖、server 決定遊戲權益的邊界。

Context Pack

官方文件查核日期:2026-07-22。

官方文件指出,Pass 是一次性特殊權益,Developer Product 可重複購買。建立商品前,experience 必須已發布且可在 Roblox 存取。官方 Shop 會顯示 Pass 與符合資格的 Developer Product;它是探索介面,不會替你完成遊戲內交付。

開場情境

本章使用兩個教學商品:

ExplorerPass
Type: Pass
Effect: cosmetic explorer title + optional trail

CrystalBundleSmall
Type: DeveloperProduct
Effect: grant 100 Crystals after ProcessReceipt

價格不寫死在程式或書稿。UI 應從 Roblox 商品資訊讀取目前玩家看到的名稱與價格。

第一個 Prompt

【Ch33 主任務|建立商品原型】
請為 AI Adventure Island 建立平台商品的 prototype 結構,但不要建立真實商品、不要發布、不要提示玩家付款。

建立:
1. ReplicatedStorage.Config.MonetizationConfig ModuleScript。
2. ExplorerPass,類型為 Pass,ProductId = 0,標註 MUST_REPLACE。
3. CrystalBundleSmall,類型為 DeveloperProduct,ProductId = 0,RewardCrystals = 100,標註 MUST_REPLACE。
4. StarterGui.AdventureHUD.MonetizationPanel,包含兩個商品按鈕與狀態文字。
5. LocalScript 使用 MarketplaceService:GetProductInfo 讀取平台名稱與價格。
6. Pass 按鈕使用 PromptGamePassPurchase。
7. Developer Product 按鈕使用 PromptProductPurchase。

安全限制:
- ProductId 為 0 時停用購買按鈕並顯示「尚未設定商品」。
- client 不得發放 Pass 權益、水晶或任何獎勵。
- client 不得傳送價格或獎勵數量。
- 不要加入 ProcessReceipt;下一章會集中處理。
- 不要啟用 global Shop button 或修改 Creator Hub 設定。

Assistant 可能產生的結果

ReplicatedStorage
└── Config
    └── MonetizationConfig

StarterGui
└── AdventureHUD
    └── MonetizationPanel
        ├── ExplorerPassButton
        ├── CrystalBundleButton
        ├── MonetizationStatusLabel
        └── MonetizationHUDController

設定檔骨架:

return {
	ExplorerPass = {
		ProductType = "Pass",
		ProductId = 0, -- MUST_REPLACE
	},
	CrystalBundleSmall = {
		ProductType = "DeveloperProduct",
		ProductId = 0, -- MUST_REPLACE
		RewardCrystals = 100,
	},
}

元件拆解

GetProductInfo

不要假設所有玩家看到相同價格。UI 顯示平台商品名稱與價格時,應呼叫 GetProductInfo() 並用 pcall 處理失敗。Pass 要指定正確的 InfoType。

Purchase Prompt

購買 prompt 只是平台 UI。prompt 關閉或 finished event 不等於 Developer Product 已安全交付。Developer Product 必須由下一章唯一的 ProcessReceipt callback 處理。

Roblox 官方 Shop

Creator Hub 的 Monetization > Shop 可以整理分類與 Developer Product 的 listed 狀態。Pass 會列在 Shop;Developer Product 即使 unlisted,仍可透過自製遊戲內流程購買。官方 Shop 也可從遊戲選單進入,global Shop button 則是另一個可選入口。

Pass 權益

Pass 可以用 UserOwnsGamePassAsync() 查詢。購買完成事件可觸發重新查詢或更新當次 session,但長期權益仍應以平台 ownership 為準,不要把 client boolean 當證明。

Playtest

  1. Product ID 為 0 時,所有付費按鈕是否停用?
  2. GetProductInfo() 失敗時是否顯示可理解訊息?
  3. UI 是否沒有寫死價格?
  4. LocalScript 是否完全沒有增加 Crystals?
  5. Developer Product 是否尚未被錯誤地用 prompt finished event 交付?
  6. 是否清楚標示哪些 Creator Hub 步驟必須由人類完成?

修正 Prompt

【Ch33 修正 1|移除 Client 商品交付】
目前商品 UI 會在 PromptProductPurchaseFinished 後直接增加 Crystals。

請只修正 client 商品 UI:
- 移除所有獎勵發放與玩家資料修改。
- 保留 GetProductInfo 與購買 prompt。
- 顯示「正在由伺服器確認交易」。
- Developer Product 的交付留給 server-side ProcessReceipt。
- 不要建立第二個 receipt handler。

工程整理

  • Product ID 集中在 MonetizationConfig。
  • UI 只顯示資訊與開啟平台 prompt。
  • Pass、Developer Product 使用不同型別與交付規則。
  • 官方 Shop 設定不由遊戲 Script 自動改動。

本章總結

玩家按下 Buy 不代表商品已交付。下一章會建立唯一的 ProcessReceipt 入口,處理重試、重複 receipt、未知商品與資料保存失敗。


關於 Wolke

嗨!我是 Wolke,曾任 Google Developer Expert(GDE,2019–2023) 與 LINE API Expert。

我熱衷於研究 AI Agent、n8n 自動化工作流與全端開發架構,致力於將 AI 技術轉化為真正能落地的生產力工具。

如果你喜歡這篇文章,歡迎透過以下方式與我交流:

📚 技術著作
《實用的 Gemini API 開發點子書》:帶你運用 Gemini App、Google AI Studio、Gemini CLI 與 Antigravity IDE,打造 AI Agent 與實用產品。

📝 技術部落格
歡迎追蹤我的 Medium,我會持續分享 Agentic Automation、架構設計與實際開發的踩坑心得。

🎤 技術講座與合作
我持續受邀至技術社群及研討會,分享 AI Agent、自動化工作流、DevOps 與全端開發實戰。

我曾於 DevOpsDays Taipei 2026 主講「不再只是寫腳本!讓 AI 代理人成為你的 SRE 最佳夥伴」工作坊。

如果你的企業、社群或學校正在尋找相關主題講者,歡迎私訊聯繫,洽談講座與工作坊合作!

🎮 我的 Roblox 遊戲

🎁 免費贈送 OpenAI 或 Claude AI 額度

為了鼓勵大家實際動手打造自己的 Roblox 體驗,我每個月會開放:

  • 10 個名額
  • 每人 50 點 AI 額度
  • 名額送完為止

參加方式:

  1. 訂閱本系列文章。
  2. 分享任一篇系列文章。
  3. 私訊分享截圖及你的 AI 帳號 Email。

確認完成後,我會邀請你加入並設定 50 點額度。名額有限,歡迎把握機會!


上一篇
第 32 章:盈利不是加一個購買按鈕
系列文
Roblox Studio AI 協作開發大全 共 33 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言