Skip to main content

AnimationsClient

This item only works when running on the client. Client
note

Roblox model path: Animations.Package.AnimationsClient

info

Any reference to "client animation tracks" is referring to animation ids found under rigType of "Player" in the AnimationIds module.

Types

initOptions

interface initOptions {
AutoLoadAllPlayerTracksfalse
TimeToLoadPrintstrue
EnableAutoCustomRBXAnimationIdsfalse
AnimatedObjectsDebugModefalse
DepsFolderPathstring?--

Only use if you've moved the 'Deps' folder from its original location.

}

Gets applied to Properties.

path

type path = {any} | string
-- In a LocalScript
local Animations = require(game.ReplicatedStorage.Animations.Package.AnimationsClient)


-- These are all valid options for retrieving an animation track
local animationPath = "Jump" -- A single key (any type)

local animationPath = {"Dodge", Vector3.xAxis} -- An array path (values of any type)

local animationPath = "Climb.Right" -- A path seperated by "." (string)


local animationTrack = Animations:GetTrack(animationPath)

customRBXAnimationIds

interface customRBXAnimationIds {
runnumber?
walknumber?
jumpnumber?
idle{
Animation1number?,
Animation2number?
}?
fallnumber?
swimnumber?
swimIdlenumber?
climbnumber?
}

A table of animation ids to replace the default roblox animation ids.

info

Roblox applies the "walk" animation id for R6 characters and the "run" animation id for R15 characters (instead of both).

humanoidRigTypeToCustomRBXAnimationIds

interface humanoidRigTypeToCustomRBXAnimationIds {
[Enum.HumanoidRigType.R6]customRBXAnimationIds?
[Enum.HumanoidRigType.R15]customRBXAnimationIds?
}

A table mapping a Enum.HumanoidRigType to its supported animation ids that will replace the default roblox animation ids.

Properties

DepsFolderPath

AnimationsClient.DepsFolderPath: nil

Set the path to the dependencies folder if you have moved it from its original location inside of the root Animations folder.

added in version 2.0.0-rc1

AutoLoadAllPlayerTracks

AnimationsClient.AutoLoadAllPlayerTracks: false

If set to true, client animation tracks will be loaded each time the client spawns.

warning

Must have animation ids under rigType of "Player" in the AnimationIds module.

changed in version 2.0.0-rc1

Renamed: AutoLoadPlayerTracks -> AutoLoadAllPlayerTracks

TimeToLoadPrints

AnimationsClient.TimeToLoadPrints: true

If set to true, makes helpful prints about the time it takes to pre-load and load animations.

EnableAutoCustomRBXAnimationIds

AnimationsClient.EnableAutoCustomRBXAnimationIds: false

If set to true, applies the AutoCustomRBXAnimationIds module table to the client on spawn.

added in version 2.0.0-rc1

AnimatedObjectsDebugMode

AnimationsClient.AnimatedObjectsDebugMode: false

If set to true, prints will be made to help debug attaching and detaching animated objects.

PreloadAsyncProgressed

AnimationsClient.PreloadAsyncProgressed: RBXScriptSignal

Fires when ContentProvider:PreloadAsync() finishes pre-loading one animation instance.

-- In a LocalScript
Animations.PreloadAsyncProgressed:Connect(function(n, total, loadedAnimInstance)
	print("ContentProvider:PreloadAsync() finished pre-loading one:", n, total, loadedAnimInstance)
end)
added in version 2.0.0-rc1

Functions

Init

This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts. Yields
AnimationsClient:Init(initOptionsinitOptions?) → ()

Initializes AnimationsClient.

Yields when...

  • ...server has not initialized.
  • ...animations are being pre-loaded with ContentProvider:PreloadAsync() (could take a while).
info

Should be called once before any other method.

GetTimeOfMarker

This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts. YieldsBeta
AnimationsClient:GetTimeOfMarker(
animTrack_or_IdStringAnimationTrack | string,
markerNamestring
) → number?

The only reason this would yield is if the initialization process that caches all of the marker times is still going on when this method gets called. If after 3 seconds the initialization process still has not finished, this method will return nil.

local attackAnim = Animations:PlayTrack("Attack")
local timeOfHitStart = Animations:GetTimeOfMarker(attackAnim, "HitStart")

print("Time of hit start:", timeOfHitStart)

-- or

local animIdStr = Animations:GetAnimationIdString("Player", "Attack")
local timeOfHitStart = Animations:GetTimeOfMarker(animIdStr, "HitStart")

print("Time of hit start:", timeOfHitStart)
info

You must first modify your AnimationIds module to specify which animations this method will work on.

caution

This method is in beta testing. Use with caution.

added in version 2.1.0

GetAnimationIdString

AnimationsClient:GetAnimationIdString(
rigTyperigType,
pathpath
) → string

Returns the animation id string under rigType at path in the AnimationIds module.

local animIdStr = Animations:GetAnimationIdString("Player", "Run")
print(animIdStr) --> "rbxassetid://89327320"
added in version 2.1.0

FindFirstRigPlayingTrack

AnimationsClient:FindFirstRigPlayingTrack(
rigModel,
pathpath
) → AnimationTrack?

Returns a playing animation track found in rig.Humanoid.Animator:GetPlayingAnimationTracks() matching the animation id found at path in the AnimationIds module or nil.

-- [WARNING] For this to work, `enemyCharacter` would have to be registered (most likely on the server) and "Blocking" would need to be a valid animation name defined in the `AnimationIds` module.
local isBlocking = Animations:FindFirstRigPlayingTrack(enemyCharacter, "Blocking")

if isBlocking then
	warn("We can't hit the enemy, they're blocking!")
end
added in version 2.1.0

WaitForRigPlayingTrack

This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts. Yields
AnimationsClient:WaitForRigPlayingTrack(
rigModel,
pathpath,
timeoutnumber?
) → AnimationTrack?

Yields until a playing animation track is found in rig.Humanoid.Animator:GetPlayingAnimationTracks() matching the animation id found at path in the AnimationIds module then returns it or returns nil after timeout seconds if provided.

Especially useful if the animation needs time to replicate from server to client and you want to specify a maximum time to wait until it replicates.

-- [WARNING] For this to work, `enemyCharacter` would have to be registered (on the server) and "Blocking" would need to be a valid animation name defined in the `AnimationIds` module.
local isBlocking = Animations:WaitForRigPlayingTrack(enemyCharacter, "Blocking", 1)

if isBlocking then
	warn("We can't hit the enemy, they're blocking!")
end
added in version 2.1.0

GetAppliedProfileName

