Um produto de desenvolvedor é um item ou habilidade que um usuário pode comprar mais de uma vez, como moeda de experiência, munição ou poções.
Criando Produtos para Desenvolvedores
Para criar um produto de desenvolvedor:
- Vá para Criações e selecione uma experiência.
- Vá para Monetização > Produtos do Desenvolvedor .
- Clique em Criar um Produto do Desenvolvedor .
- Faça o upload de uma imagem para exibir como o ícone de produto. Certifique-se de que a imagem não exceda 512x512 pixels, não inclua detalhes importantes fora de seus limites circulares e esteja em .jpg , .png ou .bmp format.
- Insira um nome e uma descrição para o produto.
- Defina o preço do produto em Robux. O preço mínimo é 1 Robux, e o preço máximo é 1 bilhão de Robux.
- Clique em Criar Produto do Desenvolvedor .
Obtendo IDs de Produto do Desenvolvedor
Para usar scripting, você precisa de um ID de produto de desenvolvedor. Para obter o ID do produto:
Vá para Monetização > Produtos do Desenvolvedor .
Passe o mouse sobre o produto e clique no menu ⋯ .
Clique em Copiar ID do Recurso para copiar o ID para sua área de transferência.
Vendendo Produtos do Desenvolvedor
Para implementar e vender um produto de desenvolvedor dentro de uma experiência, chame as funções MarketplaceService.
Use GetProductInfo() para recuperar informações sobre um produto de desenvolvedor, como nome e preço, e depois exibir esse produto para os usuários. Você pode vender o produto dentro de sua experiência's marketplace, por exemplo. Para produtos de desenvolvedor, o segundo parâmetro deve ser Enum.InfoType.Product .
local MarketplaceService = game:GetService("MarketplaceService")
-- Substitua o ID de espaço reservado pelo seu produto de desenvolvedor
local productId = 000000
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- Exibir informações do produto
-- Substitua as declarações de impressão com código da UI para exibir o produto
print("Developer Product Name: " .. productInfo.Name)
print("Price in Robux: " .. productInfo.PriceInRobux)
print("Description: " .. productInfo.Description)
end
Use GetDeveloperProductsAsync() para recuperar todos os produtos do desenvolvedor associados à sua experiência. Essa função retorna um objeto Pages que você pode inspecionar e filtrar para construir coisas como uma loja de experiência ou uma lista de produtos na Interface gráfica do usuário.
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
-- Substitua a declaração de impressão com código da UI para exibir o produto
print(field .. ": " .. value)
end
end
Use PromptProductPurchase() para solicitar compras de produtos dentro de sua experiência. Você pode chamar essa função quando um usuário executa ações, como pressionar um botão ou falar com um vendedor NPC.
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Substitua o ID de espaço reservado pelo seu produto de desenvolvedor
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
Você também pode combinar funções dentro de um LocalScript . Por exemplo, você pode criar um elemento de UI, como um botão ou um NPC vendedor, e usar GetProductInfo() para conectar um produto existente do desenvolvedor ao elemento, verificar se
local MarketplaceService = game:GetService("MarketplaceService")
local player = game.Players.LocalPlayer
local button = script.Parent
-- Substitua o ID de espaço reservado pelo seu produto de desenvolvedor
local productId = 000000
-- Obtém informações do produto quando o usuário clica no botão da UI
button.MouseButton1Click:Connect(function()
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- Verifica se o produto está à promoção/venda
if productInfo.IsForSale then
print("This is for sale")
-- Encaminha a comprarde produtos
MarketplaceService:PromptProductPurchase(player, productId)
else
-- Notifica o produto não está à promoção/venda
print("This product is not currently for sale.")
end
else
print("Error retrieving product info: " .. tostring(productInfo))
end
end)
Gerenciando Compras de Produtos do Desenvolvedor
Depois que um usuário comprar um produto do desenvolvedor, você deve lidar e registrar a transação. Para fazer isso, use um Script dentro de ServerScriptService usando a função Class.MarketplaceService.ProcessReceipt()|ProcessReceipt() .
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local productFunctions = {}
-- Exemplo: o ID de produto 123123 traz o usuário de volta à saúde total
productFunctions[123123] = function(receipt, player)
local character = player.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = humanoid.MaxHealth
-- Indica uma comprarbem-sucedida
return true
end
end
-- Exemplo: o ID de produto 456456 concede 100 moedas de ouro ao usuário
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
-- Obtém a função de gerenciador associada ao ID do produto do desenvolvedor e tenta executá-la
local handler = productFunctions[productId]
local success, result = pcall(handler, receiptInfo, player)
if success then
-- O usuário recebeu seus itens
-- Retorna "PurchaseGranted" para confirmar a transação
return Enum.ProductPurchaseDecision.PurchaseGranted
else
warn("Failed to process receipt:", receiptInfo, result)
end
end
-- Os itens do usuário não puderam ser atribuídos
-- Retorna "NotProcessedYet" e tente novamente da próxima vez que o usuário entrar na experiência
return Enum.ProductPurchaseDecision.NotProcessedYet
end
-- Define o retorno de chamada
-- Isso só pode ser feito uma vez por um script do lado do servidor
MarketplaceService.ProcessReceipt = processReceipt
Análises de Produto para Desenvolvedores
Use a análise de produto do desenvolvedor para analisar o sucesso de produtos individuais, identificar tendências e prever potenciais ganhos futuros.
Com Dados analíticos, você pode:
- Exibir seus principais produtos de desenvolvedores por um período de tempo selecionado.
- Mostre até oito itens de maior sucesso em um gráfico de série temporal para analisar as vendas gerais e a receita líquida.
- Monitore seu catálogo e classifique os itens por vendas e receita líquida.
Para acessar a Dados analíticosde Produto do Desenvolvedor:
- Vá para Criações e selecione uma experiência.
- Vá para Monetização > Produtos do Desenvolvedor .
- Selecione a aba Análise de Dados .