Skip to main content

ScreenGuiService

This item only works when running on the client. Client

Centralized provider for the parent that ScreenGuis mount into. Defaults to the local player's PlayerGui -- including a PlayerMock designated as the local player, even when the designation happens after this service initializes -- so tests "just work". Hoarcekat stories and tests can still override the parent explicitly with ScreenGuiService.SetGuiParent.

Functions

Init

ScreenGuiService.Init(
serviceBagServiceBag
) → ()

Initializes the ScreenGuiService

GetGuiParent

ScreenGuiService.GetGuiParent(selfScreenGuiService) → Instance?

Gets the current gui parent to use. When no explicit parent is set (see ScreenGuiService.SetGuiParent), falls back to the local player's PlayerGui -- resolved at call time, so a PlayerMock designated after this service initialized is still honored.

return Instance?

SetGuiParent

ScreenGuiService.SetGuiParent(
playerGuiPlayerGui | Instance
) → () → ()

Sets the current playerGui to use, overriding the PlayerGui default. The returned task clears the override (restoring the default) if it is still ours.

return MaidTask

ObservePlayerGui

ScreenGuiService.ObservePlayerGui(selfScreenGuiService) → Observable.Observable<ScreenGui?>

Observes the gui parent to parent stuff into. Emits the explicitly set parent when there is one (see ScreenGuiService.SetGuiParent), otherwise follows the local player's PlayerGui -- including a PlayerMock designated as the local player after subscription.

return Observable<Instance?>

Destroy

ScreenGuiService.Destroy(selfScreenGuiService) → ()

Cleans up the ScreenGuiService

Show raw api
{
    "functions": [
        {
            "name": "Init",
            "desc": "Initializes the ScreenGuiService",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ScreenGuiService"
                },
                {
                    "name": "serviceBag",
                    "desc": "",
                    "lua_type": "ServiceBag"
                }
            ],
            "returns": [],
            "function_type": "static",
            "source": {
                "line": 41,
                "path": "src/genericscreenguiprovider/src/Client/ScreenGuiService.lua"
            }
        },
        {
            "name": "GetGuiParent",
            "desc": "Gets the current gui parent to use. When no explicit parent is set (see\n[ScreenGuiService.SetGuiParent]), falls back to the local player's PlayerGui -- resolved at call\ntime, so a [PlayerMock] designated after this service initialized is still honored.\n\nreturn Instance?",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ScreenGuiService"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Instance?\n"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 55,
                "path": "src/genericscreenguiprovider/src/Client/ScreenGuiService.lua"
            }
        },
        {
            "name": "SetGuiParent",
            "desc": "Sets the current playerGui to use, overriding the PlayerGui default. The returned task clears\nthe override (restoring the default) if it is still ours.\n\nreturn MaidTask",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ScreenGuiService"
                },
                {
                    "name": "playerGui",
                    "desc": "",
                    "lua_type": "PlayerGui | Instance"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "() -> ()\n"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 68,
                "path": "src/genericscreenguiprovider/src/Client/ScreenGuiService.lua"
            }
        },
        {
            "name": "ObservePlayerGui",
            "desc": "Observes the gui parent to parent stuff into. Emits the explicitly set parent when there is one\n(see [ScreenGuiService.SetGuiParent]), otherwise follows the local player's PlayerGui --\nincluding a [PlayerMock] designated as the local player after subscription.\n\nreturn Observable<Instance?>",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ScreenGuiService"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable.Observable<ScreenGui?>\n"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 87,
                "path": "src/genericscreenguiprovider/src/Client/ScreenGuiService.lua"
            }
        },
        {
            "name": "Destroy",
            "desc": "Cleans up the ScreenGuiService",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ScreenGuiService"
                }
            ],
            "returns": [],
            "function_type": "static",
            "source": {
                "line": 128,
                "path": "src/genericscreenguiprovider/src/Client/ScreenGuiService.lua"
            }
        }
    ],
    "properties": [],
    "types": [],
    "name": "ScreenGuiService",
    "desc": "Centralized provider for the parent that ScreenGuis mount into. Defaults to the local player's\nPlayerGui -- including a [PlayerMock] designated as the local player, even when the designation\nhappens after this service initializes -- so tests \"just work\". Hoarcekat stories and tests can\nstill override the parent explicitly with [ScreenGuiService.SetGuiParent].",
    "realm": [
        "Client"
    ],
    "source": {
        "line": 11,
        "path": "src/genericscreenguiprovider/src/Client/ScreenGuiService.lua"
    }
}