Show raw api
{
"functions": [
{
"name": "new",
"desc": "Constructs a new PlayerProductManagerBase, which provides helper methods for\nthe PlayerProductManager.",
"params": [
{
"name": "player",
"desc": "",
"lua_type": "Player"
},
{
"name": "serviceBag",
"desc": "",
"lua_type": "ServiceBag"
}
],
"returns": [
{
"desc": "",
"lua_type": "PlayerProductManagerBase"
}
],
"function_type": "static",
"source": {
"line": 63,
"path": "src/gameproductservice/src/Shared/Trackers/PlayerProductManagerBase.lua"
}
},
{
"name": "_canQueryCloudOwnership",
"desc": "Whether this realm can ask the cloud about this player's ownership.\n\nA client process may only ask about its own player: UserOwnsGamePassAsync refuses outright (\"can only\nquery local player\") and the inventory endpoints answer HTTP 403. It holds a manager for everybody\nregardless -- the PlayerProductManager tag replicates, so the binder builds one per player -- so\nwiring the queries there spends a request per player per asset to reach the same refusal every time.\n\nAsked of the process rather than of the tie realm, because the engine's restriction is the process's:\na bag told it is [TieRealms].SHARED is still a client where a marketplace call is concerned, and\n[PlayerProductManagerClient] gates its bulk-purchase listener on RunService for the same reason.\n\nOwnership overrides are unaffected: they replicate and short-circuit the query, so a client still\nanswers for another player wherever the server has said something (see [PlayerAssetOwnershipTracker]).\n\nA [PlayerMock] never reaches the engine -- its ownership is read through PlayerMock.readLookup -- so a\nsimulated player stays answerable anywhere, which is what lets a headless test drive ownership for\nplayers other than the one standing in for the local one.",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "PlayerProductManagerBase"
}
],
"returns": [
{
"desc": "",
"lua_type": "boolean"
}
],
"function_type": "static",
"private": true,
"source": {
"line": 211,
"path": "src/gameproductservice/src/Shared/Trackers/PlayerProductManagerBase.lua"
}
},
{
"name": "_handleGamePassPromptFinished",
"desc": "Applies a gamepass prompt result to this realm's tracker, exactly as the engine's\nPromptGamePassPurchaseFinished handler would. Only invoked for a [PlayerMock] (see the\nShowPromptRequested mock branch); [PlayerProductManagerClient] overrides this to also\nforward the result to the server over remoting, matching its engine handler.",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "PlayerProductManagerBase"
},
{
"name": "gamePassId",
"desc": "",
"lua_type": "number"
},
{
"name": "isPurchased",
"desc": "",
"lua_type": "boolean"
}
],
"returns": [],
"function_type": "static",
"source": {
"line": 245,
"path": "src/gameproductservice/src/Shared/Trackers/PlayerProductManagerBase.lua"
}
},
{
"name": "GetPlayer",
"desc": "Gets the current player",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "PlayerProductManagerBase"
}
],
"returns": [
{
"desc": "",
"lua_type": "Player"
}
],
"function_type": "static",
"source": {
"line": 273,
"path": "src/gameproductservice/src/Shared/Trackers/PlayerProductManagerBase.lua"
}
},
{
"name": "IsOwnable",
"desc": "Returns true if the asset type can be owned",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "PlayerProductManagerBase"
},
{
"name": "assetType",
"desc": "",
"lua_type": "GameConfigAssetType"
}
],
"returns": [
{
"desc": "",
"lua_type": "PlayerAssetMarketTracker"
}
],
"function_type": "static",
"source": {
"line": 282,
"path": "src/gameproductservice/src/Shared/Trackers/PlayerProductManagerBase.lua"
}
},
{
"name": "IsPromptOpen",
"desc": "Returns true if any prompt is open",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "PlayerProductManagerBase"
}
],
"returns": [
{
"desc": "",
"lua_type": "boolean"
}
],
"function_type": "static",
"source": {
"line": 293,
"path": "src/gameproductservice/src/Shared/Trackers/PlayerProductManagerBase.lua"
}
},
{
"name": "PromisePlayerPromptClosed",
"desc": "Promises that no prompt is open",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "PlayerProductManagerBase"
}
],
"returns": [
{
"desc": "",
"lua_type": "Promise"
}
],
"function_type": "static",
"source": {
"line": 308,
"path": "src/gameproductservice/src/Shared/Trackers/PlayerProductManagerBase.lua"
}
},
{
"name": "GetAssetTrackerOrError",
"desc": "Gets the current asset tracker",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "PlayerProductManagerBase"
},
{
"name": "assetType",
"desc": "",
"lua_type": "GameConfigAssetType"
}
],
"returns": [
{
"desc": "",
"lua_type": "PlayerAssetMarketTracker"
}
],
"function_type": "static",
"source": {
"line": 349,
"path": "src/gameproductservice/src/Shared/Trackers/PlayerProductManagerBase.lua"
}
},
{
"name": "GetOwnershipTrackerOrError",
"desc": "Gets the current asset tracker",
"params": [
{
"name": "self",
"desc": "",
"lua_type": "PlayerProductManagerBase"
},
{
"name": "assetType",
"desc": "",
"lua_type": "GameConfigAssetType"
}
],
"returns": [
{
"desc": "",
"lua_type": "PlayerAssetMarketTracker"
}
],
"function_type": "static",
"source": {
"line": 368,
"path": "src/gameproductservice/src/Shared/Trackers/PlayerProductManagerBase.lua"
}
}
],
"properties": [],
"types": [],
"name": "PlayerProductManagerBase",
"desc": "See [PlayerProductManager] and [PlayerProductManagerClient]",
"source": {
"line": 7,
"path": "src/gameproductservice/src/Shared/Trackers/PlayerProductManagerBase.lua"
}
}