# BobState

> Talos next · Since 0.6

The bob this tick, for a view-model to apply in its own units.

`x` swings -1..1 side to side and `y` dips 0..1, both already scaled by `weight`, so a player at rest reads 0, 0.

## Signature

```ts
export interface BobState {
  x: number
  y: number
  /** 0..1: how much of the full amplitude the walking speed asks for. */
  weight: number
  /**
   * `on`, `off` (the project said `bob: false`) or `unset` (it said nothing, and the bob is off).
   * The feel probe forgives a view-model that stands still while walking only when this is `off`.
   */
  mode: "on" | "off" | "unset"
}
```

Import: `import type { BobState } from "@argus/gameplay"`

## Members

| Member | Signature | Description |
|---|---|---|
| `x` | `x: number` |  |
| `y` | `y: number` |  |
| `weight` | `weight: number` | 0..1: how much of the full amplitude the walking speed asks for. |
| `mode` | `mode: "on" \| "off" \| "unset"` | `on`, `off` (the project said `bob: false`) or `unset` (it said nothing, and the bob is off). The feel probe forgives a view-model that stands still while walking only when this is `off`. |
