Skip to main content

PlayerMockCharacterUtils

The character spawn lifecycle of a mock. The spawn sequence mirrors the engine's avatar loading event ordering, which PlayerMock.spec asserts step by step.

Use PlayerMock.loadCharacterAsync, PlayerMock.loadMinimalCharacterAsync and PlayerMock.removeCharacter.

Functions

loadCharacterAsync

PlayerMockCharacterUtils.loadCharacterAsync(
playerPlayer,--

must be a PlayerMock

characterModel?--

the new character; nil builds a default R15 rig

) → Model

Omitting character builds a default R15 rig from an empty HumanoidDescription, which may yield.

Use PlayerMock.loadCharacterAsync.

loadMinimalCharacterAsync

PlayerMockCharacterUtils.loadMinimalCharacterAsync(
playerPlayer--

must be a PlayerMock

) → Model

An anchored HumanoidRootPart (the PrimaryPart) and a Humanoid, which never yields to build.

Use PlayerMock.loadMinimalCharacterAsync.

removeCharacter

PlayerMockCharacterUtils.removeCharacter(
playerPlayer--

must be a PlayerMock

) → ()

No-op when no character is loaded.

Use PlayerMock.removeCharacter.

getMockFromCharacter

PlayerMockCharacterUtils.getMockFromCharacter(characterInstance) → Player?

Returns the mock whose Character stand-in is the given model, or nil. Like the engine call only the exact character model matches -- a descendant part resolves nil, so callers walking up from a descendant keep their own ancestor walk.

Use PlayerMock.getMockFromCharacter.

Show raw api
{
    "functions": [
        {
            "name": "loadCharacterAsync",
            "desc": "Omitting `character` builds a default R15 rig from an empty `HumanoidDescription`, which may\nyield.\n\nUse [PlayerMock.loadCharacterAsync].",
            "params": [
                {
                    "name": "player",
                    "desc": "must be a PlayerMock",
                    "lua_type": "Player"
                },
                {
                    "name": "character",
                    "desc": "the new character; nil builds a default R15 rig",
                    "lua_type": "Model?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Model"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 37,
                "path": "src/player-mock/src/Shared/Helpers/Character/PlayerMockCharacterUtils.lua"
            }
        },
        {
            "name": "loadMinimalCharacterAsync",
            "desc": "An anchored `HumanoidRootPart` (the `PrimaryPart`) and a `Humanoid`, which never yields to build.\n\nUse [PlayerMock.loadMinimalCharacterAsync].",
            "params": [
                {
                    "name": "player",
                    "desc": "must be a PlayerMock",
                    "lua_type": "Player"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Model"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 82,
                "path": "src/player-mock/src/Shared/Helpers/Character/PlayerMockCharacterUtils.lua"
            }
        },
        {
            "name": "removeCharacter",
            "desc": "No-op when no character is loaded.\n\nUse [PlayerMock.removeCharacter].",
            "params": [
                {
                    "name": "player",
                    "desc": "must be a PlayerMock",
                    "lua_type": "Player"
                }
            ],
            "returns": [],
            "function_type": "static",
            "source": {
                "line": 105,
                "path": "src/player-mock/src/Shared/Helpers/Character/PlayerMockCharacterUtils.lua"
            }
        },
        {
            "name": "getMockFromCharacter",
            "desc": "Returns the mock whose `Character` stand-in is the given model, or nil. Like the engine call only\nthe exact character model matches -- a descendant part resolves nil, so callers walking up from a\ndescendant keep their own ancestor walk.\n\nUse [PlayerMock.getMockFromCharacter].",
            "params": [
                {
                    "name": "character",
                    "desc": "",
                    "lua_type": "Instance"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Player?"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 122,
                "path": "src/player-mock/src/Shared/Helpers/Character/PlayerMockCharacterUtils.lua"
            }
        }
    ],
    "properties": [],
    "types": [],
    "name": "PlayerMockCharacterUtils",
    "desc": "The character spawn lifecycle of a mock. The spawn sequence mirrors the engine's\n[avatar loading event ordering](https://devforum.roblox.com/t/avatar-loading-event-ordering-improvements/269607),\nwhich PlayerMock.spec asserts step by step.\n\nUse [PlayerMock.loadCharacterAsync], [PlayerMock.loadMinimalCharacterAsync] and\n[PlayerMock.removeCharacter].",
    "source": {
        "line": 12,
        "path": "src/player-mock/src/Shared/Helpers/Character/PlayerMockCharacterUtils.lua"
    }
}