Markers
server
This API is used to send markers to the Gamebeast platform.
local Gamebeast = require(game:GetService("ReplicatedStorage"):WaitForChild("Gamebeast"))
local GamebeastMarkers = Gamebeast:GetService("Markers"):SendMarker(markerType, value, position)
→ void
This method sends a marker with the specified value to Gamebeast.
markerType
string
The name of the marker.
value
number | {[string] : any}
The value of the marker.
position
Vector3?
The optional marker world position for heatmap visualization.
Usage
GamebeastMarkers:SendMarker("RoundEnded", {Score = 600, Map = "Office", Duration = 120})
-- Single value example:
GamebeastMarkers:SendMarker("RoundEnded", 600)
-- Equivalent to:
GamebeastMarkers:SendMarker("RoundEnded", {value = 600}):SendPlayerMarker(player, markerType, value, position)
→ void
This function sends a marker associated with a specific player to Gamebeast.
player
Player
The player instance associated with the marker.
markerType
string
The name of the marker.
value
number | {[string] : any}
The value of the marker.
position
Vector3?
The optional marker world position for heatmap visualization.
Usage
local Player = game:GetService("Players").Player1
GamebeastMarkers:SendPlayerMarker(Player, "Coins", {Amount = 50, FoundIn = "Lobby"})
-- Single value example:
GamebeastMarkers:SendPlayerMarker(Player, "Coins", 50)
-- With position
GamebeastMarkers:SendPlayerMarker(Player, "Coins", 50, Player.Character.PrimaryPart.Position):SendNewPurchaseGrantedMarker(receiptInfo, position)
→ void
This function sends a Purchase marker from a dev product purchase to Gamebeast. This method should be used inside of your game’s MarketplaceService.ProcessReceipt callback whenever a new purchase is granted.
receiptInfo
{[string] : any}
The receiptInfo dictionary from the MarketplaceService.ProcessReceipt callback.
position
Vector3?
The optional marker world position for heatmap visualization.
Usage
local MarketplaceService = game:GetService("MarketplaceService")
local DataStoreService = game:GetService("DataStoreService")
local PurchaseHistoryStore = DataStoreService:GetDataStore("PurchaseHistory")
MarketplaceService.ProcessReceipt = function(receiptInfo)
local success, isPurchaseRecorded = pcall(function()
return PurchaseHistoryStore:UpdateAsync(receiptInfo.PurchaseId, function(alreadyPurchased)
if alreadyPurchased then
return true
end
-- NOTE: In your experience, you should have more checks. Make sure to look at Roblox's documentation for more information.
local success, result = pcall(function()
-- Grant the product to the player
end)
if success then
-- Send the purchase marker to Gamebeast only if we've never processed this purchase before.
GamebeastMarkers:SendNewPurchaseGrantedMarker(receiptInfo)
return true
else
-- Do not record the purchase if granting the product failed
error("Failed to process a product purchase")
return nil
end
end)
end)
if success == false or isPurchaseRecorded == nil then
return Enum.ProductPurchaseDecision.NotProcessedYet
else
-- IMPORTANT: Tell Roblox that the game successfully handled the purchase
return Enum.ProductPurchaseDecision.PurchaseGranted
end
end:OnMarkersFailed(callback)
→ RBXScriptConnection
This method fires a callback with a raw list of markers that failed to send to Gamebeast.
callback
(failedMarkers : {{[string] : any}}) -> ()
The callback function that will be fired if markers fail to send.
Usage
GamebeastMarkers:OnMarkersFailed(function(failedMarkers)
print("The following markers failed to send to Gamebeast:", failedMarkers)
-- Save to DataStore for retrying later, etc.
end):RetryFailedMarkersAsync(markers)
→ boolean
This method retries sending a list of markers that previously failed to send to Gamebeast.
This method will yeild and return true if the retry was successful, and false if it failed again.
markers
{{[string] : any}}
The list of markers that failed to send. This should be the raw list of markers received from the :OnMarkersFailed callback.
Usage
local FailedMarkersFromDatastore = getFailedMarkers()
local success = GamebeastMarkers:RetryFailedMarkersAsync(FailedMarkersFromDatastore)
if success then
print("Successfully retried failed markers.")
else
print("Failed to send markers.")
end