Skip to main content

ModelAnimationPlayer

Animates a Model

Update signals firing order

  • onPreUpdated
  • onCanUpdateModelChanged
  • onModelPreUpdated
  • animationModel.onUpdated
    • Fired through calling AnimationModel:update() or through AnimationModel:setInDefaultPosition() which calls AnimationModel:update()
  • onModelUpdated
  • onPreBoundUpdated
  • onUpdated

Properties​

maid​

ModelAnimationPlayer.maid: Maid

animationPlayer​

ModelAnimationPlayer.animationPlayer: AnimationPlayer

animationModel​

ModelAnimationPlayer.animationModel: AnimationModel

getTrack​

ModelAnimationPlayer.getTrack: (trackName: string) → CFrameTrack

onPlaying​

Signal
ModelAnimationPlayer.onPlaying: Signal

Fires when the current state changes to AnimationState.Playing. Only fires when update() is called.

onPaused​

Signal
ModelAnimationPlayer.onPaused: Signal

Fires when the current state changes to AnimationState.Paused. Only fires when update() is called.

onStopped​

Signal
ModelAnimationPlayer.onStopped: Signal

Fires when the current state changes to AnimationState.Stopped. Only fires when update() is called.

onStateChanged​

Signal
ModelAnimationPlayer.onStateChanged: Signal

Fires when the current state changes from the last update. Only fires when update() is called. See TimeUpdater.AnimationState

onAnimationLengthReached​

Signal
ModelAnimationPlayer.onAnimationLengthReached: Signal

Fires when the animation player current time reaches the current animation's length and isLooped is false.

onAnimationChanged​

Signal
ModelAnimationPlayer.onAnimationChanged: Signal

Fires when the current animation value changes from the last update. Only fires when update() is called.

onLooped​

Signal
ModelAnimationPlayer.onLooped: Signal

Fires when the current animation loops: the current time reaches the current animation's length while isLooped is true. Only fires when update() is called.

onPreUpdated​

Signal
ModelAnimationPlayer.onPreUpdated: Signal<(stepped: number) → ()>

Fires before current time, state, and model is updated.

onTimeUpdated​

Signal
ModelAnimationPlayer.onTimeUpdated: Signal<(stepped: number) → ()>

Fires after current time and state are updated, but before model is updated.

onPreBoundUpdated​

Signal
ModelAnimationPlayer.onPreBoundUpdated: Signal<(stepped: number) → ()>

Fires before AnimationPlayers bound to this with :bindToAnimationPlayer() are updated.

onUpdated​

Signal
ModelAnimationPlayer.onUpdated: Signal<(stepped: number) → ()>

Fires last after current time and state, AnimationModel, and bound AnimationPlayers are updated.

onCanUpdateModelChanged​

Signal
ModelAnimationPlayer.onCanUpdateModelChanged: Signal

Fires after canUpdateModel changes.

onModelRemoving​

Signal
ModelAnimationPlayer.onModelRemoving: Signal

Fires before AnimationModel is destroyed. Useful for disconnecting and destroying AnimationModel related events and Instances.

onModelChanged​

Signal
ModelAnimationPlayer.onModelChanged: Signal

Fires on a new AnimationModel set. Is called after onModelRemoving. If you are setting up a plugin, do not use this signal to initialize the AnimationModel as it is not called on first update, but during :setModel(). Instead, pass in the current AnimationModel.

Functions​

new​

Constructor
ModelAnimationPlayer.new(
animPlayer: AnimationPlayer,
getTrack: (trackName: string) → CFrameTrack
) → ()

Constructor. Creates a new ModelAnimationPlayer

Destroy​

Deconstructor
ModelAnimationPlayer:Destroy() → ()

Deconstructor

setModel​

ModelAnimationPlayer:setModel(newAnimationModel: AnimationModel) → AnimationModel

Sets the AnimationModel

update​

