Skip to main content

PlayerProductManagerBase

Functions

new

PlayerProductManagerBase.new(
playerPlayer,
serviceBagServiceBag
) → PlayerProductManagerBase

Constructs a new PlayerProductManagerBase, which provides helper methods for the PlayerProductManager.

_handleGamePassPromptFinished

PlayerProductManagerBase._handleGamePassPromptFinished(
gamePassIdnumber,
isPurchasedboolean
) → ()

Applies a gamepass prompt result to this realm's tracker, exactly as the engine's PromptGamePassPurchaseFinished handler would. Only invoked for a PlayerMock (see the ShowPromptRequested mock branch); PlayerProductManagerClient overrides this to also forward the result to the server over remoting, matching its engine handler.

GetPlayer

PlayerProductManagerBase.GetPlayer(selfPlayerProductManagerBase) → Player

Gets the current player

IsOwnable

PlayerProductManagerBase.IsOwnable(
assetTypeGameConfigAssetType
) → PlayerAssetMarketTracker

Returns true if the asset type can be owned

IsPromptOpen

PlayerProductManagerBase.IsPromptOpen(selfPlayerProductManagerBase) → boolean

Returns true if any prompt is open

PromisePlayerPromptClosed

PlayerProductManagerBase.PromisePlayerPromptClosed(selfPlayerProductManagerBase) → Promise

Promises that no prompt is open

GetAssetTrackerOrError

PlayerProductManagerBase.GetAssetTrackerOrError(
assetTypeGameConfigAssetType
) → PlayerAssetMarketTracker

Gets the current asset tracker

GetOwnershipTrackerOrError

PlayerProductManagerBase.GetOwnershipTrackerOrError(
assetTypeGameConfigAssetType
) → PlayerAssetMarketTracker

Gets the current asset tracker

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"
    }
}