AnimationsClient:GetAppliedProfileName() → string?

Returns the client's currently applied animation profile name or nil.

added in version 2.0.0

GetRigAppliedProfileName

AnimationsClient:GetRigAppliedProfileName(rigModel) → string?

Returns the rig's currently applied animation profile name or nil.

added in version 2.0.0

AwaitPreloadAsyncFinished

This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts. Yields
AnimationsClient:AwaitPreloadAsyncFinished() → {Animation?}

Yields until ContentProvider:PreloadAsync() finishes pre-loading all animation instances.

-- In a LocalScript
local loadedAnimInstances = Animations:AwaitPreloadAsyncFinished()
	
print("ContentProvider:PreloadAsync() finished pre-loading all:", loadedAnimInstances)
added in version 2.0.0-rc1

Register

AnimationsClient:Register() → ()

Registers the client's character so that methods using animation tracks can be called.

note

The client's character gets automatically registered through the client.CharacterAdded event.

tip

Automatically gives the rig (the client's character) an attribute "AnimationsRigType" set to the rigType (which is "Player" in this case).

added in version 2.0.0-rc1

RegisterRig

AnimationsClient:RegisterRig(
rigModel,
rigTypestring
) → ()

Registers the rig so that rig methods using animation tracks can be called.

tip

Automatically gives the rig an attribute "AnimationsRigType" set to the rigType.

added in version 2.0.0-rc1

AwaitRegistered

This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts. Yields
AnimationsClient:AwaitRegistered() → ()

Yields until the client gets registered.

added in version 2.0.0-rc1

AwaitRigRegistered

This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts. Yields
AnimationsClient:AwaitRigRegistered(rigModel) → ()

Yields until the rig gets registered.

added in version 2.0.0-rc1

IsRegistered

AnimationsClient:IsRegistered() → boolean

Returns if the client is registered.

added in version 2.0.0-rc1

IsRigRegistered

AnimationsClient:IsRigRegistered(rigModel) → boolean

Returns if the rig is registered.

added in version 2.0.0-rc1

ApplyCustomRBXAnimationIds

This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts. Yields
AnimationsClient:ApplyCustomRBXAnimationIds(humanoidRigTypeToCustomRBXAnimationIdshumanoidRigTypeToCustomRBXAnimationIds) → ()

Applies the animation ids specified in the humanoidRigTypeToCustomRBXAnimationIds table on the client's character.

Yields when...

  • ...the client's character, humanoid, animator, or animate script aren't immediately available.
tip

See ApplyAnimationProfile() for a more convenient way of overriding default roblox character animations.

-- In a LocalScript
local Animations = require(game.ReplicatedStorage.Animations.Package.AnimationsClient)

Animations:Init()

task.wait(5)

print("Applying r15 ninja jump & idle animations")

-- These animations will only work if your character is R15
Animations:ApplyCustomRBXAnimationIds({
	[Enum.HumanoidRigType.R15] = {
		jump = 656117878,
		idle = {
			Animation1 = 656117400,
			Animation2 = 656118341
		}
	}
})

ApplyRigCustomRBXAnimationIds

This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts. Yields
AnimationsClient:ApplyRigCustomRBXAnimationIds(
rigModel,
humanoidRigTypeToCustomRBXAnimationIdshumanoidRigTypeToCustomRBXAnimationIds
) → ()

Applies the animation ids specified in the humanoidRigTypeToCustomRBXAnimationIds table on the rig.

Yields when...

  • ...the rig's humanoid or animate script aren't immediately available.
warning

This function only works for R6/R15 NPCs that are local to the client or network-owned by the client and have a client-side "Animate" script in their model.

tip

See ApplyRigAnimationProfile() for a more convenient way of overriding default roblox character animations.

GetAnimationProfile

AnimationsClient:GetAnimationProfile(animationProfileNamestring) → animationProfilehumanoidRigTypeToCustomRBXAnimationIds?

Returns the humanoidRigTypeToCustomRBXAnimationIds table found in the profile module script Deps.<animationProfileName>, or not if it doesn't exist.

ApplyAnimationProfile

This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts. Yields
AnimationsClient:ApplyAnimationProfile(animationProfileNamestring) → ()

Applies the animation ids found in the animation profile on the client's character.

Yields when...

  • ...the client's character, humanoid, animator, or animate script aren't immediately available.
info

For more information on setting up animation profiles check out animation profiles tutorial.

ApplyRigAnimationProfile

This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts. Yields
AnimationsClient:ApplyRigAnimationProfile(
rigModel,
animationProfileNamestring
) → ()

Applies the animation ids found in the animation profile on the rig.

Yields when...

  • ...the rig's humanoid or animate script aren't immediately available.
warning

This function only works for R6/R15 NPCs that are local to the client or network-owned by the client and have a client-side "Animate" script in their model.

info

For more information on setting up animation profiles check out animation profiles tutorial.

AwaitAllTracksLoaded

This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts. Yields
AnimationsClient:AwaitAllTracksLoaded() → ()

Yields until the client has been registered and then until all animation tracks have loaded.

changed in version 2.0.0-rc1

Renamed: AwaitLoaded -> AwaitAllTracksLoaded

-- In a LocalScript
-- [WARNING] For this to work you need animation ids under the rig type of "Player" in the 'AnimationIds' module
local Animations = require(game.ReplicatedStorage.Animations.Package.AnimationsClient)

Animations:Init({
	AutoLoadAllPlayerTracks = true -- Defaults to false
})

Animations:AwaitAllTracksLoaded()

print("Animation tracks finished loading on the client!")

AwaitAllRigTracksLoaded

This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts. Yields
AnimationsClient:AwaitAllRigTracksLoaded(rigModel) → ()

Yields until the rig has been registered and then until all animation tracks have loaded.

changed in version 2.0.0-rc1

Renamed: AwaitRigTracksLoaded -> AwaitAllRigTracksLoaded

AwaitTracksLoadedAt

This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts. Yields
AnimationsClient:AwaitTracksLoadedAt(pathpath) → ()

Yields until the client has been registered and then until all animation tracks have loaded at path.

added in version 2.0.0-rc1

AwaitRigTracksLoadedAt

This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts. Yields
AnimationsClient:AwaitRigTracksLoadedAt(
rigModel,
pathpath
) → ()

Yields until the rig has been registered and then until all animation tracks have loaded at path.

added in version 2.0.0-rc1

AreAllTracksLoaded

AnimationsClient:AreAllTracksLoaded() → boolean

Returns if the client has had all its animation tracks loaded.

changed in version 2.0.0-rc1

Renamed: AreTracksLoaded -> AreAllTracksLoaded

AreAllRigTracksLoaded

AnimationsClient:AreAllRigTracksLoaded(rigModel) → boolean

Returns if the rig has had all its animation tracks loaded.

changed in version 2.0.0-rc1

Renamed: AreRigTracksLoaded -> AreAllRigTracksLoaded

AreTracksLoadedAt

AnimationsClient:AreTracksLoadedAt(pathpath) → boolean

Returns if the client has had its animation tracks loaded at path.

added in version 2.0.0-rc1

AreRigTracksLoadedAt

AnimationsClient:AreRigTracksLoadedAt(
rigModel,
pathpath
) → boolean

Returns if the rig has had its animation tracks loaded at path.

added in version 2.0.0-rc1

LoadAllTracks

AnimationsClient:LoadAllTracks() → ()

Creates animation tracks from all animation ids in AnimationIds for the client.

changed in version 2.0.0-rc1

Renamed: LoadTracks -> LoadAllTracks

LoadAllRigTracks

AnimationsClient:LoadAllRigTracks(rigModel) → ()

Creates animation tracks from all animation ids in AnimationIds for the rig.

changed in version 2.0.0-rc1

Renamed: LoadRigTracks -> LoadAllRigTracks

Requires Animations:RegisterRig() before usage.

LoadTracksAt

AnimationsClient:LoadTracksAt(pathpath) → ()

Creates animation tracks from all animation ids in AnimationIds for the client at path.

added in version 2.0.0-rc1

LoadRigTracksAt

AnimationsClient:LoadRigTracksAt(
rigModel,
pathpath
) → ()

Creates animation tracks from all animation ids in AnimationIds for the rig at path.

added in version 2.0.0-rc1

GetTrack

AnimationsClient:GetTrack(pathpath) → AnimationTrack?

Returns a client animation track or nil.

GetRigTrack

AnimationsClient:GetRigTrack(
rigModel,
pathpath
) → AnimationTrack?

Returns a rig animation track or nil.

PlayTrack

AnimationsClient:PlayTrack(
pathpath,
fadeTimenumber?,
weightnumber?,
speednumber?
) → AnimationTrack

Returns a playing client animation track.

PlayRigTrack

AnimationsClient:PlayRigTrack(
rigModel,
pathpath,
fadeTimenumber?,
weightnumber?,
speednumber?
) → AnimationTrack

Returns a playing rig animation track.

StopTrack

AnimationsClient:StopTrack(
pathpath,
fadeTimenumber?
) → AnimationTrack

Returns a stopped client animation track.

StopRigTrack

AnimationsClient:StopRigTrack(
rigModel,
pathpath,
fadeTimenumber?
) → AnimationTrack

Returns a stopped rig animation track.

StopPlayingTracks

AnimationsClient:StopPlayingTracks(fadeTimenumber?) → {AnimationTrack?}

Returns the stopped client animation tracks.

changed in version 2.0.0-rc1

Renamed: StopAllTracks -> StopPlayingTracks

StopRigPlayingTracks

AnimationsClient:StopRigPlayingTracks(
rigModel,
fadeTimenumber?
) → {AnimationTrack?}

Returns the stopped rig animation tracks.

changed in version 2.0.0-rc1

Renamed: StopRigAllTracks -> StopRigPlayingTracks

GetPlayingTracks

AnimationsClient:GetPlayingTracks() → {AnimationTrack?}

Returns the playing client animation tracks.

added in version 2.0.0-rc1

GetRigPlayingTracks

AnimationsClient:GetRigPlayingTracks(rigModel) → {AnimationTrack?}

Returns the playing rig animation tracks.

added in version 2.0.0-rc1

StopTracksOfPriority

AnimationsClient:StopTracksOfPriority(
animationPriorityEnum.AnimationPriority,
fadeTimenumber?
) → {AnimationTrack?}

Returns the stopped client animation tracks.

StopRigTracksOfPriority

AnimationsClient:StopRigTracksOfPriority(
rigModel,
animationPriorityEnum.AnimationPriority,
fadeTimenumber?
) → {AnimationTrack?}

Returns the stopped rig animation tracks.

GetTrackFromAlias

AnimationsClient:GetTrackFromAlias(aliasany) → AnimationTrack?

Returns a client animation track or nil.

GetRigTrackFromAlias

AnimationsClient:GetRigTrackFromAlias(
rigModel,
aliasany
) → AnimationTrack?

Returns a rig animation track or nil.

PlayTrackFromAlias

AnimationsClient:PlayTrackFromAlias(
aliasany,
fadeTimenumber?,
weightnumber?,
speednumber?
) → AnimationTrack

Returns a playing client animation track.

PlayRigTrackFromAlias

AnimationsClient:PlayRigTrackFromAlias(
rigModel,
aliasany,
fadeTimenumber?,
weightnumber?,
speednumber?
) → AnimationTrack

Returns a playing rig animation track.

StopTrackFromAlias

AnimationsClient:StopTrackFromAlias(
aliasany,
fadeTimenumber?
) → AnimationTrack

Returns a stopped client animation track.

StopRigTrackFromAlias

AnimationsClient:StopRigTrackFromAlias(
rigModel,
aliasany,
fadeTimenumber?
) → AnimationTrack

Returns a stopped rig animation track.

SetTrackAlias

AnimationsClient:SetTrackAlias(
aliasany,
pathpath
) → ()

Sets an alias to be the equivalent of the path for a client animation track.

tip

You can use the alias as the last key in the path. Useful for a table of animations. Example:

-- In ReplicatedStorage.Animations.Deps.AnimationIds
local animationIds = {
	Player = {
		FistsCombat = {
			-- Fists 3 hit combo
			Combo = {
				[1] = 1234567,
				[2] = 1234567,
				[3] = 1234567
			},

			-- Fists heavy attack
			HeavyAttack = 1234567
		},

		SwordCombat = {
			-- Sword 3 hit combo
			Combo = {
				[1] = 1234567,
				[2] = 1234567,
				[3] = 1234567
			},

			-- Sword heavy attack
			HeavyAttack = 1234567
		}
	}
}
-- In a LocalScript

-- After the client's animation tracks are loaded...

local heavyAttackAlias = "HeavyAttack" -- We want this alias in order to call Animations:PlayTrackFromAlias(heavyAttackAlias) regardless what weapon is equipped

local currentEquippedWeapon

local function updateHeavyAttackAliasPath()
	local alias = heavyAttackAlias
	local path = currentEquippedWeapon .. "Combat"

	Animations:SetTrackAlias(alias, path) -- Running this will search first "path.alias" and then search "path" if it didn't find "path.alias"
end

local function equipNewWeapon(weaponName)
	currentEquippedWeapon = weaponName

	updateHeavyAttackAliasPath()
end

equipNewWeapon("Fists")

Animations:PlayTrackFromAlias(heavyAttackAlias) -- Plays "FistsCombat.HeavyAttack" on the client's character

equipNewWeapon("Sword")

Animations:PlayTrackFromAlias(heavyAttackAlias) -- Plays "SwordCombat.HeavyAttack" on the client's character

SetRigTrackAlias

AnimationsClient:SetRigTrackAlias(
rigModel,
aliasany,
pathpath
) → ()

Sets an alias to be the equivalent of the path for a rig animation track.

tip

Same tip for Animations:SetTrackAlias() applies here.

RemoveTrackAlias

AnimationsClient:RemoveTrackAlias(aliasany) → ()

Removes the alias for a client animation track.

RemoveRigTrackAlias

AnimationsClient:RemoveRigTrackAlias(
rigModel,
aliasany
) → ()

Removes the alias for a rig animation track.

AttachAnimatedObject

Beta
AnimationsClient:AttachAnimatedObject(animatedObjectPathpath) → ()

Attaches the animated object to the client's character.

note

This does not replicate to the server.

tip

Enable initOptions.AnimatedObjectsDebugMode for detailed prints about animated objects.

info

For more information on setting up animated objects check out animated objects tutorial.

AttachRigAnimatedObject

Beta
AnimationsClient:AttachRigAnimatedObject(
rigModel,
animatedObjectPathpath
) → ()

Attaches the animated object to the rig.

note

This does not replicate to the server.

tip

Enable initOptions.AnimatedObjectsDebugMode for detailed prints about animated objects.

info

For more information on setting up animated objects check out animated objects tutorial.

DetachAnimatedObject

Beta
AnimationsClient:DetachAnimatedObject(animatedObjectPathpath) → ()

Detaches the animated object from the client's character.

note

This does not replicate to the server.

tip

Enable initOptions.AnimatedObjectsDebugMode for detailed prints about animated objects.

info

For more information on setting up animated objects check out animated objects tutorial.

DetachRigAnimatedObject

Beta
AnimationsClient:DetachRigAnimatedObject(
rigModel,
animatedObjectPathpath
) → ()

Detaches the animated object from the rig.

note

This does not replicate to the server.

tip

Enable initOptions.AnimatedObjectsDebugMode for detailed prints about animated objects.

info

For more information on setting up animated objects check out animated objects tutorial.

Show raw api
{
    "functions": [
        {
            "name": "Init",
            "desc": "Initializes `AnimationsClient`.\n\nYields when...\n- ...server has not initialized.\n- ...animations are being pre-loaded with `ContentProvider:PreloadAsync()` (could take a while).\n\n:::info\nShould be called once before any other method.\n:::",
            "params": [
                {
                    "name": "initOptions",
                    "desc": "",
                    "lua_type": "initOptions?"
                }
            ],
            "returns": [],
            "function_type": "method",
            "yields": true,
            "source": {
                "line": 137,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "GetTimeOfMarker",
            "desc": "The only reason this would yield is if the\ninitialization process that caches all of the marker\ntimes is still going on when this method gets called. If\nafter 3 seconds the initialization process still has not\nfinished, this method will return `nil`.\n\n```lua\nlocal attackAnim = Animations:PlayTrack(\"Attack\")\nlocal timeOfHitStart = Animations:GetTimeOfMarker(attackAnim, \"HitStart\")\n\nprint(\"Time of hit start:\", timeOfHitStart)\n\n-- or\n\nlocal animIdStr = Animations:GetAnimationIdString(\"Player\", \"Attack\")\nlocal timeOfHitStart = Animations:GetTimeOfMarker(animIdStr, \"HitStart\")\n\nprint(\"Time of hit start:\", timeOfHitStart)\n```\n\n:::info\nYou must first modify your\n[`AnimationIds`](/api/AnimationIds) module to specify\nwhich animations this method will work on.\n:::\n:::caution\nThis method is in beta testing. Use with caution.\n:::\n:::tip *added in version 2.1.0*\n:::",
            "params": [
                {
                    "name": "animTrack_or_IdString",
                    "desc": "",
                    "lua_type": "AnimationTrack | string"
                },
                {
                    "name": "markerName",
                    "desc": "",
                    "lua_type": "string"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "function_type": "method",
            "tags": [
                "Beta"
            ],
            "yields": true,
            "source": {
                "line": 313,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "GetAnimationIdString",
            "desc": "Returns the animation id string under `rigType` at `path` in the [`AnimationIds`](/api/AnimationIds) module.\n\n```lua\nlocal animIdStr = Animations:GetAnimationIdString(\"Player\", \"Run\")\nprint(animIdStr) --> \"rbxassetid://89327320\"\n```\n\n:::tip *added in version 2.1.0*\n:::",
            "params": [
                {
                    "name": "rigType",
                    "desc": "",
                    "lua_type": "rigType"
                },
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "string"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 330,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "FindFirstRigPlayingTrack",
            "desc": "Returns a playing animation track found in\n`rig.Humanoid.Animator:GetPlayingAnimationTracks()`\nmatching the animation id found at `path` in the\n[`AnimationIds`](/api/AnimationIds) module or `nil`.\n\n```lua\n-- [WARNING] For this to work, `enemyCharacter` would have to be registered (most likely on the server) and \"Blocking\" would need to be a valid animation name defined in the `AnimationIds` module.\nlocal isBlocking = Animations:FindFirstRigPlayingTrack(enemyCharacter, \"Blocking\")\n\nif isBlocking then\n\twarn(\"We can't hit the enemy, they're blocking!\")\nend\n```\n\n:::tip *added in version 2.1.0*\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTrack?"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 355,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "WaitForRigPlayingTrack",
            "desc": "Yields until a playing animation track is found in\n`rig.Humanoid.Animator:GetPlayingAnimationTracks()`\nmatching the animation id found at `path` in the\n[`AnimationIds`](/api/AnimationIds) module then returns it or returns `nil` after\n`timeout` seconds if provided.\n\nEspecially useful if the animation needs time to replicate from server to client and you want to specify a maximum time to wait until it replicates.\n\n```lua\n-- [WARNING] For this to work, `enemyCharacter` would have to be registered (on the server) and \"Blocking\" would need to be a valid animation name defined in the `AnimationIds` module.\nlocal isBlocking = Animations:WaitForRigPlayingTrack(enemyCharacter, \"Blocking\", 1)\n\nif isBlocking then\n\twarn(\"We can't hit the enemy, they're blocking!\")\nend\n```\n\n:::tip *added in version 2.1.0*\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                },
                {
                    "name": "timeout",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTrack?"
                }
            ],
            "function_type": "method",
            "yields": true,
            "source": {
                "line": 384,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "GetAppliedProfileName",
            "desc": "Returns the client's currently applied animation profile name or nil.\n\n:::tip *added in version 2.0.0*\n:::",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "string?"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 395,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "GetRigAppliedProfileName",
            "desc": "Returns the `rig`'s currently applied animation profile name or nil.\n\n:::tip *added in version 2.0.0*\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "string?"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 406,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AwaitPreloadAsyncFinished",
            "desc": "Yields until `ContentProvider:PreloadAsync()` finishes pre-loading all animation instances.\n\n```lua\n-- In a LocalScript\nlocal loadedAnimInstances = Animations:AwaitPreloadAsyncFinished()\n\t\nprint(\"ContentProvider:PreloadAsync() finished pre-loading all:\", loadedAnimInstances)\n```\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "{Animation?}"
                }
            ],
            "function_type": "method",
            "yields": true,
            "source": {
                "line": 425,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "Register",
            "desc": "Registers the client's character so that methods using animation tracks can be called.\n\n:::note\nThe client's character gets automatically registered through the `client.CharacterAdded` event.\n:::\n\n:::tip\nAutomatically gives the `rig` (the client's character) an attribute `\"AnimationsRigType\"` set to the [`rigType`](/api/AnimationIds#rigType) (which is \"Player\" in this case).\n:::\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 487,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "RegisterRig",
            "desc": "Registers the `rig` so that rig methods using animation tracks can be called.\n\n:::tip\nAutomatically gives the `rig` an attribute `\"AnimationsRigType\"` set to the [`rigType`](/api/AnimationIds/#rigType).\n:::\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "rigType",
                    "desc": "",
                    "lua_type": "string"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 502,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AwaitRegistered",
            "desc": "Yields until the client gets registered.\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [],
            "returns": [],
            "function_type": "method",
            "yields": true,
            "source": {
                "line": 513,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AwaitRigRegistered",
            "desc": "Yields until the `rig` gets registered.\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                }
            ],
            "returns": [],
            "function_type": "method",
            "yields": true,
            "source": {
                "line": 524,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "IsRegistered",
            "desc": "Returns if the client is registered.\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 535,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "IsRigRegistered",
            "desc": "Returns if the `rig` is registered.\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 546,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "ApplyCustomRBXAnimationIds",
            "desc": "Applies the animation ids specified in the [`humanoidRigTypeToCustomRBXAnimationIds`](#humanoidRigTypeToCustomRBXAnimationIds) table on the client's character.\n\nYields when...\n- ...the client's character, humanoid, animator, or animate script aren't immediately available.\n\n:::tip\nSee [`ApplyAnimationProfile()`](#ApplyAnimationProfile) for a more convenient way of overriding default roblox character animations.\n:::\n\n```lua\n-- In a LocalScript\nlocal Animations = require(game.ReplicatedStorage.Animations.Package.AnimationsClient)\n\nAnimations:Init()\n\ntask.wait(5)\n\nprint(\"Applying r15 ninja jump & idle animations\")\n\n-- These animations will only work if your character is R15\nAnimations:ApplyCustomRBXAnimationIds({\n\t[Enum.HumanoidRigType.R15] = {\n\t\tjump = 656117878,\n\t\tidle = {\n\t\t\tAnimation1 = 656117400,\n\t\t\tAnimation2 = 656118341\n\t\t}\n\t}\n})\n```",
            "params": [
                {
                    "name": "humanoidRigTypeToCustomRBXAnimationIds",
                    "desc": "",
                    "lua_type": "humanoidRigTypeToCustomRBXAnimationIds"
                }
            ],
            "returns": [],
            "function_type": "method",
            "yields": true,
            "source": {
                "line": 584,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "ApplyRigCustomRBXAnimationIds",
            "desc": "Applies the animation ids specified in the [`humanoidRigTypeToCustomRBXAnimationIds`](#humanoidRigTypeToCustomRBXAnimationIds) table on the `rig`.\n\nYields when...\n- ...the `rig`'s humanoid or animate script aren't immediately available.\n\n:::warning\nThis function only works for R6/R15 NPCs that are local to the client or network-owned by the client and have a client-side `\"Animate\"` script in their model.\n:::\n:::tip\nSee [`ApplyRigAnimationProfile()`](#ApplyRigAnimationProfile) for a more convenient way of overriding default roblox character animations.\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "humanoidRigTypeToCustomRBXAnimationIds",
                    "desc": "",
                    "lua_type": "humanoidRigTypeToCustomRBXAnimationIds"
                }
            ],
            "returns": [],
            "function_type": "method",
            "yields": true,
            "source": {
                "line": 603,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "GetAnimationProfile",
            "desc": "Returns the [`humanoidRigTypeToCustomRBXAnimationIds`](api/AnimationsServer#humanoidRigTypeToCustomRBXAnimationIds) table found in the profile module script `Deps.<animationProfileName>`, or not if it doesn't exist.",
            "params": [
                {
                    "name": "animationProfileName",
                    "desc": "",
                    "lua_type": "string"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "animationProfile humanoidRigTypeToCustomRBXAnimationIds?"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 612,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "ApplyAnimationProfile",
            "desc": "Applies the animation ids found in the animation profile on the client's character.\n\nYields when...\n- ...the client's character, humanoid, animator, or animate script aren't immediately available.\n\n:::info\nFor more information on setting up animation profiles check out [animation profiles tutorial](/docs/animation-profiles).\n:::",
            "params": [
                {
                    "name": "animationProfileName",
                    "desc": "",
                    "lua_type": "string"
                }
            ],
            "returns": [],
            "function_type": "method",
            "yields": true,
            "source": {
                "line": 628,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "ApplyRigAnimationProfile",
            "desc": "Applies the animation ids found in the animation profile on the `rig`.\n\nYields when...\n- ...the `rig`'s humanoid or animate script aren't immediately available.\n\n:::warning\nThis function only works for R6/R15 NPCs that are local to the client or network-owned by the client and have a client-side `\"Animate\"` script in their model.\n:::\n:::info\nFor more information on setting up animation profiles check out [animation profiles tutorial](/docs/animation-profiles).\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "animationProfileName",
                    "desc": "",
                    "lua_type": "string"
                }
            ],
            "returns": [],
            "function_type": "method",
            "yields": true,
            "source": {
                "line": 647,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AwaitAllTracksLoaded",
            "desc": "Yields until the client has been registered and then until all animation tracks have loaded.\n\n:::caution *changed in version 2.0.0-rc1*\nRenamed: ~~`AwaitLoaded`~~ -> `AwaitAllTracksLoaded`\n:::\n\n```lua\n-- In a LocalScript\n-- [WARNING] For this to work you need animation ids under the rig type of \"Player\" in the 'AnimationIds' module\nlocal Animations = require(game.ReplicatedStorage.Animations.Package.AnimationsClient)\n\nAnimations:Init({\n\tAutoLoadAllPlayerTracks = true -- Defaults to false\n})\n\nAnimations:AwaitAllTracksLoaded()\n\nprint(\"Animation tracks finished loading on the client!\")\n```",
            "params": [],
            "returns": [],
            "function_type": "method",
            "yields": true,
            "source": {
                "line": 673,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AwaitAllRigTracksLoaded",
            "desc": "Yields until the `rig` has been registered and then until all animation tracks have loaded.\n\n:::caution *changed in version 2.0.0-rc1*\nRenamed: ~~`AwaitRigTracksLoaded`~~ -> `AwaitAllRigTracksLoaded`\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                }
            ],
            "returns": [],
            "function_type": "method",
            "yields": true,
            "source": {
                "line": 685,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AwaitTracksLoadedAt",
            "desc": "Yields until the client has been registered and then until all animation tracks have loaded at `path`.\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [],
            "function_type": "method",
            "yields": true,
            "source": {
                "line": 697,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AwaitRigTracksLoadedAt",
            "desc": "Yields until the `rig` has been registered and then until all animation tracks have loaded at `path`.\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [],
            "function_type": "method",
            "yields": true,
            "source": {
                "line": 709,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AreAllTracksLoaded",
            "desc": "Returns if the client has had all its animation tracks loaded.\n\n:::caution *changed in version 2.0.0-rc1*\nRenamed: ~~`AreTracksLoaded`~~ -> `AreAllTracksLoaded`\n:::",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 721,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AreAllRigTracksLoaded",
            "desc": "Returns if the `rig` has had all its animation tracks loaded.\n\n:::caution *changed in version 2.0.0-rc1*\nRenamed: ~~`AreRigTracksLoaded`~~ -> `AreAllRigTracksLoaded`\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 733,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AreTracksLoadedAt",
            "desc": "Returns if the client has had its animation tracks loaded at `path`.\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 745,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AreRigTracksLoadedAt",
            "desc": "Returns if the `rig` has had its animation tracks loaded at `path`.\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 757,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "LoadAllTracks",
            "desc": "Creates animation tracks from all animation ids in [`AnimationIds`](/api/AnimationIds) for the client.\n\n:::caution *changed in version 2.0.0-rc1*\nRenamed: ~~`LoadTracks`~~ -> `LoadAllTracks`\n:::",
            "params": [],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 768,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "LoadAllRigTracks",
            "desc": "Creates animation tracks from all animation ids in [`AnimationIds`](/api/AnimationIds) for the `rig`.\n\n:::caution *changed in version 2.0.0-rc1*\nRenamed: ~~`LoadRigTracks`~~ -> `LoadAllRigTracks`\n\nRequires `Animations:RegisterRig()` before usage.\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 781,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "LoadTracksAt",
            "desc": "Creates animation tracks from all animation ids in [`AnimationIds`](/api/AnimationIds) for the client at `path`.\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 792,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "LoadRigTracksAt",
            "desc": "Creates animation tracks from all animation ids in [`AnimationIds`](/api/AnimationIds) for the `rig` at `path`.\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 803,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "GetTrack",
            "desc": "Returns a client animation track or nil.",
            "params": [
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTrack?"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 812,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "GetRigTrack",
            "desc": "Returns a `rig` animation track or nil.",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTrack?"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 821,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "PlayTrack",
            "desc": "Returns a playing client animation track.",
            "params": [
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                },
                {
                    "name": "fadeTime",
                    "desc": "",
                    "lua_type": "number?"
                },
                {
                    "name": "weight",
                    "desc": "",
                    "lua_type": "number?"
                },
                {
                    "name": "speed",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTrack"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 833,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "PlayRigTrack",
            "desc": "Returns a playing `rig` animation track.",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                },
                {
                    "name": "fadeTime",
                    "desc": "",
                    "lua_type": "number?"
                },
                {
                    "name": "weight",
                    "desc": "",
                    "lua_type": "number?"
                },
                {
                    "name": "speed",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTrack"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 845,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "StopTrack",
            "desc": "Returns a stopped client animation track.",
            "params": [
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                },
                {
                    "name": "fadeTime",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTrack"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 855,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "StopRigTrack",
            "desc": "Returns a stopped `rig` animation track.",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                },
                {
                    "name": "fadeTime",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTrack"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 865,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "StopPlayingTracks",
            "desc": "Returns the stopped client animation tracks.\n\n:::caution *changed in version 2.0.0-rc1*\nRenamed: ~~`StopAllTracks`~~ -> `StopPlayingTracks`\n:::",
            "params": [
                {
                    "name": "fadeTime",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "{AnimationTrack?}"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 878,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "StopRigPlayingTracks",
            "desc": "Returns the stopped `rig` animation tracks.\n\n:::caution *changed in version 2.0.0-rc1*\nRenamed: ~~`StopRigAllTracks`~~ -> `StopRigPlayingTracks`\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "fadeTime",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "{AnimationTrack?}"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 891,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "GetPlayingTracks",
            "desc": "Returns the playing client animation tracks.\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "{AnimationTrack?}"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 901,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "GetRigPlayingTracks",
            "desc": "Returns the playing `rig` animation tracks.\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "{AnimationTrack?}"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 912,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "StopTracksOfPriority",
            "desc": "Returns the stopped client animation tracks.",
            "params": [
                {
                    "name": "animationPriority",
                    "desc": "",
                    "lua_type": "Enum.AnimationPriority"
                },
                {
                    "name": "fadeTime",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "{AnimationTrack?}"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 922,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "StopRigTracksOfPriority",
            "desc": "Returns the stopped `rig` animation tracks.",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "animationPriority",
                    "desc": "",
                    "lua_type": "Enum.AnimationPriority"
                },
                {
                    "name": "fadeTime",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "{AnimationTrack?}"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 932,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "GetTrackFromAlias",
            "desc": "Returns a client animation track or nil.",
            "params": [
                {
                    "name": "alias",
                    "desc": "",
                    "lua_type": "any"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTrack?"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 941,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "GetRigTrackFromAlias",
            "desc": "Returns a `rig` animation track or nil.",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "alias",
                    "desc": "",
                    "lua_type": "any"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTrack?"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 950,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "PlayTrackFromAlias",
            "desc": "Returns a playing client animation track.",
            "params": [
                {
                    "name": "alias",
                    "desc": "",
                    "lua_type": "any"
                },
                {
                    "name": "fadeTime",
                    "desc": "",
                    "lua_type": "number?"
                },
                {
                    "name": "weight",
                    "desc": "",
                    "lua_type": "number?"
                },
                {
                    "name": "speed",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTrack"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 962,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "PlayRigTrackFromAlias",
            "desc": "Returns a playing `rig` animation track.",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "alias",
                    "desc": "",
                    "lua_type": "any"
                },
                {
                    "name": "fadeTime",
                    "desc": "",
                    "lua_type": "number?"
                },
                {
                    "name": "weight",
                    "desc": "",
                    "lua_type": "number?"
                },
                {
                    "name": "speed",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTrack"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 974,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "StopTrackFromAlias",
            "desc": "Returns a stopped client animation track.",
            "params": [
                {
                    "name": "alias",
                    "desc": "",
                    "lua_type": "any"
                },
                {
                    "name": "fadeTime",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTrack"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 984,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "StopRigTrackFromAlias",
            "desc": "Returns a stopped `rig` animation track.",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "alias",
                    "desc": "",
                    "lua_type": "any"
                },
                {
                    "name": "fadeTime",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTrack"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 994,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "SetTrackAlias",
            "desc": "Sets an alias to be the equivalent of the path for a client animation track.\n\n:::tip\nYou can use the alias as the last key in the path. Useful for a table of animations. Example:\n\n```lua\n-- In ReplicatedStorage.Animations.Deps.AnimationIds\nlocal animationIds = {\n\tPlayer = {\n\t\tFistsCombat = {\n\t\t\t-- Fists 3 hit combo\n\t\t\tCombo = {\n\t\t\t\t[1] = 1234567,\n\t\t\t\t[2] = 1234567,\n\t\t\t\t[3] = 1234567\n\t\t\t},\n\n\t\t\t-- Fists heavy attack\n\t\t\tHeavyAttack = 1234567\n\t\t},\n\n\t\tSwordCombat = {\n\t\t\t-- Sword 3 hit combo\n\t\t\tCombo = {\n\t\t\t\t[1] = 1234567,\n\t\t\t\t[2] = 1234567,\n\t\t\t\t[3] = 1234567\n\t\t\t},\n\n\t\t\t-- Sword heavy attack\n\t\t\tHeavyAttack = 1234567\n\t\t}\n\t}\n}\n```\n\n```lua\n-- In a LocalScript\n\n-- After the client's animation tracks are loaded...\n\nlocal heavyAttackAlias = \"HeavyAttack\" -- We want this alias in order to call Animations:PlayTrackFromAlias(heavyAttackAlias) regardless what weapon is equipped\n\nlocal currentEquippedWeapon\n\nlocal function updateHeavyAttackAliasPath()\n\tlocal alias = heavyAttackAlias\n\tlocal path = currentEquippedWeapon .. \"Combat\"\n\n\tAnimations:SetTrackAlias(alias, path) -- Running this will search first \"path.alias\" and then search \"path\" if it didn't find \"path.alias\"\nend\n\nlocal function equipNewWeapon(weaponName)\n\tcurrentEquippedWeapon = weaponName\n\n\tupdateHeavyAttackAliasPath()\nend\n\nequipNewWeapon(\"Fists\")\n\nAnimations:PlayTrackFromAlias(heavyAttackAlias) -- Plays \"FistsCombat.HeavyAttack\" on the client's character\n\nequipNewWeapon(\"Sword\")\n\nAnimations:PlayTrackFromAlias(heavyAttackAlias) -- Plays \"SwordCombat.HeavyAttack\" on the client's character\n```\n:::",
            "params": [
                {
                    "name": "alias",
                    "desc": "",
                    "lua_type": "any"
                },
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 1069,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "SetRigTrackAlias",
            "desc": "Sets an alias to be the equivalent of the path for a `rig` animation track.\n\n:::tip\nSame tip for [`Animations:SetTrackAlias()`](#SetTrackAlias) applies here.\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "alias",
                    "desc": "",
                    "lua_type": "any"
                },
                {
                    "name": "path",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 1082,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "RemoveTrackAlias",
            "desc": "Removes the alias for a client animation track.",
            "params": [
                {
                    "name": "alias",
                    "desc": "",
                    "lua_type": "any"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 1090,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "RemoveRigTrackAlias",
            "desc": "Removes the alias for a `rig` animation track.",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "alias",
                    "desc": "",
                    "lua_type": "any"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 1098,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AttachAnimatedObject",
            "desc": "Attaches the animated object to the client's character.\n\n:::note\nThis does not replicate to the server.\n:::\n:::tip\nEnable [`initOptions.AnimatedObjectsDebugMode`](/api/AnimationsClient/#initOptions) for detailed prints about animated objects.\n:::\n:::info\nFor more information on setting up animated objects check out [animated objects tutorial](/docs/animated-objects).\n:::",
            "params": [
                {
                    "name": "animatedObjectPath",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [],
            "function_type": "method",
            "tags": [
                "Beta"
            ],
            "source": {
                "line": 1117,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AttachRigAnimatedObject",
            "desc": "Attaches the animated object to the `rig`.\n\n:::note\nThis does not replicate to the server.\n:::\n:::tip\nEnable [`initOptions.AnimatedObjectsDebugMode`](/api/AnimationsClient/#initOptions) for detailed prints about animated objects.\n:::\n:::info\nFor more information on setting up animated objects check out [animated objects tutorial](/docs/animated-objects).\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "animatedObjectPath",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [],
            "function_type": "method",
            "tags": [
                "Beta"
            ],
            "source": {
                "line": 1136,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "DetachAnimatedObject",
            "desc": "Detaches the animated object from the client's character.\n\n:::note\nThis does not replicate to the server.\n:::\n:::tip\nEnable [`initOptions.AnimatedObjectsDebugMode`](/api/AnimationsClient/#initOptions) for detailed prints about animated objects.\n:::\n:::info\nFor more information on setting up animated objects check out [animated objects tutorial](/docs/animated-objects).\n:::",
            "params": [
                {
                    "name": "animatedObjectPath",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [],
            "function_type": "method",
            "tags": [
                "Beta"
            ],
            "source": {
                "line": 1155,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "DetachRigAnimatedObject",
            "desc": "Detaches the animated object from the `rig`.\n\n:::note\nThis does not replicate to the server.\n:::\n:::tip\nEnable [`initOptions.AnimatedObjectsDebugMode`](/api/AnimationsClient/#initOptions) for detailed prints about animated objects.\n:::\n:::info\nFor more information on setting up animated objects check out [animated objects tutorial](/docs/animated-objects).\n:::",
            "params": [
                {
                    "name": "rig",
                    "desc": "",
                    "lua_type": "Model"
                },
                {
                    "name": "animatedObjectPath",
                    "desc": "",
                    "lua_type": "path"
                }
            ],
            "returns": [],
            "function_type": "method",
            "tags": [
                "Beta"
            ],
            "source": {
                "line": 1174,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        }
    ],
    "properties": [
        {
            "name": "DepsFolderPath",
            "desc": "Set the path to the dependencies folder if you have moved it from its original location inside of the root `Animations` folder.\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "lua_type": "nil",
            "source": {
                "line": 78,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AutoLoadAllPlayerTracks",
            "desc": "If set to true, client animation tracks will be loaded each time the client spawns.\n\n:::warning\nMust have animation ids under [`rigType`](/api/AnimationIds#rigType) of **\"Player\"** in the [`AnimationIds`](/api/AnimationIds) module.\n:::\n\n:::caution *changed in version 2.0.0-rc1*\nRenamed: ~~`AutoLoadPlayerTracks`~~ -> `AutoLoadAllPlayerTracks`\n:::",
            "lua_type": "false",
            "source": {
                "line": 94,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "TimeToLoadPrints",
            "desc": "If set to true, makes helpful prints about the time it takes to pre-load and load animations.",
            "lua_type": "true",
            "source": {
                "line": 102,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "EnableAutoCustomRBXAnimationIds",
            "desc": "If set to true, applies the [`AutoCustomRBXAnimationIds`](/api/AutoCustomRBXAnimationIds) module table to the client on spawn.\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "lua_type": "false",
            "source": {
                "line": 113,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "AnimatedObjectsDebugMode",
            "desc": "If set to true, prints will be made to help debug attaching and detaching animated objects.",
            "lua_type": "false",
            "source": {
                "line": 121,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "PreloadAsyncProgressed",
            "desc": "Fires when `ContentProvider:PreloadAsync()` finishes pre-loading one animation instance.\n\n```lua\n-- In a LocalScript\nAnimations.PreloadAsyncProgressed:Connect(function(n, total, loadedAnimInstance)\n\tprint(\"ContentProvider:PreloadAsync() finished pre-loading one:\", n, total, loadedAnimInstance)\nend)\n```\n\n:::tip *added in version 2.0.0-rc1*\n:::",
            "lua_type": "RBXScriptSignal",
            "source": {
                "line": 441,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        }
    ],
    "types": [
        {
            "name": "initOptions",
            "desc": "Gets applied to [`Properties`](/api/AnimationsClient/#properties).",
            "fields": [
                {
                    "name": "AutoLoadAllPlayerTracks",
                    "lua_type": "false",
                    "desc": ""
                },
                {
                    "name": "TimeToLoadPrints",
                    "lua_type": "true",
                    "desc": ""
                },
                {
                    "name": "EnableAutoCustomRBXAnimationIds",
                    "lua_type": "false",
                    "desc": ""
                },
                {
                    "name": "AnimatedObjectsDebugMode",
                    "lua_type": "false",
                    "desc": ""
                },
                {
                    "name": "DepsFolderPath",
                    "lua_type": "string?",
                    "desc": "Only use if you've moved the 'Deps' folder from its original location."
                }
            ],
            "source": {
                "line": 31,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "path",
            "desc": "```lua\n-- In a LocalScript\nlocal Animations = require(game.ReplicatedStorage.Animations.Package.AnimationsClient)\n\n\n-- These are all valid options for retrieving an animation track\nlocal animationPath = \"Jump\" -- A single key (any type)\n\nlocal animationPath = {\"Dodge\", Vector3.xAxis} -- An array path (values of any type)\n\nlocal animationPath = \"Climb.Right\" -- A path seperated by \".\" (string)\n\n\nlocal animationTrack = Animations:GetTrack(animationPath)\n```",
            "lua_type": "{any} | string",
            "source": {
                "line": 53,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "customRBXAnimationIds",
            "desc": "A table of animation ids to replace the default roblox animation ids.\n\n:::info\nRoblox applies the `\"walk\"` animation id for `R6` characters and the `\"run\"` animation id for `R15` characters (instead of both).\n:::",
            "fields": [
                {
                    "name": "run",
                    "lua_type": "number?",
                    "desc": ""
                },
                {
                    "name": "walk",
                    "lua_type": "number?",
                    "desc": ""
                },
                {
                    "name": "jump",
                    "lua_type": "number?",
                    "desc": ""
                },
                {
                    "name": "idle",
                    "lua_type": "{Animation1: number?, Animation2: number?}?",
                    "desc": ""
                },
                {
                    "name": "fall",
                    "lua_type": "number?",
                    "desc": ""
                },
                {
                    "name": "swim",
                    "lua_type": "number?",
                    "desc": ""
                },
                {
                    "name": "swimIdle",
                    "lua_type": "number?",
                    "desc": ""
                },
                {
                    "name": "climb",
                    "lua_type": "number?",
                    "desc": ""
                }
            ],
            "source": {
                "line": 460,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        },
        {
            "name": "humanoidRigTypeToCustomRBXAnimationIds",
            "desc": "A table mapping a `Enum.HumanoidRigType` to its supported animation ids that will replace the default roblox animation ids.",
            "fields": [
                {
                    "name": "[Enum.HumanoidRigType.R6]",
                    "lua_type": "customRBXAnimationIds?",
                    "desc": ""
                },
                {
                    "name": "[Enum.HumanoidRigType.R15]",
                    "lua_type": "customRBXAnimationIds?",
                    "desc": ""
                }
            ],
            "source": {
                "line": 469,
                "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
            }
        }
    ],
    "name": "AnimationsClient",
    "desc": ":::note\nRoblox model path: `Animations.Package.AnimationsClient`\n:::\n\n:::info\nAny reference to \"client animation tracks\" is referring to animation ids found under [`rigType`](/api/AnimationIds#rigType) of **\"Player\"** in the [`AnimationIds`](/api/AnimationIds) module.\n:::",
    "realm": [
        "Client"
    ],
    "source": {
        "line": 67,
        "path": "src/ReplicatedStorage/Animations/Package/AnimationsClient.lua"
    }
}