Skip to main content

GameProductDataService

Functions

Start

GameProductDataService.Start(selfGameProductDataService) → ()

Starts the service. Should be done via ServiceBag

SetServerOnlyPrompting

GameProductDataService.SetServerOnlyPrompting(
serverOnlyboolean
) → ()

Sets whether prompting is restricted to the server. When enabled, clients can no longer prompt purchases directly via GameProductDataService:PromisePromptPurchase; prompts must be initiated from the server. Can only be set from the server.

GetServerOnlyPromptingValue

GameProductDataService.GetServerOnlyPromptingValue(selfGameProductDataService) → ValueObject<boolean>

Returns the server-authoritative server-only prompting ValueObject. This is exported through the PlayerProductManager tie so it replicates to clients.

ObserveServerOnlyPrompting

GameProductDataService.ObserveServerOnlyPrompting() → Observable<boolean>

Returns true if server-only prompting is currently enabled. On the client this reads the value replicated from the server for the local player.

_promiseServerOnlyPromptingGuard

GameProductDataService._promiseServerOnlyPromptingGuard() → Promise

Resolves if the caller is allowed to prompt a purchase, rejecting if server-only prompting is enabled and we are on the client. The server is always authorized.

_promiseGuardedPromptPurchase

GameProductDataService._promiseGuardedPromptPurchase(
playerPlayer,
assetTrackerPlayerAssetMarketTracker,
idOrKeystring | number
) → Promise<boolean>

Applies the server-only prompting guard and then prompts the purchase. Used by all prompt entry points so the guard is enforced consistently.

HasPlayerPurchasedThisSession

GameProductDataService.HasPlayerPurchasedThisSession(
playerPlayer,
assetTypeGameConfigAssetType,
idOrKeystring | number
) → boolean

Returns true if item has been purchased this session

PromisePromptPurchase

GameProductDataService.PromisePromptPurchase(
playerPlayer,
assetTypeGameConfigAssetType,
idOrKeystring | number
) → Promise<boolean>

Prompts the user to purchase the asset, and returns true if purchased

PromisePlayerOwnership

GameProductDataService.PromisePlayerOwnership(
playerPlayer,
assetTypeGameConfigAssetType,
idOrKeystring | number
) → Promise<boolean>

Returns true if item has been purchased this session

PromiseIsOwnable

GameProductDataService.PromiseIsOwnable(
playerPlayer,
assetTypeGameConfigAssetType
) → Promise<boolean>

Returns true if item has been purchased this session

PromisePlayerIsPromptOpen

GameProductDataService.PromisePlayerIsPromptOpen() → Promise<boolean>

Promises the player prompt as opened

PromisePlayerPromptClosed

GameProductDataService.PromisePlayerPromptClosed() → Promise<boolean>

Promises the player prompt as opened

ObservePlayerOwnership

GameProductDataService.ObservePlayerOwnership(
playerPlayer,
assetTypeGameConfigAssetType,
idOrKeystring | number
) → Observable<boolean>

Observes player ownership

ObservePlayerAssetPurchased

GameProductDataService.ObservePlayerAssetPurchased(
playerPlayer,
assetTypeGameConfigAssetType,
idOrKeystring | number
) → Observable<>

Fires when the specified player purchases an asset

ObserveAssetPurchased

GameProductDataService.ObserveAssetPurchased(
assetTypeGameConfigAssetType,
idOrKeystring | number
) → Observable<Player>

Fires when any player purchases an asset

PromisePlayerOwnershipOrPrompt

GameProductDataService.PromisePlayerOwnershipOrPrompt(
playerPlayer,
assetTypeGameConfigAssetType,
idOrKeystring | number
) → Promise<boolean>

Checks if the asset is ownable and if it is, checks player ownership. Otherwise, it checks if the asset has been purchased this session. If the asset has not been purchased this session it prompts the user to purchase the item.