ModelAnimationPlayer:update(stepped: number) → ()

Updates AnimationPlayer and model position

getCanUpdateModel​

ModelAnimationPlayer:getCanUpdateModel() → boolean

Returns true if canUpdateModel

isActive​

ModelAnimationPlayer:isActive() → boolean

Returns true if currentState will update time

isInactive​

ModelAnimationPlayer:isInactive() → boolean

Returns true if currentState will NOT update time

isPlaying​

ModelAnimationPlayer:isPlaying() → boolean

Returns true if currentState is Playing

isPaused​

ModelAnimationPlayer:isPaused() → boolean

Returns true if currentState is Paused

isStopped​

ModelAnimationPlayer:isStopped() → boolean

Returns true if currentState is Stopped

isLooping​

ModelAnimationPlayer:isLooping() → boolean

Returns true if animation will loop

getIsLooping​

ModelAnimationPlayer:getIsLooping() → boolean

Returns true if animation will loop

getTimeScale​

ModelAnimationPlayer:getTimeScale() → number

Returns the current time scale

getUpdateDirection​

ModelAnimationPlayer:getUpdateDirection() → boolean

Returns the current update direction

setIsLooped​

ModelAnimationPlayer:setIsLooped(value: boolean) → ()

Set whether animation loops when it reaches it length

setTimeScale​

ModelAnimationPlayer:setTimeScale(value: boolean) → ()

Sets how fast time will move

setUpdateDirection​

ModelAnimationPlayer:setUpdateDirection(value: boolean) → ()

Sets which direction time moves: forwards (true) or backwards (false).

setAnimation​

ModelAnimationPlayer:setAnimation(
newAnimation: Animation | string | any,
keepCurrentTime: boolean | number | nil
) → ()

Sets the current animation

setCurrentTime​

ModelAnimationPlayer:setCurrentTime(newCurrentTime: number) → ()

Sets the currentTime

setName​

ModelAnimationPlayer:setName(name: string) → ()

Sets the name

restart​

ModelAnimationPlayer:restart() → ()

Restarts the AnimationPlayer Will set the current time to 0.0 If is currently not playing, will also change state to Playing

play​

ModelAnimationPlayer:play() → ()

Starts the AnimationPlayer and plays the current animation

pause​

ModelAnimationPlayer:pause() → ()

Pauses the AnimationPlayer

stop​

ModelAnimationPlayer:stop() → ()

Stops the AnimationPlayer. Next time :play() is called, the animation will start at 0.0 (only when state changes from Stopped to Playing)

playWithEasing​

ModelAnimationPlayer:playWithEasing(tweenData: TimeUpdaterTweenData) → ()

Eases then transitions to Playing state

pauseWithEasing​

ModelAnimationPlayer:pauseWithEasing(tweenData: TimeUpdaterTweenData) → ()

Eases then transitions to Paused state

stopWithEasing​

ModelAnimationPlayer:stopWithEasing(tweenData: TimeUpdaterTweenData) → ()

Eases then transitions to Stopped state

getCurrentTime​

ModelAnimationPlayer:getCurrentTime() → number

Returns the current time

getCurrentModelTime​

ModelAnimationPlayer:getCurrentModelTime() → number

Returns the current model time

getCurrentState​

ModelAnimationPlayer:getCurrentState() → AnimationState

Returns the currentState of the animation player

getCurrentData​

ModelAnimationPlayer:getCurrentData() → AnimationTimeData?

getCurrentPosition​

ModelAnimationPlayer:getCurrentPosition() → number?

Returns current track position

getCurrentTrackSpeed​

ModelAnimationPlayer:getCurrentTrackSpeed() → number

Returns current trackSpeed

getCurrentTrackName​

ModelAnimationPlayer:getCurrentTrackName() → string?

Returns current trackName

getTrigger​

ModelAnimationPlayer:getTrigger(triggerName: string) → Signal

