Produits développeur

Un produit développeur est un objet ou une capacité qu'un utilisateur peut acheter plusieurs fois dans l'expérience, comme de la monnaie, des munitions ou des potions.

Créer des produits développeur

Lorsque vous créez une image à utiliser pour votre produit développeur, vous devez tenir compte des exigences suivantes :

  • Utilisez un modèle de 512 × 512 pixels.
  • Enregistrez l'image au format .jpg, .png ou .bmp.
  • N'incluez aucun détail important en dehors des limites du cercle, car le processus de chargement réduit et recadre le produit développeur final en une image en forme de cercle.

Pour créer un nouveau produit développeur :

  1. Accédez à l'Interface de création.

  2. Cliquez sur l'expérience pour laquelle vous souhaitez créer un produit développeur. La page Aperçu de l'expérience s'affiche.

  3. Dans la navigation de gauche, sélectionnez Objets associés. La page Objets associés s'affiche.

  4. Dans la navigation horizontale, sélectionnez PRODUITS DÉVELOPPEUR. Tous les produits développeur de cette expérience s'affichent.

  5. Cliquez sur le bouton CRÉER UN PRODUIT DÉVELOPPEUR. La page Créer un produit développeur s'affiche.

  6. Cliquez sur le bouton UPLOADER UNE IMAGE. Un navigateur de fichiers s'affiche.

  7. Sélectionnez l'image que vous souhaitez afficher comme icône, puis cliquez sur le bouton Ouvrir.

  8. Complétez les champs suivants :

    • Nom : un title pour votre produit développeur.
    • Description : une description de ce à quoi un utilisateur doit s'attendre lorsqu'il achète le produit développeur.
    • Prix en Robux : le montant en Robux que vous souhaitez facturer aux utilisateurs pour le produit développeur.
  9. Cliquez sur le bouton CRÉER UN PRODUIT DÉVELOPPEUR. Le produit développeur s'affiche dans la section Produits développeur de la page Objets associés.

Localisation des ID de produit développeur

Un ID de produit développeur est l'identifiant unique d'un produit développeur. Vous avez besoin de cet ID lorsque vous scriptez des Badges.

Pour localiser un ID de produit développeur :

  1. Accédez à la section Développeur produit de la page Objets associés d'une expérience.

  2. Passez le curseur sur une vignette de produit développeur et cliquez sur le bouton . Un menu contextuel s'affichera.

  3. Sélectionnez Copier l'ID de l'actif. L'ID de produit développeur est copié dans le presse-papiers.

Scripter des produits développeur

Vous devez utiliser des scripts pour intégrer les effets du produit développeur dans vos expériences.

Les cas d'utilisation les plus courants de scripts de produit développeur sont les suivants :

Encourager les achats

Vous pouvez inviter un utilisateur à acheter l'un de vos produits développeur avec la méthode PromptProductPurchase() de MarketplaceService. Selon les besoins de votre expérience, vous pouvez invoquer la fonction promptPurchase() dans certaines situations, par exemple lorsque l'utilisateur appuie sur un bouton ou lorsque son personnage s'adresse à un PNJ vendeur.


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local productId = 0000000 -- Change this to your developer product ID
-- Function to prompt purchase of the developer product
local function promptPurchase()
MarketplaceService:PromptProductPurchase(player, productId)
end

Gérer les achats

Lorsqu'un utilisateur achète un produit développeur, il vous incombe de gérer et d'enregistrer la transaction. Vous pouvez le faire par l'intermédiaire d'un Script dans un ServerScriptService en utilisant le rappel MarketplaceService.ProcessReceipt.


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local productFunctions = {}
-- ProductId 123123 brings the user back to full health
productFunctions[123123] = function(receipt, player)
if player.Character and player.Character:FindFirstChild("Humanoid") then
player.Character.Humanoid.Health = player.Character.Humanoid.MaxHealth
-- Indicate a successful purchase
return true
end
end
-- ProductId 456456 awards 100 gold to the user
productFunctions[456456] = function(receipt, player)
local stats = player:FindFirstChild("leaderstats")
local gold = stats and stats:FindFirstChild("Gold")
if gold then
gold.Value = 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
-- Get the handler function associated with the developer product ID and attempt to run it
local handler = productFunctions[productId]
local success, result = pcall(handler, receiptInfo, player)
if success then
-- The user has received their benefits!
-- return PurchaseGranted to confirm the transaction.
return Enum.ProductPurchaseDecision.PurchaseGranted
else
warn("Failed to process receipt:", receiptInfo, result)
end
end
-- the user's benefits couldn't be awarded.
-- return NotProcessedYet to try again next time the user joins.
return Enum.ProductPurchaseDecision.NotProcessedYet
end
-- Set the callback; this can only be done once by one script on the server!
MarketplaceService.ProcessReceipt = processReceipt

Obtenir des informations

Pour obtenir des informations sur un produit développeur spécifique, comme son prix, son nom ou son image, utilisez la fonction MarketplaceService:GetProductInfo() avec un second argument de Enum.InfoType.Product. Par exemple :


local MarketplaceService = game:GetService("MarketplaceService")
local productId = 000000 -- Change this to your developer product ID
local productInfo = MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success then
-- Use productInfo here!
end

Vous pouvez également obtenir les données de tous les produits développeur d'une expérience en utilisant la méthode GetDeveloperProductsAsync(). Cela renvoie un objet Pages que vous pouvez inspecter et filtrer pour concevoir des objets tels qu'une boutique en ligne ou une GUI de liste de produits.

Par exemple, le script suivant génère le nom, le prix, l'ID, la description et l'ID de l'élément de tous les produits développeur d'une expérience :


local MarketplaceService = game:GetService("MarketplaceService")
local success, developerProducts = pcall(function()
return MarketplaceService:GetDeveloperProductsAsync():GetCurrentPage()
end)
if developerProducts then
for _, developerProduct in pairs(developerProducts) do
for field, value in pairs(developerProduct) do
print(field .. ": " .. value)
end
print(" ")
end
end