Show raw api
{
    "functions": [
        {
            "name": "Start",
            "desc": "Starts the service. Should be done via [ServiceBag]",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                }
            ],
            "returns": [],
            "function_type": "static",
            "source": {
                "line": 73,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "SetServerOnlyPrompting",
            "desc": "Sets whether prompting is restricted to the server. When enabled, clients can no\nlonger prompt purchases directly via [GameProductDataService:PromisePromptPurchase];\nprompts must be initiated from the server. Can only be set from the server.",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                },
                {
                    "name": "serverOnly",
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "returns": [],
            "function_type": "static",
            "source": {
                "line": 106,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "GetServerOnlyPromptingValue",
            "desc": "Returns the server-authoritative server-only prompting [ValueObject]. This is\nexported through the PlayerProductManager tie so it replicates to clients.",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService\n"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "ValueObject<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 122,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "ObserveServerOnlyPrompting",
            "desc": "Returns true if server-only prompting is currently enabled. On the client this\nreads the value replicated from the server for the local player.",
            "params": [
                {
                    "name": "_self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                },
                {
                    "name": "player",
                    "desc": "",
                    "lua_type": "Player"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 135,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "_promiseServerOnlyPromptingGuard",
            "desc": "Resolves if the caller is allowed to prompt a purchase, rejecting if server-only\nprompting is enabled and we are on the client. The server is always authorized.",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                },
                {
                    "name": "player",
                    "desc": "",
                    "lua_type": "Player"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Promise"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 163,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "_promiseGuardedPromptPurchase",
            "desc": "Applies the server-only prompting guard and then prompts the purchase. Used by all\nprompt entry points so the guard is enforced consistently.",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                },
                {
                    "name": "player",
                    "desc": "",
                    "lua_type": "Player"
                },
                {
                    "name": "assetTracker",
                    "desc": "",
                    "lua_type": "PlayerAssetMarketTracker"
                },
                {
                    "name": "idOrKey",
                    "desc": "",
                    "lua_type": "string | number"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Promise<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 193,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "HasPlayerPurchasedThisSession",
            "desc": "Returns true if item has been purchased this session",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                },
                {
                    "name": "player",
                    "desc": "",
                    "lua_type": "Player"
                },
                {
                    "name": "assetType",
                    "desc": "",
                    "lua_type": "GameConfigAssetType"
                },
                {
                    "name": "idOrKey",
                    "desc": "",
                    "lua_type": "string | number"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 212,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "PromisePromptPurchase",
            "desc": "Prompts the user to purchase the asset, and returns true if purchased",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                },
                {
                    "name": "player",
                    "desc": "",
                    "lua_type": "Player"
                },
                {
                    "name": "assetType",
                    "desc": "",
                    "lua_type": "GameConfigAssetType"
                },
                {
                    "name": "idOrKey",
                    "desc": "",
                    "lua_type": "string | number"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Promise<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 240,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "PromisePlayerOwnership",
            "desc": "Returns true if item has been purchased this session",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                },
                {
                    "name": "player",
                    "desc": "",
                    "lua_type": "Player"
                },
                {
                    "name": "assetType",
                    "desc": "",
                    "lua_type": "GameConfigAssetType"
                },
                {
                    "name": "idOrKey",
                    "desc": "",
                    "lua_type": "string | number"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Promise<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 264,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "PromiseIsOwnable",
            "desc": "Returns true if item has been purchased this session",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                },
                {
                    "name": "player",
                    "desc": "",
                    "lua_type": "Player"
                },
                {
                    "name": "assetType",
                    "desc": "",
                    "lua_type": "GameConfigAssetType"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Promise<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 287,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "PromisePlayerIsPromptOpen",
            "desc": "Promises the player prompt as opened",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                },
                {
                    "name": "player",
                    "desc": "",
                    "lua_type": "Player"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Promise<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 306,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "PromisePlayerPromptClosed",
            "desc": "Promises the player prompt as opened",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                },
                {
                    "name": "player",
                    "desc": "",
                    "lua_type": "Player"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Promise<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 323,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "ObservePlayerOwnership",
            "desc": "Observes player ownership",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                },
                {
                    "name": "player",
                    "desc": "",
                    "lua_type": "Player"
                },
                {
                    "name": "assetType",
                    "desc": "",
                    "lua_type": "GameConfigAssetType"
                },
                {
                    "name": "idOrKey",
                    "desc": "",
                    "lua_type": "string | number"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 342,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "ObservePlayerAssetPurchased",
            "desc": "Fires when the specified player purchases an asset",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                },
                {
                    "name": "player",
                    "desc": "",
                    "lua_type": "Player"
                },
                {
                    "name": "assetType",
                    "desc": "",
                    "lua_type": "GameConfigAssetType"
                },
                {
                    "name": "idOrKey",
                    "desc": "",
                    "lua_type": "string | number"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 374,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "ObserveAssetPurchased",
            "desc": "Fires when any player purchases an asset",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                },
                {
                    "name": "assetType",
                    "desc": "",
                    "lua_type": "GameConfigAssetType"
                },
                {
                    "name": "idOrKey",
                    "desc": "",
                    "lua_type": "string | number"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<Player>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 407,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        },
        {
            "name": "PromisePlayerOwnershipOrPrompt",
            "desc": "Checks if the asset is ownable and if it is, checks player ownership. Otherwise, it checks if the asset\nhas been purchased this session. If the asset has not been purchased this session it prompts the user to\npurchase the item.",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "GameProductDataService"
                },
                {
                    "name": "player",
                    "desc": "",
                    "lua_type": "Player"
                },
                {
                    "name": "assetType",
                    "desc": "",
                    "lua_type": "GameConfigAssetType"
                },
                {
                    "name": "idOrKey",
                    "desc": "",
                    "lua_type": "string | number"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Promise<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 450,
                "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
            }
        }
    ],
    "properties": [],
    "types": [],
    "name": "GameProductDataService",
    "desc": "",
    "source": {
        "line": 5,
        "path": "src/gameproductservice/src/Shared/GameProductDataService.lua"
    }
}