See AnimationPlayer:getTrigger()

getCurrentModel​

ModelAnimationPlayer:getCurrentModel() → Model?

Returns the current model Instance used to animate

setUpdateInterval​

ModelAnimationPlayer:setUpdateInterval(newInterval: number) → ()

Sets the updateInterval Setting with also reset the current updateCounter

setCanUpdateModel​

ModelAnimationPlayer:setCanUpdateModel(newValue: boolean) → ()

Sets if Model can be updated

setRootUpdater​

ModelAnimationPlayer:setRootUpdater(newRoot: Updater) → ()

Sets the object which updates this Used for AnimationPlayer binding

addToUpdater​

ModelAnimationPlayer:addToUpdater(otherUpdater: Updater) → ()

Adds an object to be updated by this object Used for AnimationPlayer binding

removeFromUpdater​

ModelAnimationPlayer:removeFromUpdater(otherUpdater: Updater) → ()

Removes an object from being updated by this Used for AnimationPlayer binding

bindToAnimationPlayer​

ModelAnimationPlayer:bindToAnimationPlayer(
parentAnimPlayer: ModelAnimationPlayer,
offset: number
) → ()

Binds this ModelAnimationPlayer's update to another ModelAnimationPlayer and makes it so this updates directly after the other. Will respond to state changes as well. If you just want to respond to time changes, use :bindToAnimationPlayerTime()

bindToAnimationPlayerTime​

ModelAnimationPlayer:bindToAnimationPlayerTime(
parentAnimPlayer: ModelAnimationPlayer,--

ModelAnimationPlayer to bind to

offset: number?--

Optional time offset

) → ()

Binds this ModelAnimationPlayer's update to another ModelAnimationPlayer, but only to it's current time, and makes it so this updates directly after the other. If you would also want state changes from the other AnimationPlayer to affect this, use :bindToAnimationPlayer()

unbindFromAnimationPlayer​

ModelAnimationPlayer:unbindFromAnimationPlayer() → ()

Unbinds the current bound ModelAnimationPlayer

