# AnimParamSource

> Talos next · Since 0.6

A fact the engine already has, written into this parameter every tick before the animator samples.

Five report what the character controller MEASURED: `speed` is its planar speed in m/s; `strafeX` and `strafeY` are its velocity in its own frame, -1..1 of its authored speed, x to the right and y forward; `verticalSpeed` is the y component of its velocity; `grounded` is 1 on the floor and 0 in the air. Three report what it was ASKED for, before the solver ran and before root motion wrote anything: `inputSpeed` in m/s, `inputStrafeX` and `inputStrafeY` as the same -1..1 fractions. A state carrying `rootMotion` must take its parameter from the input group or from a behaviour, because root motion sets the measured velocity the other group reports (`animator-root-motion-source`). An entity with no controller leaves the parameter at its `value`, and a script's `ctx.animator.param` on a bound parameter is overwritten on the next tick.

Type: `"speed" | "strafeX" | "strafeY" | "verticalSpeed" | "grounded" | "inputSpeed" | "inputStrafeX" | "inputStrafeY"`

## Values

- `speed`
- `strafeX`
- `strafeY`
- `verticalSpeed`
- `grounded`
- `inputSpeed`
- `inputStrafeX`
- `inputStrafeY`
