Ein Entwicklerprodukt ist ein Item oder eine Fähigkeit, die ein Benutzer mehr als einmal kaufen kann, wie z. B. In-Experience-Währung, Munition oder Tränke.
Erstellen von Entwicklerprodukten
Um ein Entwicklerprodukt zu erstellen:
- Gehe zu Kreationen und wähle ein Erlebnis aus.
- Gehe zu Monetarisierung > Entwicklerprodukte .
- Klicken Sie auf erstellen Sie ein Entwicklerprodukt .
- Laden Sie ein Bild hoch, um es als Produkt-Symbol anzuzeigen. Stellen Sie sicher, dass das Bild nicht 512x512 Pixel überschreitet, keine wichtigen Details außerhalb seiner kreisförmigen Grenzen enthält und in .jpg , .png oder .bmp-Formate importiert ist.
- Geben Sie einen Namen und eine Beschreibung für das Produkt ein.
- Setzen Sie den Produktpreis in Robux. Der minimale Preis beträgt 1 Robux, und der maximale Preis beträgt 1 Milliarde Robux.
- Klicken Sie auf Erstellen Sie Entwicklerprodukt .
Developer-Produkt-IDs erhalten
Um Scriptingzu verwenden, benötigen Sie eine Entwickler-Produkt-ID. Um die Produkt-ID zu erhalten:
Gehe zu Monetarisierung > Entwicklerprodukte .
Bewegen Sie den Mauszeiger über das Produkt und klicken Sie auf das ⋯ -Menü.
Klicken Sie auf Kopieren Asset-ID , um die ID in Ihre Zwischenablage zu kopieren.
Verkauf von Entwicklerprodukten
Um ein Entwicklerprodukt innerhalb eines Erlebnisses zu implementieren und zu verkaufen, rufen Sie MarketplaceService Funktionen auf.
Verwenden Sie GetProductInfo() , um Informationen über ein Entwicklerprodukt wie Name und Preis abzurufen, und dann, um dieses Produkt an Benutzer anzuzeigen. Sie können das Produkt innerhalb Ihres Erlebnisses auf dem Marktplatz verkaufen, z. B. für Entwicklerprodukte muss der zweite Parallelbereich Enum.InfoType.Product sein.
local MarketplaceService = game:GetService("MarketplaceService")
-- Ersetzen Sie die Platzhalter-ID durch Ihre Produkt-ID
local productId = 000000
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- Produktinformationen anzeigen
-- Ersetze die druck声明en durch UI-code, um das produkt anzuzeigen
print("Developer Product Name: " .. productInfo.Name)
print("Price in Robux: " .. productInfo.PriceInRobux)
print("Description: " .. productInfo.Description)
end
Verwenden Sie GetDeveloperProductsAsync() , um alle Entwicklerprodukte mit Ihrem Erlebnis zu erhalten. Diese Funktion gibt ein Pages -Objekt zurück, das Sie aufrufen und filtern können, um Dinge wie ein In-Experience-Store oder eine grafische Benutzeroberflächeaufzubauen.
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
-- Ersetze die druck声 mit UI-code, um das produkt anzuzeigen
print(field .. ": " .. value)
end
end
Verwenden Sie PromptProductPurchase() , um Benutzer auf Kaufe von Produkten in Ihrem Erlebnis aufzufordern. Sie können diese Funktion aufrufen, wenn ein Benutzer Aktionen ausführt, z. B. wenn er eine Schaltfläche drückt oder mit einem Verkäufer-NPC spricht.
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Ersetzen Sie die Platzhalter-ID durch Ihre Produkt-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
Sie können auch Funktionen innerhalb eines LocalScript kombinieren. Zum Beispiel können Sie ein UI-Element wie eine Schaltfläche oder einen zum Verkauf stehenerstellen, dann verwenden Sie GetProductInfo() , um ein bestehendes Entwicklerprodukt an
local MarketplaceService = game:GetService("MarketplaceService")
local player = game.Players.LocalPlayer
local button = script.Parent
-- Ersetzen Sie die Platzhalter-ID durch Ihre Produkt-ID
local productId = 000000
-- Erhalte Produktinformationen, wenn der Benutzer auf die Schaltfläche klickt
button.MouseButton1Click:Connect(function()
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- Überprüft, ob das Produkt zum Verkauf stehenangeboten wird
if productInfo.IsForSale then
print("This is for sale")
-- Fordert kaufendes Produkts an
MarketplaceService:PromptProductPurchase(player, productId)
else
-- Benachrichtigt das Produkt ist nicht zum Verkauf stehen
print("This product is not currently for sale.")
end
else
print("Error retrieving product info: " .. tostring(productInfo))
end
end)
Steuerung der Produktkauf des Entwicklers
Nachdem ein Benutzer ein Developer-Produkt gekauft hat, musst du die Transaktion verarbeiten und aufzeichnen. Um dies zu tun, verwende ein Script innerhalb von ServerScriptService mit der Funktion Class.MarketplaceService.ProcessReceipt()|ProcessReceipt() .
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local productFunctions = {}
-- Beispiel: die Produkt-ID 123123 bringt den Benutzer zurück in vollständige Gesundheit
productFunctions[123123] = function(receipt, player)
local character = player.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = humanoid.MaxHealth
-- Zeigt einen erfolgreichen kaufenan
return true
end
end
-- Beispiel: Produkt-ID 456456 verleiht 100 Goldmünzen an den Benutzer
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
-- Erhält die Handler-Funktion, die mit der Developer-Produkt-ID verbunden ist, und versucht, sie auszuführen
local handler = productFunctions[productId]
local success, result = pcall(handler, receiptInfo, player)
if success then
-- Der Benutzer hat seine Artikel erhalten
-- Kehre "PurchaseGranted" zurück, um die Transaktion zu bestätigen
return Enum.ProductPurchaseDecision.PurchaseGranted
else
warn("Failed to process receipt:", receiptInfo, result)
end
end
-- Die Gegenstände des Benutzers konnten nicht vergeben werden
-- Kehrt "NotProcessedYet" zurück und versucht es erneut, wenn der Benutzer dem Erlebnis nächstes Mal beitritt
return Enum.ProductPurchaseDecision.NotProcessedYet
end
-- Setzt den Callback
-- Dies kann nur einmal von einem Server-seitigen Skript, das. PL: die Skriptserfolgen
MarketplaceService.ProcessReceipt = processReceipt
Entwicklerprodukt-Analysen
Verwenden Sie die Entwicklerprodukt-Analyse, um den Erfolg einzelner Produkte zu analysieren, Trends zu identifizieren und potenzielle zukünftige Einnahmen vorherzusagen.
Mit der Analyse können Sie:
- Anzeigen Sie Ihre Top-Entwicklerprodukte über einen ausgewählten Zeitraum.
- Zeigen Sie bis zu acht meistverkaufte Artikel auf einer Zeitreihen-Grafik, um die Gesamtsales und die Nettoumsätze zu analysieren.
- Überwachen Sie Ihren Katalog und sortieren Sie Artikel nach Umsatz und Nettoumsatz.
Um auf Entwicklerprodukt-Analyse zuzugreifen:
- Gehe zu Kreationen und wähle ein Erlebnis aus.
- Gehe zu Monetarisierung > Entwicklerprodukte .
- Wähle die Analytics -Registerkarte.