Show raw api
{
    "functions": [
        {
            "name": "new",
            "desc": "Constructor.\nCreates a new ModelAnimationPlayer",
            "params": [
                {
                    "name": "animPlayer",
                    "desc": "",
                    "lua_type": "AnimationPlayer"
                },
                {
                    "name": "getTrack",
                    "desc": "",
                    "lua_type": "(trackName: string) -> CFrameTrack"
                }
            ],
            "returns": [],
            "function_type": "static",
            "tags": [
                "Constructor"
            ],
            "source": {
                "line": 138,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "Destroy",
            "desc": "Deconstructor",
            "params": [],
            "returns": [],
            "function_type": "method",
            "tags": [
                "Deconstructor"
            ],
            "source": {
                "line": 235,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "_setupAnimationPlayer",
            "desc": "Sets up AnimationPlayer",
            "params": [
                {
                    "name": "animPlayer",
                    "desc": "",
                    "lua_type": "AnimationPlayer"
                }
            ],
            "returns": [],
            "function_type": "method",
            "private": true,
            "source": {
                "line": 268,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "setModel",
            "desc": "Sets the AnimationModel",
            "params": [
                {
                    "name": "newAnimationModel",
                    "desc": "",
                    "lua_type": "AnimationModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationModel"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 306,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "update",
            "desc": "Updates AnimationPlayer and model position",
            "params": [
                {
                    "name": "stepped",
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 323,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "getCanUpdateModel",
            "desc": "Returns true if canUpdateModel",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 357,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "_doUpdateModel",
            "desc": "Updates updateInterval then updates train model",
            "params": [
                {
                    "name": "stepped",
                    "desc": "",
                    "lua_type": "any"
                }
            ],
            "returns": [],
            "function_type": "method",
            "private": true,
            "source": {
                "line": 364,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "_updateModel",
            "desc": "Updates the position of the Model in the world",
            "params": [
                {
                    "name": "stepped",
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "returns": [],
            "function_type": "method",
            "private": true,
            "source": {
                "line": 385,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "isActive",
            "desc": "Returns true if `currentState` will update time",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 414,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "isInactive",
            "desc": "Returns true if `currentState` will NOT update time",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 420,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "isPlaying",
            "desc": "Returns true if currentState is Playing",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 426,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "isPaused",
            "desc": "Returns true if currentState is Paused",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 432,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "isStopped",
            "desc": "Returns true if currentState is Stopped",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 438,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "isLooping",
            "desc": "Returns true if animation will loop",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 444,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "getIsLooping",
            "desc": "Returns true if animation will loop",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 450,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "getTimeScale",
            "desc": "Returns the current time scale",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 456,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "getUpdateDirection",
            "desc": "Returns the current update direction",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 462,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "setIsLooped",
            "desc": "Set whether animation loops when it reaches it length",
            "params": [
                {
                    "name": "value",
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 468,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "setTimeScale",
            "desc": "Sets how fast time will move",
            "params": [
                {
                    "name": "value",
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 476,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "setUpdateDirection",
            "desc": "Sets which direction time moves: forwards (true) or backwards (false).",
            "params": [
                {
                    "name": "value",
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 484,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "setAnimation",
            "desc": "Sets the current animation",
            "params": [
                {
                    "name": "newAnimation",
                    "desc": "",
                    "lua_type": "Animation | string | any"
                },
                {
                    "name": "keepCurrentTime",
                    "desc": "",
                    "lua_type": "boolean | number | nil"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 493,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "setCurrentTime",
            "desc": "Sets the currentTime",
            "params": [
                {
                    "name": "newCurrentTime",
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 499,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "setName",
            "desc": "Sets the name",
            "params": [
                {
                    "name": "name",
                    "desc": "",
                    "lua_type": "string"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 507,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "restart",
            "desc": "Restarts the AnimationPlayer\nWill set the current time to 0.0\nIf is currently not playing, will also change state to Playing",
            "params": [],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 516,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "play",
            "desc": "Starts the AnimationPlayer and plays the current animation",
            "params": [],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 521,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "pause",
            "desc": "Pauses the AnimationPlayer",
            "params": [],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 526,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "stop",
            "desc": "Stops the AnimationPlayer.\nNext time :play() is called, the animation will start at 0.0\n(only when state changes from Stopped to Playing)",
            "params": [],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 533,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "playWithEasing",
            "desc": "Eases then transitions to Playing state",
            "params": [
                {
                    "name": "tweenData",
                    "desc": "",
                    "lua_type": "TimeUpdaterTweenData"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 539,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "pauseWithEasing",
            "desc": "Eases then transitions to Paused state",
            "params": [
                {
                    "name": "tweenData",
                    "desc": "",
                    "lua_type": "TimeUpdaterTweenData"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 545,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "stopWithEasing",
            "desc": "Eases then transitions to Stopped state",
            "params": [
                {
                    "name": "tweenData",
                    "desc": "",
                    "lua_type": "TimeUpdaterTweenData"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 551,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "getCurrentTime",
            "desc": "Returns the current time",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 557,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "getCurrentModelTime",
            "desc": "Returns the current model time",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 563,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "getCurrentState",
            "desc": "Returns the currentState of the animation player",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationState"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 569,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "getCurrentData",
            "desc": "",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "AnimationTimeData?"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 574,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "getCurrentPosition",
            "desc": "Returns current track position",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 580,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "getCurrentTrackSpeed",
            "desc": "Returns current trackSpeed",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 592,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "getCurrentTrackName",
            "desc": "Returns current trackName",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "string?"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 604,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "getTrigger",
            "desc": "See AnimationPlayer:getTrigger()",
            "params": [
                {
                    "name": "triggerName",
                    "desc": "",
                    "lua_type": "string"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Signal"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 616,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "getCurrentModel",
            "desc": "Returns the current model Instance used to animate",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Model?"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 622,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "setUpdateInterval",
            "desc": "Sets the updateInterval\nSetting with also reset the current updateCounter",
            "params": [
                {
                    "name": "newInterval",
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 629,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "setCanUpdateModel",
            "desc": "Sets if Model can be updated",
            "params": [
                {
                    "name": "newValue",
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 638,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "setRootUpdater",
            "desc": "Sets the object which updates this\nUsed for AnimationPlayer binding",
            "params": [
                {
                    "name": "newRoot",
                    "desc": "",
                    "lua_type": "Updater"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 647,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "addToUpdater",
            "desc": "Adds an object to be updated by this object\nUsed for AnimationPlayer binding",
            "params": [
                {
                    "name": "otherUpdater",
                    "desc": "",
                    "lua_type": "Updater"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 654,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "removeFromUpdater",
            "desc": "Removes an object from being updated by this\nUsed for AnimationPlayer binding",
            "params": [
                {
                    "name": "otherUpdater",
                    "desc": "",
                    "lua_type": "Updater"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 661,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "bindToAnimationPlayer",
            "desc": "Binds this ModelAnimationPlayer's update to another ModelAnimationPlayer\nand makes it so this updates directly after the other.\nWill respond to state changes as well.\nIf you just want to respond to time changes, use `:bindToAnimationPlayerTime()`",
            "params": [
                {
                    "name": "parentAnimPlayer",
                    "desc": "",
                    "lua_type": "ModelAnimationPlayer"
                },
                {
                    "name": "offset",
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 677,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "bindToAnimationPlayerTime",
            "desc": "Binds this ModelAnimationPlayer's update to another ModelAnimationPlayer, but only to it's current time,\nand makes it so this updates directly after the other.\nIf you would also want state changes from the other AnimationPlayer to affect this,\nuse `:bindToAnimationPlayer()`",
            "params": [
                {
                    "name": "parentAnimPlayer",
                    "desc": "ModelAnimationPlayer to bind to",
                    "lua_type": "ModelAnimationPlayer"
                },
                {
                    "name": "offset",
                    "desc": "Optional time offset",
                    "lua_type": "number?"
                }
            ],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 696,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "_bindToAnimationPlayer",
            "desc": "Internally sets new parent updater",
            "params": [
                {
                    "name": "parentAnimPlayer",
                    "desc": "",
                    "lua_type": "ModelAnimationPlayer"
                },
                {
                    "name": "offset",
                    "desc": "",
                    "lua_type": "number"
                }
            ],
            "returns": [],
            "function_type": "method",
            "private": true,
            "source": {
                "line": 708,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "unbindFromAnimationPlayer",
            "desc": "Unbinds the current bound ModelAnimationPlayer",
            "params": [],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 722,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        }
    ],
    "properties": [
        {
            "name": "maid",
            "desc": "",
            "lua_type": "Maid",
            "source": {
                "line": 38,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "animationPlayer",
            "desc": "",
            "lua_type": "AnimationPlayer",
            "source": {
                "line": 41,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "animationModel",
            "desc": "",
            "lua_type": "AnimationModel",
            "source": {
                "line": 44,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "getTrack",
            "desc": "",
            "lua_type": "(trackName: string) -> CFrameTrack",
            "source": {
                "line": 47,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "onPlaying",
            "desc": "Fires when the current state changes to `AnimationState.Playing`.\nOnly fires when `update()` is called.",
            "lua_type": "Signal",
            "tags": [
                "Signal"
            ],
            "source": {
                "line": 53,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "onPaused",
            "desc": "Fires when the current state changes to `AnimationState.Paused`.\nOnly fires when `update()` is called.",
            "lua_type": "Signal",
            "tags": [
                "Signal"
            ],
            "source": {
                "line": 59,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "onStopped",
            "desc": "Fires when the current state changes to `AnimationState.Stopped`.\nOnly fires when `update()` is called.",
            "lua_type": "Signal",
            "tags": [
                "Signal"
            ],
            "source": {
                "line": 65,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "onStateChanged",
            "desc": "Fires when the current state changes from the last update.\nOnly fires when `update()` is called.\nSee TimeUpdater.AnimationState",
            "lua_type": "Signal",
            "tags": [
                "Signal"
            ],
            "source": {
                "line": 72,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "onAnimationLengthReached",
            "desc": "Fires when the animation player current time reaches the current animation's length and `isLooped` is `false`.",
            "lua_type": "Signal",
            "tags": [
                "Signal"
            ],
            "source": {
                "line": 77,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "onAnimationChanged",
            "desc": "Fires when the current animation value changes from the last update.\nOnly fires when `update()` is called.",
            "lua_type": "Signal",
            "tags": [
                "Signal"
            ],
            "source": {
                "line": 83,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "onLooped",
            "desc": "Fires when the current animation loops: the current time reaches the current animation's length while `isLooped` is `true`.\nOnly fires when `update()` is called.",
            "lua_type": "Signal",
            "tags": [
                "Signal"
            ],
            "source": {
                "line": 89,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "onPreUpdated",
            "desc": "Fires before current time, state, and model is updated.",
            "lua_type": "Signal<(stepped: number) -> ()>",
            "tags": [
                "Signal"
            ],
            "source": {
                "line": 94,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "onTimeUpdated",
            "desc": "Fires after current time and state are updated, but before model is updated.",
            "lua_type": "Signal<(stepped: number) -> ()>",
            "tags": [
                "Signal"
            ],
            "source": {
                "line": 99,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "onPreBoundUpdated",
            "desc": "Fires before AnimationPlayers bound to this with `:bindToAnimationPlayer()` are updated.",
            "lua_type": "Signal<(stepped: number) -> ()>",
            "tags": [
                "Signal"
            ],
            "source": {
                "line": 104,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "onUpdated",
            "desc": "Fires last after current time and state, AnimationModel, and bound AnimationPlayers are updated.",
            "lua_type": "Signal<(stepped: number) -> ()>",
            "tags": [
                "Signal"
            ],
            "source": {
                "line": 109,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "onCanUpdateModelChanged",
            "desc": "Fires after `canUpdateModel` changes.",
            "lua_type": "Signal",
            "tags": [
                "Signal"
            ],
            "source": {
                "line": 114,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "onModelRemoving",
            "desc": "Fires before AnimationModel is destroyed.\nUseful for disconnecting and destroying AnimationModel related events and Instances.",
            "lua_type": "Signal",
            "tags": [
                "Signal"
            ],
            "source": {
                "line": 120,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        },
        {
            "name": "onModelChanged",
            "desc": "Fires on a new AnimationModel set. Is called after `onModelRemoving`.\nIf you are setting up a plugin, do not use this signal to initialize the `AnimationModel` as it is not called\non first update, but during `:setModel()`. Instead, pass in the current AnimationModel.",
            "lua_type": "Signal",
            "tags": [
                "Signal"
            ],
            "source": {
                "line": 127,
                "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
            }
        }
    ],
    "types": [],
    "name": "ModelAnimationPlayer",
    "desc": "Animates a Model\n#### Update signals firing order\n- onPreUpdated\n- onCanUpdateModelChanged\n- onModelPreUpdated\n- animationModel.onUpdated\n\t- Fired through calling `AnimationModel:update()` or through `AnimationModel:setInDefaultPosition()` which calls `AnimationModel:update()`\n- onModelUpdated\n- onPreBoundUpdated\n- onUpdated",
    "source": {
        "line": 35,
        "path": "src/shared/modelAnimationPlayer/ModelAnimationPlayer.lua"
    }
}