# llGetAnimation

*LSL function*

```lsl
string string llGetAnimation(key avatar);
```

- `key avatar`: UUID of the avatar in the same region.

- Returns: `string`
- Energy: 10

[llGetAgentInfo](/functions/llGetAgentInfo/) provides information on some animation states not covered by this function (typing, away, busy). [llGetAnimationList](/functions/llGetAnimationList/) provides more detailed information about the running animations, but may not reflect avatar state as accurately as `llGetAnimation`.

Returns a [string](https://wiki.secondlife.com/wiki/string) that is the name of the currently playing locomotion animation for avatar `id`. See the table below.

```lsl title="How to use" frame="terminal"
string result = llGetAnimation(NULL_KEY);
```

## Specification

<table>
	<caption>**Complete list of return values as of August 15, 2011.**[^wiki-5b4dd5]</caption>
	<tr>
		<td>

			**[Overridable](https://wiki.secondlife.com/wiki/Category:LSL_Animation/Override) values**

			| Value | Type | Description | Default |
			| --- | --- | --- | --- |
			| "Crouching" | State |  | crouch |
			| "CrouchWalking" | State |  | crouchwalk |
			| "Falling Down" | State |  | falldown |
			| "Flying" | State |  | fly |
			| "FlyingSlow" | State | Transition between hovering and forward flight. | flyslow |
			| "Hovering" | State |  | hover |
			| "Hovering Down" | State |  | hover_down |
			| "Hovering Up" | State |  | hover_up |
			| "Jumping" | State | While still in the air during a jump. | jump |
			| "Landing" | Transition | When landing from a jump. | land |
			| "PreJumping" | Transition | At the beginning of a jump. | prejump |
			| "Running" | State |  | run |
			| "Sitting" | State | Sitting on an object (and linked to it). | sit |
			| "Sitting on Ground" | State | Sitting, but not linked to an object.[^wiki-fe736d] | sit_ground_constrained |
			| "Standing" | State |  | stand |
			| "Standing Up" | Transition | After falling a great distance. Sometimes referred to as Hard Landing. | standup |
			| "Striding" | State | When the avatar is stuck on the edge of an object or on top of another avatar. | stride |
			| "Soft Landing" | Transition | After falling a small distance. | soft_land |
			| "Taking Off" | State |  | hover_up |
			| "Turning Left" | State |  | turnleft |
			| "Turning Right" | State |  | turnright |
			| "Walking" | State |  | walk |

		</td>
		<td>

			**Other Common/Active values**

			| Value | Description |
			| --- | --- |
			| "" | During logout |
			| "Init" | At login and after teleports. |

		</td>
		<td>

			**Uncommon/Inactive return values**

			| Value | Description |
			| --- | --- |
			| "Crouch" |  |
			| "Epsilon" |  |
			| "Fall Down Land" |  |
			| "Finish Animation" |  |
			| "Fly" |  |
			| "FlySlow" |  |
			| "Hard Land" |  |
			| "Hover Down" |  |
			| "Hover Up" |  |
			| "Hover" |  |
			| "Medium Land" |  |
			| "PreFlying" |  |
			| "PreJump" |  |
			| "Prep For Teleport" |  |
			| "Run" |  |
			| "Sit on Ground" |  |
			| "Sit" |  |
			| "Soft Land" |  |
			| "Stand" |  |
			| "Stride" |  |
			| "Take Off" |  |
			| "Turn Done" |  |
			| "Turn Left" |  |
			| "Turn Right" |  |
			| "Uncrouch" |  |
			| "Walk" |  |

		</td>
	</tr>
</table>

[^wiki-5b4dd5]: With the successful conclusion of [SCR-26](https://jira.secondlife.com/browse/SCR-26), a complete list of values was posted; however no indication was given as to which of the previously undocumented codes are active but just uncommon.
[^wiki-fe736d]: "Sit down" on the avatar context menu allows ground sits anywhere: atop the terrain, objects or even in the air.

## Caveats

- This function can return an empty string while the avatar is logging out.
- New return values could conceivably be added at any time and this list may not in-fact be complete. Scripts should be written under the assumption that they may receive a value they won't recognize.

## Examples

<details open>
<summary>Example 1</summary>

```lsl collapse={8-39, 45-65}
// A simple animation override example.
// Make the avatar run in mid-air when jumping.

key gOwner; // the wearer's key
string gLastAnimation; // last llGetAnimation value seen

// User functions

Initialize(key id) {
    if (id == NULL_KEY) { // detaching
        llSetTimerEvent(0.0); // stop the timer
    }
    else { // attached, or reset while worn
        llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION);
        gOwner = id;
    }
}

// Event handlers

default
{
    state_entry() {
        // in case the script was reset while already attached
        if (llGetAttached() != 0) {
            Initialize(llGetOwner());
        }
    }

    attach(key id) {
        Initialize(id);
    }

    run_time_permissions(integer perm) {
        if (perm & PERMISSION_TRIGGER_ANIMATION) {
            llSetTimerEvent(0.25); // start polling
        }
    }

    timer() {
        string newAnimation = llGetAnimation(gOwner);

        if (gLastAnimation != newAnimation) { // any change?
            if (newAnimation == "Jumping") {

                // You can stop the built-in animation if you like, if
                // it might interfere with your own. Be aware that an
                // avatar can become stuck, and some llGetAgentInfo results
                // can be inaccurate, if you stop built-ins indiscriminately.
                // Always test.
                //
                // llStopAnimation("jump");

                llStartAnimation("run");
            }
            else if (gLastAnimation == "Jumping")  { // just finished jumping
                // "run" is looped, so we have to stop it when we are done.
                llStopAnimation("run");
            }

            gLastAnimation = newAnimation; // store away for  next time
        }
    }
}
```

</details>

## See also

### Functions

- [llGetAgentInfo](/functions/llGetAgentInfo/)
- [llGetAnimationList](/functions/llGetAnimationList/)

---

*Source: [LlGetAnimation](https://wiki.secondlife.com/wiki/LlGetAnimation) on the Second Life Wiki. Content from the Second Life Wiki articles LlGetAnimation (revision 1194149, 2015-01-22) and Template:LSL Function/avatar (revision 1179236, 2013-06-15), CC BY-SA 3.0.*

---

From lsl.dev: https://lsl.dev/functions/llGetAnimation/
