Un Producto de desarrollador es un artículo o capacidad que un usuario puede comprar más de una vez, como moneda de experiencia, munición o pociones.
Crear productos para desarrolladores
Para crear un producto para desarrolladores:
- Vaya a Creaciones y seleccione una experiencia.
- Vaya a Monetización > Productos del desarrollador .
- Haga clic en Crear un producto de desarrollador .
- Sube una imagen para mostrarla como el íconodel producto. Asegúrate de que la imagen no exceda los 512x512 píxeles, no incluya detalles importantes fuera de sus límites circulares y esté en .jpg , .png o .bmp .
- Ingrese un nombre y una descripción para el producto.
- Establece el precio del producto en Robux. El precio mínimo es 1 Robux, y el precio máximo es 1 millón de Robux.
- Haga clic en Crear producto de desarrollador .
Obtener ID de producto de desarrollador
Para usar los scripting, necesitas un ID de producto de desarrollador. Para obtener el ID del producto:
Vaya a Monetización > Productos del desarrollador .
Pase el mouse sobre el producto y haga clic en el menú ⋯ .
Haga clic en Copiar ID de activo para copiar el ID en su portapapeles.
Vender productos del desarrollador
Para implementar y vender un producto de desarrollador dentro de una experiencia, llame a las funciones MarketplaceService.
Usa GetProductInfo() para recuperar información sobre un producto de desarrollador, como el nombre y el precio, y luego para mostrar ese producto a los usuarios. Puedes vender el producto dentro de tu experiencia's marketplace, por ejemplo. Para los productos de desarrollador, el segundo parámetro debe ser Enum.InfoType.Product .
local MarketplaceService = game:GetService("MarketplaceService")
-- Reemplace el ID de lugar de reemplazo con el ID de su producto de desarrollador
local productId = 000000
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- Mostrar información del producto
-- Reemplace las declaraciones de impresión con código de UI para mostrar el producto
print("Developer Product Name: " .. productInfo.Name)
print("Price in Robux: " .. productInfo.PriceInRobux)
print("Description: " .. productInfo.Description)
end
Usa GetDeveloperProductsAsync() para recuperar todos los productos de desarrollador asociados con tu experiencia. Esta función devuelve un objeto Pages que puedes inspeccionar y filtrar para construir cosas como una tienda de desarrollador o una lista de productos en la experiencia.
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
-- Reemplace la declaración de impresión con código de UI para mostrar el producto
print(field .. ": " .. value)
end
end
Usa PromptProductPurchase() para solicitar compras de productos dentro de tu experiencia. Puedes llamar esta función cuando un usuario realiza acciones como presionar un botón o hablar con un PNJde venta.
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Reemplace el ID de lugar de reemplazo con el ID de su producto de desarrollador
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
También puede combinar funciones dentro de un LocalScript . Por ejemplo, puede crear un elemento de UI como un botón o un PNJminorista, luego usar GetProductInfo() para conectar un producto existente del desarrollador a ese elemento, ver si el producto está
local MarketplaceService = game:GetService("MarketplaceService")
local player = game.Players.LocalPlayer
local button = script.Parent
-- Reemplace el ID de lugar de reemplazo con el ID de su producto de desarrollador
local productId = 000000
-- Obtiene información del producto cuando el usuario hace clic en el botón de la interfaz de usuario
button.MouseButton1Click:Connect(function()
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- Comprueba si el producto está a la venta
if productInfo.IsForSale then
print("This is for sale")
-- Solicita la comprarde un producto
MarketplaceService:PromptProductPurchase(player, productId)
else
-- Notifica que el producto no está a la venta
print("This product is not currently for sale.")
end
else
print("Error retrieving product info: " .. tostring(productInfo))
end
end)
Gestión de compras de productos del desarrollador
Luego de que un usuario compre un producto de desarrollador, debes manejar y registrar la transacción. Para hacer esto, usa un Script dentro de ServerScriptService usando la función ProcessReceipt().
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local productFunctions = {}
-- Ejemplo: el ID de producto 123123 traerá de vuelta al usuario la salud completa
productFunctions[123123] = function(receipt, player)
local character = player.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = humanoid.MaxHealth
-- Indica una comprarexitosa
return true
end
end
-- Ejemplo: el ID de producto 456456 otorga 100 monedas de oro al usuario
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
-- Obtiene la función de manejador asociada con el ID de producto del desarrollador y trata de ejecutarla
local handler = productFunctions[productId]
local success, result = pcall(handler, receiptInfo, player)
if success then
-- El usuario ha recibido sus artículos
-- Regresa "PurchaseGranted" para confirmar la transacción
return Enum.ProductPurchaseDecision.PurchaseGranted
else
warn("Failed to process receipt:", receiptInfo, result)
end
end
-- No se pudieron otorgar los artículos del usuario
-- Regresa "NotProcessedYet" y vuelve a intentarlo la próxima vez que el usuario se una a la experiencia
return Enum.ProductPurchaseDecision.NotProcessedYet
end
-- Establece el llamado
-- Esto solo se puede hacer una vez por cada lado del script del servidor
MarketplaceService.ProcessReceipt = processReceipt
Desarrollador de estadísticas de productos
Usa la analítica de productos de desarrollador para analizar el éxito de los productos individuales, identificar tendencias y predecir potenciales ganancias futuras.
Con la Análisis, puede:
- Ver tus principales productos para desarrolladores durante un período de tiempo seleccionado.
- Muestra hasta ocho artículos de mayor venta en un gráfico de serie temporal para analizar las ventas totales y las ingresos netos.
- Supervise su catálogo y agrupe los artículos por ventas y ingresos netos.
Para acceder a Análisisde productos del desarrollador:
- Vaya a Creaciones y seleccione una experiencia.
- Vaya a Monetización > Productos del desarrollador .
- Seleccione la pestaña Análisis de datos .