A 개발자 제품 은 경험 통화, 탄약 또는 물약과 같이 사용자가 여러 번 구매할 수 있는 아이템이나 능력입니다.

개발자 제품 만들기
개발자 제품 생성:
- 창작물로 이동하고 경험을 선택합니다.
- 수익 창출 > 개발자 제품 으로 이동합니다.
- 클릭 개발자 제품 생성 .
- 제품 아이콘으로 표시할 이미지를 업로드합니다.이미지가 512x512픽셀을 초과하지 않고, 원형 경계 밖에서 중요한 세부 사항을 포함하지 않으며, .jpg , .png 또는 .bmp 형식으로 있는지 확인하십시오.
- 제품의 이름과 설명을 입력하십시오.
- Robux에서 제품 가격을 설정합니다. 최소 가격은 1 Robux이고 최대 가격은 10억 Robux입니다.
- 클릭 개발자 제품 생성 .
개발자 제품 ID 가져오기
스크립팅사용하려면 개발자 제품 ID가 필요합니다. 제품 ID를 얻으려면:
수익 창출으로 이동합니다 개발자 제품.
제품의 썸네일 위로 섬네일이동하고 ⋯ 버튼을 클릭하고 컨텍스트 메뉴에서 자산 ID 복사 를 선택합니다.
개발자 제품 판매
개발자 제품을 판매하기 전에 판매 영수증을 적절하게 처리하고 사용자에게 구매한 제품을 부여하는지 확인하십시오.이렇게 하려면 다음을 수행해야 합니다:
- 구매 영수증을 확인하기 위해 ProcessReceipt API를 사용하십시오.ProcessReceipt 사용자가 경험 외부에서 제품을 구매했음을 자동으로 읽고 인정합니다.
- 각 영수증을 User ID , Developer Product ID 및 영수증 상태에 대해 유효성을 검사합니다.
- 영수증의 상태가 열기 인 경우 사용자에게 구매한 개발자 아이템을 부여합니다.
- 구매한 항목이 부여되었음을 인정하고 유효성을 확인하는 메시지로 ProcessReceipt하여 구매한 항목이 부여되었음을 인정하고 유효성을 확인하십시오.
개발자 제품을 두 가지 방법으로 판매할 수 있습니다:
경험 내부에서
경험 내에서 개발자 제품을 구현하고 판매하려면 MarketplaceService 함수를 호출하십시오.
GetProductInfo를 사용하여 개발자 제품에 대한 정보(이름 및 가격 등)를 검색하고 사용자에게 해당 제품을 표시합니다.예를 들어 경험의 마켓플레이스에서 제품을 판매할 수 있습니다.개발자 제품의 경우 두 번째 매개변수가 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를 사용해야 합니다.사용자가 경험 세부 정보 페이지의 상점 탭에서 구매를 하면 구매를 확인하고 경험에 들어가면 아이템을 제공하기 위해 ProcessReceipt를 사용해야 합니다.
테스트 모드
테스트 모드 기능은 경험 외부에서 개발자 제품 구매를 시뮬레이션하여 구매 흐름을 검증하는 데 도움이 됩니다.The 테스트 모드 feature helps you validate your purchase flow by simulating a developer product purchase outside your experience.외부 개발자 제품 판매를 활성화하기 전에 테스트 모드를 사용하여 올바르게 구현했는지 확인해야 합니다 ProcessReceipt
테스트 모드에서 판매하는 개발자 제품은 사용자가 볼 수 없으며 그룹의 멤버만 볼 수 있습니다.
구현을 테스트하려면:
- 크리에이터 허브에서 수익 창출 > 개발자 제품 >으로 이동합니다.
- 클릭하십시오 ⋮ 메뉴 및 외부 구매 설정 을 선택합니다.
- 외부 구매 설정 페이지에서 테스트 모드 활성화를 클릭하십시오.
- 테스트 모드가 활성화되면 개발자 제품 페이지로 돌아가서 테스트할 제품을 선택합니다.
- 기본 설정 페이지에서 외부 구매 허용 확인란을 선택하고 변경 사항을 저장하십시오.
- 경험 세부 정보 페이지의 저장소 탭으로 이동하고 판매 중수 있는 제품을 구매하십시오.
- 경험을 입력하고 구매한 제품을 받았는지 확인하십시오.ProcessReceipt API의 수신 상태가 닫힘 으로 업데이트되어야 합니다.
구현을 테스트한 후 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
-- 콜백 설정
-- 이는 한 번만 서버 사이드 스크립트에서 수행할 수 있습니다
MarketplaceService.ProcessReceipt = processReceipt
개발자 제품 애널리틱스
개발자 제품 분석을 사용하여 개별 제품의 성공을 분석하고, 동향을 식별하고, 미래의 잠재적 수익을 예측합니다.
애널리틱스통해 다음을 수행할 수 있습니다:
- 선택한 기간 동안 최고 개발자 제품을 보세요.
- 시계열 그래프에서 최고 판매 아이템을 최대 8개 표시하여 전체 판매량과 순수익을 분석합니다.
- 카탈로그를 모니터링하고 판매량과 순수익으로 아이템을 정렬합니다.
개발자 애널리틱스액세스하려면:
- 창작물로 이동하고 경험을 선택합니다.
- 수익 창출 > 개발자 제품 으로 이동합니다.
- 분석 탭을 선택합니다.
