> For the complete documentation index, see [llms.txt](https://malbersanimations.gitbook.io/animal-controller/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://malbersanimations.gitbook.io/animal-controller/features.md).

# Features

Everything the Animal Controller can do — from the core state machine and combat down to the small tools you did not know were in the package.

**Animal Controller** is a complete character framework for Unity. One controller drives quadrupeds, bipeds, birds, fish, dragons and humans, with the same states, the same combat, the same AI and the same tools.

It is not a locomotion demo with extra scripts bolted on. It is a **data-driven, ScriptableObject-based architecture** where states, abilities, reactions, conditions and behaviours are assets and serialized modules you assemble in the Inspector — no code, no inheritance chains, no rewriting the controller to add a feature.

{% hint style="info" %}
**What "one controller" actually means.** The same character can walk, swim, dive underwater, fly, glide, climb a wall, grab a ledge, grind a rail, ride a horse, carry a crate, fire a bow, block with a shield, and die into a ragdoll — in one prefab, driven by assets you can share between characters.
{% endhint %}

{% embed url="<https://www.youtube.com/watch?v=KP_NxfQessQ>" %}

***

## At a Glance

| Features         | Description                                                                     |
| ---------------- | ------------------------------------------------------------------------------- |
| **Architecture** | ScriptableObject variables, events, runtime sets, IDs, reactions, conditions    |
| **Characters**   | Quadrupeds, bipeds, humanoids, birds, fish, insects, dragons                    |
| **States**       | 18+ built-in movement states, unlimited custom ones                             |
| **Modes**        | Unlimited actions, attacks, damage reactions and abilities                      |
| **Combat**       | Melee, ranged, projectiles, elements, criticals, blocking, parry, dismemberment |
| **AI**           | Character brain — AI States, Tasks and Decisions as assets                      |
| **Equipment**    | Super Item system: weapons, tools, shields, torches, throwables, holsters       |
| **Riding**       | Mount / dismount any character on any other character                           |
| **IK**           | Runtime IK system with stackable processors and weight drivers                  |
| **Pipelines**    | Built-in, URP and HDRP                                                          |
| **Input**        | Legacy Input, Unity Input System, mobile joystick, local multiplayer            |

***

## Genres You Can Build

The controller is not tied to a camera or a perspective. The demo scenes ship examples of all of these:

| Genre                                | What you use                                                       |
| ------------------------------------ | ------------------------------------------------------------------ |
| **Third-person adventure**           | Locomotion + Modes + Cinemachine free-look camera                  |
| **Third-person shooter / soulslike** | Strafing, Aim, Lock-On Target, Super Items, Combo Manager          |
| **Top-down / isometric**             | Camera-relative movement, Point & Click, aim to mouse              |
| **2.5D platformer**                  | Path Constraint locks the character to a spline or a straight path |
| **Mobile**                           | Mobile joystick, Input Link, performance sleep system              |
| **Flight / creature sim**            | Fly and Glide states with full 3D freedom                          |
| **Underwater**                       | Swim (surface) and Underwater (full 3D) states with an oxygen Stat |
| **Animal / pet sim**                 | AI Brain, Wander Areas, Waypoints, Interactions, Stats             |
| **Horse riding / mounted combat**    | HAP Riding System, with weapons usable while mounted               |
| **Local multiplayer**                | Input Player Manager, per-player camera and UI scoping             |

*\[Insert Image - grid of 6 demo scenes showing different genres]*

***

## The Architecture

This is the part that makes everything else possible, and the reason the asset scales with your project instead of fighting it.

### Everything Is an Asset

```
        ScriptableObject Assets                   Serialized Modules
   ┌──────────────────────────────┐        ┌───────────────────────────┐
   │  States  (Idle, Fly, Swim…)  │        │  Reactions                │
   │  Modes / Abilities           │        │  Conditions               │
   │  Stances                     │        │  IK Processors            │
   │  IDs (Mode, State, Stance…)  │ ◄────► │  Weight Processors        │
   │  Variables (Float, Bool, …)  │        │  Item Processors          │
   │  MEvents                     │        │  Projectile Movement      │
   │  Runtime Sets                │        │  Mode Modifiers           │
   │  Tags                        │        │  AI Tasks & Decisions     │
   │  Reactions / Conditions      │        │                           │
   │  AI States, Tasks, Decisions │        │  (SerializeReference —    │
   │  IK Sets & Profiles          │        │   picked from a dropdown, │
   │  Stat Modifiers              │        │   nested, copy-pasteable) │
   └──────────────────────────────┘        └───────────────────────────┘
                   ▲                                    ▲
                   └─────────────  MAnimal  ────────────┘
                         (holds no hard references
                          to any of your systems)
```

### Scriptable Variables

`FloatVar`, `IntVar`, `BoolVar`, `StringVar`, `Vector2Var`, `Vector3Var`, `ColorVar`, `TransformVar`, `GameObjectVar`, `MaterialVar`, `SpriteVar`, `LayerVar`, `AudioClipListVar`, plus range and list variants.

* Every component field uses a **Reference** — flip a toggle to switch between a local constant and a shared asset.
* Assets fire `OnValueChanged`, so UI, AI and gameplay react without polling.
* **Listeners** and **Comparers** turn a variable change into a UnityEvent, a Reaction, or a condition with no code.
* Formula, Lerp, Math and Range helpers operate on variables directly.
* Save any variable to `PlayerPrefs` with a single component.

### MEvents

Global ScriptableObject events with typed payloads (void, bool, int, float, string, Transform, GameObject, Vector2, Vector3). Listeners subscribe from anywhere in the scene — no `FindObjectOfType`, **no singletons**, **no coupling** between scenes.

### Runtime Sets, Hooks & Collections

Self-maintaining lists of live objects: every enemy, every player, every pickup. Objects add and remove themselves on enable/disable. Query them from AI Decisions, Conditions or your own code. **Transform Hooks** and **GameObject Hooks** publish a single live object into an asset so anything can find it.

### ID Assets

`StateID`, `ModeID`, `StanceID`, `StatID`, `SurfaceID`, `WeaponID`, `HolsterID`, `EquipPointID`, `ItemActionID`, `ProjectileID`, `SuperItemID`, `IKTag`, `Tag`. Comparisons are integer-fast, references are asset-safe, and renaming never breaks anything.

### Reactions

A **Reaction** is a serialized "do this to that object" module. Drop one into any UnityEvent slot, Zone, Mode, Item Action, AI Task, Animator Behaviour, trigger, or Condition result.

| Family          | Examples                                                                                                                                                |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Animal**      | Play Mode, Change State, Set Stance, Set Speed, Strafe, Teleport, Add Force, Change Gravity, Align to Ground, Enable/Disable any State, Mode or Stance  |
| **Stats**       | Modify, set, enable/disable, regenerate                                                                                                                 |
| **Unity**       | GameObject, Behaviour, Collider, Animator parameter, Rigidbody, Particle System, Audio, Messages, Don't Destroy On Load                                 |
| **Tools**       | Aim, Align, Look At, Projectile Thrower, IK, Weapon Trail, Tags                                                                                         |
| **Scriptables** | Set Bool / Int / Float Var, raise an MEvent                                                                                                             |
| **General**     | Debug, Reposition, and **Member Set / Member Get** — write or read *any* public field or property on *any* component through reflection, with no script |

### Conditions

The mirror of Reactions. A **Condition** is a serialized boolean test that can be nested with AND/OR and inverted.

Check states, stances, modes, stats, distances, angles, aim angle, layers, tags, animator parameters, scriptable variables, runtime sets, interactors, input source, random chance — or **compare any member on any component** through reflection.

### Serialized-Reference Modules

`[SerializeReference]` Polymorphism is used throughout. When you press **+** on a list, you get a searchable dropdown of every module type in the project — including your own.

| Extension point                   | You get a dropdown of…                                |
| --------------------------------- | ----------------------------------------------------- |
| `Reaction2`                       | every reaction in the project                         |
| `Conditions2`                     | every condition                                       |
| `IKProcessor` / `WeightProcessor` | every IK behaviour and weight driver                  |
| `ItemProcessor`                   | every Super Item behaviour                            |
| `ProjectileMovement`              | flying, homing, rolling…                              |
| `ModeModifier`                    | force, dodge, input axis, index by state or condition |
| `MTask` / `MAIDecision`           | every AI task and decision                            |

Modules can be copied and pasted between components, and adding your own is one class with one method.

### Local Variables & Blackboard

Per-character variables that live on the GameObject instead of in a global asset — for prefab instances, NPC individuality, and AI memory. Edited in a Blackboard inspector, readable by Conditions, Decisions, and Reactions.

{% hint style="success" %}
**Why this matters before you buy.** Every feature below is built out of the pieces above. Anything you want to add later — a new attack, a status effect, a puzzle interaction, an ability, a status bar — plugs into the same slots and works with everything else in the package on day one.
{% endhint %}

{% content-ref url="/pages/vcNmYzx0mcUNZzgldn0n" %}
[Scriptable Architecture](/animal-controller/scriptable-architecture/scriptables.md)
{% endcontent-ref %}

***

## The Character Controller

`MAnimal` is the core. It is animator-driven, works with **Root Motion or non-Root-Motion** animations, and holds no hard references to any other Malbers system.

### Movement

* Root Motion, In-Place, or a blend of both — per state, per speed.
* **Additive position and rotation** on top of animation, so speed multipliers never desync the animator.
* Camera-relative, world-relative, or target-relative movement.
* **Strafing** — locked to the camera, to an aim target or to a lock-on target, with per-state and per-stance blending weights.
* Free rotation on all axes for flight and underwater.
* Rotate-in-place by camera for tight third-person aiming.
* Sprint, plus an unlimited **Speed Set** system.

### Ground, Slopes & Terrain

* Ground alignment by raycast or spherecast, with an adjustable check frequency for performance.
* Front and back **Pivots**, so a 12-metre dragon and a 20-centimetre frog both align correctly.
* Max/min walkable slope angles, with automatic slide-down on steep slopes.
* Step and debris tag handling so small rocks do not stop the character.
* Moving-platform support, and a **Ground Speed Changer** to slow the character in mud, sand or shallow water.

### Gravity

* Fully custom gravity **direction** — walk on walls, ceilings, spheres and planetoids.
* **Gravity Changer** volumes and a Global Gravity component.
* Per-state gravity, gravity multipliers and terminal-velocity clamping.

\[Insert Image - gif of a character walking around a small planet / on a ceiling]

### Speeds

Speed Sets are assets. Each set holds Speed Modifiers with position, animator, rotation, lerp and acceleration values.

* Ground, Swim, Fly and any custom set you invent.
* Change set and index at runtime from a Reaction, Zone, Stat, AI Task, or input.
* Speed modifiers can be driven by a Stat — stamina-limited sprinting works out of the box.

### Multiple Characters

* Swap between characters at runtime with `SwapCharacter`.
* Local multiplayer with per-player input, camera and UI.
* NPC respawners, simple respawners and checkpoints.
* An **Animal Tracker** and sleep system, so off-screen characters cost almost nothing.

{% content-ref url="/pages/-LzixXSzJLNEptt0d7RY" %}
[Animal Controller](/animal-controller/main-components/manimal-controller.md)
{% endcontent-ref %}

***

## States

States are **ScriptableObject assets**. You drag them into the character's State list, order them by priority, and they negotiate transitions between themselves. Two characters can share the same Fly asset, or each can keep their own tuned copy.

| State                  | What it gives you                                                  |
| ---------------------- | ------------------------------------------------------------------ |
| **Idle**               | Idle behaviour, turn in place, idle variations                     |
| **Locomotion**         | Walk / trot / run / sprint through the Speed Set system            |
| **Fall**               | Fall damage, fall rays, landing by height, air control             |
| **Jump (Root Motion)** | Animation-authored arcs, jump profiles per height and speed        |
| **Jump (Basic)**       | Physics-style jump for platformers, variable height, multi-jump    |
| **Swim**               | Surface swimming, water-line alignment, entering and exiting water |
| **Underwater**         | Full 3D underwater movement with an oxygen Stat and drowning       |
| **Fly**                | Free 3D flight, take-off and landing, banking, dive                |
| **Glide**              | Wing gliding with air currents and descent control                 |
| **Climb**              | Free climbing on any tagged surface, with ledge transitions        |
| **Ladder**             | Ladder climbing with automatic top and bottom transitions          |
| **Ledge Grab**         | Hang, shimmy, climb up, drop down                                  |
| **Wall Run**           | Horizontal wall running with wall-jump                             |
| **Wall Run Vertical**  | Vertical wall running                                              |
| **Rail Grind**         | Grind rails, ziplines and splines                                  |
| **Slide**              | Slide down slopes, and controlled slides                           |
| **Death**              | Death handling, input lockout, events                              |
| **Death Ragdoll**      | Ragdoll death with force transferred from the killing blow         |

\[Insert Image - gif strip: fly, underwater, climb, ledge grab, wall run, rail grind]

### What every state can do

* **Enable / disable at runtime** from a Reaction, Zone, Stat or AI Task.
* **State Profiles** — swap a whole set of values at runtime (a "Long Jump" profile, a "Low Gravity" glide profile) with one call.
* Per-state speed sets, gravity, root motion, IK weights, camera behaviour and input.
* Enter and exit conditions, cooldowns, "can exit from" lists, priority ordering.
* Status values, so one state can play many animation variants.
* Full UnityEvent and Reaction callbacks on enter, exit and every internal transition.
* **Custom states** — inherit `State`, add an `[AddTypeMenu]` attribute, and it appears in the create menu beside the built-in ones.

{% content-ref url="/pages/-Lzj3FIaUkKRgYj2Rpay" %}
[States](/animal-controller/main-components/manimal-controller/states.md)
{% endcontent-ref %}

***

## Modes & Abilities

If states are *how the character moves*, **Modes** are *what the character does*. Attacks, actions, emotes, spells, damage reactions, dodges, blocks, and pick-ups are all Modes.

Each Mode holds a list of **Abilities**. One `Attack1` Mode can hold twenty attack animations; you pick which one plays by index, at random, by condition, or through a combo branch.

### Ability behaviour

| Ability status    | Behaviour                                          |
| ----------------- | -------------------------------------------------- |
| **Play One Time** | Fire and forget                                    |
| **Hold by Input** | Plays while the input is held — charge, aim, block |
| **Hold by Time**  | Loops for a duration                               |
| **Toggle**        | On/off until called again                          |

### Mode features

* Priority system, so a Damage mode interrupts an Attack but not the other way round.
* Cooldowns, interrupt conditions, enter conditions, exit conditions.
* Allow or block movement and rotation while playing.
* **Mode Modifiers** — add force, dodge displacement, input-driven direction, ability index chosen by state or by condition.
* **Mode Sequences** for scripted multi-part actions.
* **Mode Align** and **Mode Aligner 2** snap the character to a target or a point before the animation plays — perfect climbing, vaults, finishers, and mounting.
* Charge values for charged attacks and spells.
* Full event and Reaction callbacks: start, end, interrupted, ability changed.

### Ships with

`Action`, `Attack1`, `Attack1 Air`, `Attack2`, `Block`, `Parry`, `Damage`, `Heavy Damage`, `Knock Back`, `Dodge`, `Dash`, `Pick Up`, `Magic Spells` — plus 35+ ready-made **Action IDs**: Eat, Drink, Sleep, Sit, Lie, Dig, Smell, Bark, Roar, Push, Vault, Open Door, Open Chest, Pet, Talk, Level Up, Emotions, Shake Hand, Crawl Under, Perching, Stun, Born and more.

### Combo Manager

Chain abilities into branching combo trees with input windows, per-branch conditions, and Reactions. Works with Modes and with Super Item actions.

{% content-ref url="/pages/-Lzj3RFXNezF2bc9QNaR" %}
[Modes](/animal-controller/main-components/manimal-controller/modes.md)
{% endcontent-ref %}

***

## Stances

Stances are a second layer on top of states — the character's *posture*. Crouch, Sneak, Combat, Guard, Wounded, Balance, Roll, Smell, Stand, Against Wall.

* A stance can change speeds, animations, capsule collider size, IK sets and strafing behaviour.
* Restrict a stance to a list of states, or block other stances while it is active.
* Cooldowns, persistence, queueing, per-stance strafe blending.
* Enable and disable at runtime, and drive them from Stats — Wounded when Health is low.

{% content-ref url="/pages/-Lzj3RqGDERNF\_cFAGuB" %}
[Stances](/animal-controller/main-components/manimal-controller/stances.md)
{% endcontent-ref %}

***

## Combat & Damage

A complete damage pipeline that works between any two characters, or between a character and the world.

### Dealing damage

* **MDamager** — the base damage dealer, used by weapons, projectiles, traps and hazards.
* **MAttack Trigger** — animation-driven hit detection, with Animator Behaviours that turn colliders on and off on exact frames.
* **Attack Triggers Behaviour** — several triggers on one animation: left claw, right claw, tail.
* **Directional damage** — a different hit reaction depending on where the hit came from.
* Critical hits with chance and multiplier, and a **miss** chance.
* Damage **Elements** (fire, ice, poison…) with per-element multipliers and resistances.

### Taking damage

* **MDamageable** — receives damage, applies it to a Stat, plays a reaction.
* **Damageable Profiles** — swap the whole hit-reaction set at runtime: a blocking profile, a stunned profile, an invulnerable profile.
* Several damageables per character for **hit zones** — headshots, weak points, armour.
* Runtime Damageable Sets for team and faction filtering.

### Projectiles

* Pooled projectiles, with a **Pouch Manager** holding the ammo pool.
* Pluggable **Projectile Movement**: Flying (gravity, drag, arcs), Homing (tracking), Rolling (kinematic ground sweep).
* Impact behaviours including **ricochet**, stick-to-target and pierce.
* **Projectile Thrower** for grenades, rocks and anything you want to lob.
* **Display Trajectory** draws the predicted arc before you throw.
* Surface-aware impact VFX and SFX.

### Extras

* **MExplosion** with radius falloff and force.
* **Floating damage numbers** with per-element colours.
* **Weapon Trails** with reusable profiles, driven by Animator Behaviours.
* **Dismember** — remove limbs on death or on hit.
* **Fire Breath** and magic particle triggers for creature attacks.

\[Insert Image - gif: melee combo with weapon trail, floating damage numbers and ragdoll death]

{% content-ref url="/pages/-M6Qf2FptlYFxm8hNFXJ" %}
[MDamager](/animal-controller/secondary-components/mdamager.md)
{% endcontent-ref %}

***

## Stats

A general-purpose numeric system used for health, stamina, mana, hunger, thirst, air, durability, ammo, noise, charge, attack, defense, and spread — or anything you invent.

* Value, min, max, normalized, rounding, immunity, enable/disable.
* **Regeneration** and **degeneration** with delay and rate.
* **Stat Modifiers** as assets — reusable "−25 Health", "+10 Stamina over 3s" packages.
* Events for full, empty, above threshold, below threshold and value changed.
* **Modify Stat** components and assets, so anything in the scene can change a stat.
* Stat Randomizer for NPC variety, and a **Stat Unit** system for segmented bars — hearts, shield pips.
* Ready-made **Stat Monitor UI** and Stat Unit UI.
* Stats can drive the controller directly: stamina-gated sprinting, air-gated diving, health-gated Wounded stance.

{% content-ref url="/pages/-Lzixrv-pci5ZGZvRMLh" %}
[Stats](/animal-controller/global-components/stats.md)
{% endcontent-ref %}

***

## Super Item System — Weapons, Tools & Equipment

The modern equipment system. Anything a character can hold is a **Super Item**: swords, shields, bows, rifles, pistols, torches, fishing rods, buckets, crates.

{% hint style="info" %}
**Yes — animals too.** Equip Points are just transforms on a skeleton. A dragon can carry a banner, a wolf can hold a torch in its mouth, a horse can pull a wagon.
{% endhint %}

### Structure

```
SuperItemManager (character)         SuperItem (the object)
  ├── Equip Points  (Right Hand…)      ├── Item Type ID
  ├── Holsters      (back, hip…)       ├── Equip Point + Holster ID
  ├── Item Offsets  (per character)    └── Item Action Sets
  └── Pouch Manager (pooled ammo)            └── Item Actions
                                                   └── Item Processors
```

### Item Processors — build a weapon out of modules

| Processor                                   | What it does                                                          |
| ------------------------------------------- | --------------------------------------------------------------------- |
| **Play Mode**                               | Plays a Mode / ability — swing, block, cast                           |
| **Combo**                                   | Advances a combo branch                                               |
| **Charge**                                  | Tracks charge time and fires events at thresholds                     |
| **Projectile**                              | Fires pooled projectiles with spread, force and gravity               |
| **Reload**                                  | Chamber reloading with interrupt conditions                           |
| **Damager**                                 | Applies damage from an Attack Stat, with criticals, miss and elements |
| **Damageable**                              | Overrides the owner's hit-reaction profile — blocking, parry          |
| **Block Actions**                           | Blocks other actions while active                                     |
| **Holster Items**                           | Holsters or draws other items                                         |
| **Interactor**                              | Fires an interaction                                                  |
| **Align**                                   | Aligns the character to a target                                      |
| **Strafe**                                  | Turns strafing on and off                                             |
| **IK**                                      | Enables an IK set — grip pose, aim pose                               |
| **Surface Effect**                          | Spawns surface-aware hit VFX and SFX                                  |
| **Sound / Unity Event / GameObject / Wait** | Glue modules                                                          |

Add your own processor with one class, and it appears in the same dropdown.

### What it handles for you

* Equip, unequip, holster, unholster, drop, pick up and swap.
* Per-character **Item Offsets**, so one sword prefab sits correctly in a human hand and a dragon claw.
* **Action Sets** that auto-activate on state, stance, mode, target, interaction or equip changes — a bow behaves differently on foot, mounted and while aiming.
* Dual wielding, two-handed items, shields, blocking and parrying.
* Pooled ammunition through the Pouch Manager.
* Conditions and Reactions for everything, so UI and AI stay in sync.

The classic **Weapon Manager** (MWeapon, MMelee, MShootable, MBow, Holsters, Inventory) is still fully supported and documented for existing projects, with a migration guide.

{% content-ref url="/pages/045tkZyA56nJtExaBebN" %}
[Super Item System](/animal-controller/super-item/super-item-system.md)
{% endcontent-ref %}

***

## Riding System

Any character can ride any other character.

* Mount and dismount from several mount points, with animated transitions.
* The rider keeps full control of weapons, aiming, Stats and Modes while mounted.
* **Mount Triggers** for call, mount, dismount and links.
* **IK Reins**, so hands follow the reins procedurally.
* Carriage and wagon support — pulling horses and a wagon controller.
* Works with the AI Brain, so NPCs can mount and ride too.

{% content-ref url="/pages/-Lziy0-YQ0x7jAIq3JgN" %}
[Riding System (HAP)](/animal-controller/riding/hap-riding-system.md)
{% endcontent-ref %}

***

## IK System

A full runtime IK framework — no third-party plugin required, though it plays well with them.

* **IK Sets** hold a list of stackable **IK Processors**, each with its own weight.
* **Weight Processors** drive that weight from anything: animator parameters, curves, states, stances, modes, aim targets, look-at angles or Conditions.
* Humanoid processors — goal, hint, goal offset, raycast placement, plane placement, foot ground placement, body look-at, bone look-at, bone rotation, height point, target direction, search for tag.
* Generic (non-humanoid) processors — two-bone IK, quadruped foot placement, follow rotation, generic look-at, rotate around aim.
* **IK Profiles** and **IK Set Libraries** to reuse setups between characters, plus a Remap tool to retarget a set to a new skeleton.
* Enable and disable sets from Reactions, weapons, states or code.

\[Insert Image - gif: foot IK on stairs, aiming hand IK, head look-at]

{% content-ref url="/pages/a0TSpGXtgkgbkgkwLBME" %}
[IK Manager](/animal-controller/secondary-components/ik-manager.md)
{% endcontent-ref %}

***

## AI

The AI is built from the same asset architecture — no code, and no separate behaviour-tree package to learn.

### Animal Brain

* **AI States** are assets. Each holds Tasks (what to do) and Decisions (when to leave).
* **20+ Tasks**: patrol, set destination, move/stop, change speed, play mode, play state, set stance, set strafe, set target, look at, set stat, quick align, play audio, message, invoke event, run a Reaction, wait, chance, random AI state, set var listener, weapon tasks.
* **23+ Decisions**: has arrived, check target, look (line of sight with angle and distance), check state / stance / mode, check stat, compare stats, check zone, check tag, check runtime set, check scriptable var, check var listener, random chance, wait, is task done, AND, OR — and any Condition.
* Everything is nestable and reusable across characters.

### Navigation & targeting

* **AI Animal Control** drives movement through the Unity NavMesh, handling slopes, stop distance and height.
* **Waypoints** with chained paths, wait times and per-point Reactions.
* **Wander Areas** for free-roaming animals.
* **AI Targets**, so any object can advertise itself as a destination with a stop distance and arrival events.
* **Follow Target** for companions and pets.
* **Point & Click** movement for top-down and mobile games.
* A\* Pathfinding Project integration included.

\[Insert Image - screenshot of the Animal Brain inspector showing AI States, Tasks and Decisions]

{% content-ref url="/pages/-Lziye0KwirKs\_OYd4we" %}
[Animal Brain](/animal-controller/main-components/ai/animal-brain.md)
{% endcontent-ref %}

***

## Interactions & The World

### Interactions

* **Interactor** on the character, **Interactable** on the object.
* Interactions can be automatic, by input, by proximity or by trigger, with cooldowns, limited uses and conditions.
* Anything can be interactive: doors, chests, levers, NPCs, campfires, fruit on a tree.

### Pick Up & Carry

* **Pick Up / Drop** — carry crates, barrels, bodies, weapons and quest items, with animated pick-up and drop.
* **Pickable** items with automatic or manual collection.
* Items can be carried in the hands, on the back or on the shoulder.

### Zones

Trigger volumes that change the character with no scripting:

* **State Zones** — enter water and swim, enter a climbable area, force a fall.
* **Mode Zones** — sit on a chair, drink from a trough, open a door.
* **Stance Zones** — crouch under an obstacle.
* **Force Zones** — wind, updrafts, jump pads, currents, conveyor belts.
* Conditions, angle limits, character limits, one-shot use, and enter/exit Reactions.

### Respawning & Progression

Respawner, NPC Respawner, Simple Respawner, CheckPoints and scene-loading utilities.

### Triggers

Trigger Enter / Exit / Proxy / Registry / Target — route physics triggers into Reactions, events and conditions from anywhere in the hierarchy.

{% content-ref url="/pages/-M57uZtNViVq-ekadMNi" %}
[Zones](/animal-controller/secondary-components/zones.md)
{% endcontent-ref %}

***

## Camera & Input

### Camera

* **Cinemachine** rigs for CM2 and CM3, ready to drop in.
* Third-person free-look with a **Camera State** system — a virtual camera per situation (aim, combat, swim, fly, crouch), switched by Reactions.
* Third-Person Follow Target and Follow Zoom for shoulder-cam aiming.
* Aim, Aim Target and **Lock On Target** for soulslike targeting.
* Works with any camera you already own — the controller only needs a Transform.

### Input

* **MInput** — a simple, readable input component you can wire to anything.
* Full **Unity Input System** integration through an Input Link, plus legacy input support.
* **Mobile joystick** and touch UI included, with a mobile setup guide.
* **Input Player Manager** for local multiplayer and split screen.
* Rewired integration.
* Any input can be routed to a State, Mode, Stance, Item Action or Reaction from the Inspector.

{% content-ref url="/pages/-MTghm8pmTpSc\_BPNf1U" %}
[Cinemachine](/animal-controller/global-components/cinemachine.md)
{% endcontent-ref %}

***

## Effects, Audio & Surfaces

* **Effect Manager** — spawn, parent, delay, pool and time-limit VFX from animations, modes, states or reactions.
* **Animator Event Sounds** — play audio from Animator states with pitch and volume ranges, no animation events needed.
* **Steps Manager / Step Trigger** — footstep VFX and SFX driven by the feet, with **Surface IDs**: concrete, flesh, grass, metal, snow, water, wood.
* Surface Effect assets that map a surface to particles and clips, shared by footsteps, impacts and projectiles.
* Effect By Material and Sound By Material for terrain-aware feedback.
* Weapon Trails with reusable profiles.
* Material Changer, Material Lerp, Object Fader, Blend Shapes with presets, Blink Eyes, and Active Meshes for character customisation and LOD swapping.

{% content-ref url="/pages/-LzlxJqhHML2YjR74Vlj" %}
[Effect Manager](/animal-controller/utilities/effect-manager.md)
{% endcontent-ref %}

***

## UI

* Stat Monitor and Stat Unit UI for health bars, stamina bars and segmented hearts.
* Floating damage numbers.
* UI Follow Transform, and a grouped version, for world-space nameplates and prompts.
* Value To String, to bind any scriptable variable to a label.
* Fade In / Out graphics and Look At Camera billboards.
* Inventory UI in the Weapon Manager and in the Inventory add-on.

***

## Timeline

* A Timeline Manager that hands control of a character to a cutscene and gives it back cleanly.
* A **Ground Aligner** Playable track, so characters stay glued to the terrain during cinematics.
* An Animator Move fixer for Root Motion inside Timeline.

***

## The Utilities Toolbox

The things nobody mentions in a trailer, and everybody ends up using.

| Tool                                                   | What it does                                                       |
| ------------------------------------------------------ | ------------------------------------------------------------------ |
| **Aligner / Aligner Extended**                         | Smoothly align any transform to any other, with time and curve     |
| **Path Constraint + MPath**                            | Lock a character to a straight path or a Unity Spline — 2.5D games |
| **Gravity Changer / Global Gravity**                   | Change gravity direction per volume or globally                    |
| **Simple Rotator / Translator / Scaler / Transformer** | Moving platforms, doors, lifts, spinning hazards                   |
| **Spline Translator**                                  | Move anything along a spline                                       |
| **Transform Animation**                                | Record and replay transform animations as assets                   |
| **Slow Motion**                                        | Global and per-character time scaling                              |
| **Load Scene**                                         | Async scene loading with events                                    |
| **Spawner Grid**                                       | Spawn crowds of characters in a grid for stress tests              |
| **MLaser**                                             | Laser pointer with surface detection                               |
| **Look At / Aim / Aim Target / Lock On Target**        | Head and body targeting                                            |
| **Limb / Bone Scaler / Scale Unifier**                 | Fix and vary character proportions                                 |
| **Rebone Mesh**                                        | Reattach a skinned mesh to a different skeleton                    |
| **Dismember**                                          | Detach limbs at runtime                                            |
| **Blend Shape / Blend Shape Preset**                   | Drive blend shapes from anything                                   |
| **Active Meshes**                                      | Toggle mesh parts for equipment and customisation                  |
| **Multiple Time Checker**                              | Double-tap, triple-tap and timed input combos                      |
| **Component Selector**                                 | Pick a component from a dropdown in the Inspector                  |
| **Trigger Proxy / Trigger Registry**                   | Forward child triggers to a parent script                          |
| **Comment**                                            | Leave notes on any GameObject                                      |
| **Gizmo Visualizer / Axis Visualizer**                 | See what your setup is doing in the Scene view                     |
| **FPS Target / Frame Rate Checker**                    | Performance testing                                                |
| **Game Settings**                                      | Quality, resolution and framerate helpers                          |
| **Reparent / Use Transform / Transform Reactor**       | Attach and detach objects at runtime                               |
| **Scriptable Coroutines**                              | Reusable coroutines as assets                                      |

{% content-ref url="/pages/-LzhxK55dxqObUu6s0LZ" %}
[Utilities](/animal-controller/utilities/material-changer.md)
{% endcontent-ref %}

***

## Editor Tools

Included in the package, and used daily by the asset itself:

* **Malbers Menu** — one-click creation of characters, zones, waypoints, wander areas, riders, humans and trigger proxies.
* **Add Mode Animations Window** — batch-add animations to a Mode's animator layers.
* **Animator Layer Copier** and **Animator Behaviour Copier** — move layers and behaviours between controllers without losing transitions.
* **FBX Curve Editor** — edit animation curves on imported FBX clips.
* **Animation Unhide Tool** — recover animations hidden inside FBX files.
* **Create Custom State** — generates a new state script from a template.
* **ID Window** — see every ID asset in the project and spot duplicates.
* **Copy / Paste Serialized Reference** — move reaction, condition and processor modules between components.
* **Missing Managed Reference Cleaner** — repair broken `[SerializeReference]` data after refactors.
* **Scene Editor Manager**, **Albedo Exporter**, **Blend Shape Editor**, **Material Changer Editor**, **Transform Animation Editor**, a **Find Bone** context menu and a **Vector3** context menu.
* Custom inspectors on every major component, with searchable enum popups, min/max sliders, foldout groups and inline asset editing.

***

## Performance

* **Animal Tracker** and a sleep system: characters far from the player stop updating.
* Adjustable ground-check frequency.
* Batched aim processing for large crowds.
* Object pooling for projectiles, effects and ammunition.
* Animator parameters cached as integer hashes — no string lookups anywhere.
* Runtime Sets replace `Find` calls across the whole framework.

{% content-ref url="/pages/-MKaIDdZXAl6in1a-CU-" %}
[Mobile Setup Guide](/animal-controller/mobile.md)
{% endcontent-ref %}

***

## Integrations

Included integration packages and guides for **Unity Input System**, **Rewired**, **A\* Pathfinding Project**, **Invector Templates**, **Opsive Ultimate Character Controller**, **Ootii Motion Controller**, **Game Creator**, **Game Kit Controller**, **Horse Animset Pro**, and the **Malbers Inventory** and **QuestForge** add-ons.

Render pipelines: **Built-in**, **URP** and **HDRP**, with one-click upgrade guides.

{% content-ref url="/pages/-Lzhxv\_AumVNi3BsluB4" %}
[Integrations](/animal-controller/annex/integrations.md)
{% endcontent-ref %}

***

## For Programmers

Nothing is locked. Every system has a documented extension point, and extending it means writing one small class — never modifying the controller.

| Want to add…            | Inherit from         |
| ----------------------- | -------------------- |
| A new movement state    | `State`              |
| A new AI task           | `MTask`              |
| A new AI decision       | `MAIDecision`        |
| A new reaction          | `Reaction2`          |
| A new condition         | `ConditionCore`      |
| A new IK behaviour      | `IKProcessor`        |
| A new IK weight driver  | `WeightProcessor`    |
| A new item behaviour    | `ItemProcessor`      |
| A new projectile motion | `ProjectileMovement` |
| A new mode modifier     | `ModeModifier`       |

Plus a documented interface layer — `IObjectCore`, `IMAnimator`, `IGravity`, `IAIControl`, `IAim`, `IAlign`, `IInteractable`, `IInteractor`, `IWayPoint`, `IAITarget`, `IProjectile`, `IPoolGameObject` — so you can swap in your own implementations without touching the source.

{% content-ref url="/pages/-Lzj2Q5dC1OBKq3CEpKf" %}
[Interfaces](/animal-controller/interfaces/iaitarget.md)
{% endcontent-ref %}

***

## Where to Start

{% content-ref url="/pages/-LzjTWLk9h5TpfJxfGYc" %}
[QuickStart](/animal-controller/quickstart/guide-to-use-malbers-unity-assets-with-ac.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LziwsgRVUPwioT5TsNs" %}
[Main Components](/animal-controller/main-components/manimal-controller.md)
{% endcontent-ref %}

{% content-ref url="/pages/-LzhudXPg-al\_OtaUBZM" %}
[How to: Animal Controller](/animal-controller/how-to-ac.md)
{% endcontent-ref %}
