> 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/upcoming-chanelog.md).

# Upcoming Changelog

{% hint style="warning" %}
**Before updating:** create a build to avoid build errors.

<mark style="color:red;">**⚙️ In progress**</mark>
{% endhint %}

### Current priorities

* <mark style="color:purple;">**Fix Raven root motion animations**</mark>
* <mark style="color:purple;">**Fix the Poly Art Tiger root motion issue**</mark>
* <mark style="color:purple;">**Fix the bug where AI characters share the same ladder**</mark>
* <mark style="color:purple;">**Unreal Poly Art Raccoon's magic tattoo**</mark>
* <mark style="color:purple;">**Make an example of a fish using AC**</mark>
* <mark style="color:red;">**Fix!!!! Rabbits' eyes are embedded in the main texture**</mark>
* Long fur support for Milo
* Wolf (dog retargeting animations)
* Unka Firebreath included in the asset, not AC

<figure><img src="/files/y4JGF9VaLPtl5Ujab3QT" alt=""><figcaption></figcaption></figure>

### Planned features

#### Rider and human player

* <mark style="color:red;">**⚙️**</mark>**REVIEW:** Create a Rider menu and a human player.
* HAP 5 Animations
  * Poop
  * Pet
  * In Place Animations

#### Domestic dog behaviours

* Dog domestic behaviors: cute idles, playful jumps, belly rubs, tail wagging, and "derpy" interactions, instead of howling or attacking. Non-combat movement: a bouncy, happy trot, like a Shiba Inu or Retriever, rather than a wolf's stalking gait.

#### Cat animations

* **Pouncing:** ready to pounce or attack. Dig in front claws, wiggle the hindquarters, and dilate the eyes.
  * Pounce to a ground target (catching a bug or mouse by landing with the front paws squeezed together)
  * Pounce to an air target (front claws out and arms spread, mouth open with teeth fully exposed, back legs pulled close to the body with claws out, ready to grasp)
  * Rubbing (head rubbing against a ball, a hand, another head, legs, or a cat post)
  * Getting hit (paw strike or object flying through the air)
  * Getting knocked through the air (kicked, thrown, or hit by a large object)
  * Flattened (run over, trampled)
  * Walk on two feet
  * Stand up
  * Play around with objects on the floor or in the air
  * Sneeze
  * <mark style="color:red;">**⚙️**</mark>Added: Multiple AI enemy spawners (with random spots, predefined spots, and limits)

#### Examples

* Super Item Example:
  * Assault rifle with a grenade launcher?

### Release 1.5.3 (AC) / 4.5.3 (HAP)

#### ⭐ Super Item System (First Release)

* Added: **Super Item System**. Complete modular equipment framework. `SuperItem` (on the item) + `SuperItemManager` (on the character), with Equip Points, Holsters, Action Sets, Actions, and Processors.
* Added: Super Item - **Equip Points**. Named attach points on the character skeleton with per-item Position/Rotation/Scale offsets, editable with Scene View handles.
* Added: Super Item - **Holsters**. Multi-slot storage (back, hip…) with optional input binding, item eviction and Unholster/Equip shortcuts.
* Added: Super Item - **Item Action Sets**. Named groups of Actions with auto-activation rules (On State, Stance, Mode, Interactor, Target Changed, Equip, Unequip, On Action, External).
* Added: Super Item - **Item Actions**. Input-driven actions with Duration, Rate, Cooldown, Conditions on Owner/Target/Set, and Master/Slave action chaining.
* Added: Super Item - **Item Processors**. Modular behaviours plugged into an Action. Included: Projectile - Fire, Projectile - Reload, Play Mode, Aim, Charge, Reaction, Combo, IK, Block Action, Damager, Damageable, Interactor, Surface Effect, Align To Target, Animal Strafe.
* Added: Super Item - **Dual Wielding**. Equip Point IDs now declare a Side (Left/Right/None). Items can be equipped on secondary points, holsters store several items in separate slots, and conditions can tell two identical items apart.
* Added: Super Item - **Item Offsets asset** (`Malbers Animations/Super Item/Item Offsets`). Stores per-character Equip Point offsets keyed by Item ID + Equip Point ID, so the same item prefab fits every character rig without duplicating it. Includes a "Capture" button that stores the offsets of every currently equipped item.
* Added: Super Item - **Set Interruptions**. Action Sets can list States, Modes and Stances (Include ✓ / Exclude ✕) that force-end their playing Actions. Includes an `On Interrupted` Reaction and `ActionSet_Interrupt()`.
* Added: Super Item - **Processor Delay**. Every Processor has its own Execute Delay, automatically cancelled when the Action is interrupted, the Set swapped, or the item unequipped/holstered/disabled.
* Added: Super Item - **Pouch Manager**. Object-pooled projectile ammo, with per-Projectile ID reserves.
* Added: Super Item - **Super Item Processor By Animation** (StateMachineBehaviour). Fires an Item Action from an Animator State at a Normalized Time, with Set/Action name dropdowns in the inspector.
* Added: Super Item - Conditions: `Has Super Item Equipped`, `Has Super Item Holstered`, `Owns Super Item`, `Holster Occupied`, `Item Count`, `Has Free Slot`, `Is Aiming`, `Item In Use [Any Action]`, `Active Action Set`, `Is Dual Wielding`, `Has Target`, `Has User`, `Is On Side`.
* Added: Super Item - Item validator. Every Processor reports missing references and wrong configurations directly in the Item inspector.
* Added: Super Item - Processors can now self-configure when created (`OnCreated`). E.g. the Reload processor auto-creates the Chamber Stat, copies the Projectile ID from the Fire processor and adds the "Chamber is not full" condition to its Action.
* Changed: Super Item - The Chamber and the Charge values are now **Stats** on the item, instead of fields on the Super Item. Any Stat UI/event can read them.
* Changed: Super Item - Items are automatically unequipped (ending their active actions) when the character enters a State that does not allow them. E.g. Shields on Swim/Fly.
* Changed: Super Item - The Reload time is now the Processor's own Delay, so an interrupted reload never refills the Chamber.
* Fixed: Super Item - Actions could get permanently stuck (`IsPlaying` latched true) when the item was holstered/dropped inside the same frame the action started.
* Fixed: Super Item - `OnActionExit` fired twice when a Master action holding a Slave was exited.
* Fixed: Super Item - A stale Master Action index (after deleting Actions from a Set) threw an IndexOutOfRange, and an Action set as its own Master caused an infinite recursion.
* Fixed: Super Item - Swapping an Action Set left the Item's Main/Slave slots pointing at the old Set's Actions, handing the next Action the wrong Set.
* Fixed: Super Item - Equip Point / Holster gizmos were drawn in the wrong place when the offset had rotation or scale, or when the Display Mesh was a grandchild of the item root.
* Fixed: Super Item - Holster `On Item Holster Exit` never fired for the item pushed out when all the slots were full.
* Fixed: Super Item - Adding a Super Item to a GameObject with no mesh threw a NullReference on Reset/OnValidate.
* Fixed: Super Item - Duplicated Projectile IDs in the Pouch Manager Ammo list threw an ArgumentException on Awake. Now they are detected in the inspector and warned about.

#### IK System

* Added: **IK Set Library** (`Malbers Animations/IK/IK Set Library`). Stores a whole collection of IK Sets as an asset, so the same IK setup is authored once and applied to any character. Keep one library per rig (Human, Synty, Mixamo, Wolf…) and swap it on the IK Manager.
* Added: IK Manager - `Library`, `Library Mode` (Override / Additive) and `Load Library On Awake`. Runtime API: `Library_Load()`, `Library_Override()`, `Library_Add()`.
* Added: IK Manager - Save every Set (or a single Set) into an IK Set Library asset from the inspector.
* Changed: The IK Set inspector UI (Processors / Weight Processors / Events tabs) is now shared by the IK Manager, the IK Profile asset and the IK Set Library, so all three look and behave the same.

#### Weapons

* Added: **Weapon IK Profiles** asset (`Malbers Animations/Weapons/Weapon IK Profiles`). Overrides the Aim IK Profiles of every weapon a character equips. Create one per character rig and share it between all characters using that skeleton.
* Changed: The old `Custom IK Weapons Right/Left` lists on the Weapon Manager were replaced by the Weapon IK Profiles asset.
* Fixed: The Aim IK override was **writing into the Weapon asset**, so weapons shared between characters (and weapon prefabs) got permanently modified. The override is now resolved per character and the Weapon is never touched.
* Added: Condition - `Weapon Manager/Has Weapon Equipped [Tag]`. Checks the equipped weapon by Malbers Tag instead of by Weapon ID.

#### Animal Controller

* Added: **Rail Grind State** (`Ground/Rail Grind`). The character grinds along a Spline rail using the Path Constraint, with Downhill/Uphill slope acceleration, friction, automatic lean from the spline curvature, momentum on exit and mid-air re-entry after a jump.
* Added: **Combo Set** asset (`Malbers Animations/Combo Set`). Shareable Combo definitions stored as a ScriptableObject. Their combos are cloned into the Combo Manager at runtime, so the same asset can be used by many animals. The asset inspector is identical to the Combo Manager's.
* Added: **Use SphereCast** toggle on the Animal (General tab). Uses a SphereCast (with the RayCast Radius) instead of a thin Raycast for the ground alignment. More robust on ledge lips, grates and small gaps.
* Added: New Int / IntReference **Find Ability** context menu in the Character. Pick a Mode from the Animal's own Modes list and it writes the Ability Index for you (also writes into IntVar assets).
* Changed: Gravity now integrates real elapsed time instead of frame count, so it is frame-rate independent when the Animator runs in Normal update mode.
* Changed: States and Stances are now cached in dictionaries keyed by their int ID (like Modes), removing per-call allocations from every state/stance lookup.
* Changed: Animator parameters are only written when their value actually changed.
* Changed: Debug logs in the Animal, the States and the AI Control are stripped from player builds (including their string interpolation).
* Fixed: In Normal update mode a Dynamic Rigidbody kept its residual velocity and fought the transform-driven movement.
* Fixed: The Sleep → wake cycle rescanned the whole hierarchy every time.
* Fixed: Duplicated Mode IDs on an Animal threw an ArgumentException on Awake. Now the first entry is kept and a warning is shown.
* Fixed: Disabling a State left it marked as active in the internal state cache.
* Fixed: Replacing a State at runtime leaked a ScriptableObject and did not update the fast-lookup cache.
* Fixed: `Inertia` and Ground Speed produced NaN when DeltaTime was 0 (Time Scale 0).
* Fixed: The Zone State/Mode exit branch was checking the wrong value, so the exit never fired and null states threw a NullReference.
* Fixed: The In-Timeline restore condition was inverted.
* Fixed: The Sweep capsule used an unrotated/unscaled center and a world-axis direction, so it did not match the actual collider.
* Fixed: Stale self-movement caused a 1-frame impulse after a teleport or a reset.
* Fixed: Ladder - the left/right foot IK goal check was testing the hand goal (copy-paste), throwing a NullReference.
* Fixed: Swim - the water collider array was reallocated on every state reset.
* Fixed: Climb - the two SphereCasts ran before the cheap activation flags were checked.
* Fixed: Fall - the "escape" push now detects a wall in front and pushes backwards instead, so the character no longer gets permanently wedged against a ledge or a box.
* Fixed: Basic Jump - the gravity ramp used frame count instead of seconds.
* Fixed: Hidden Animator Transitions were not erased (Unity).
* Fixed: Combo Manager was giving a null exception at the end of a combo, and when a combo was deactivated while its Mode was still playing.

#### AI

* **Added:** Brain - **Per-agent typed runtime state** for Tasks and Decisions. Tasks and Decisions are shared ScriptableObjects, so any value they stored was shared by every AI using them. Each brain now keeps its own state slot.
* **Fixed:** Brain → Decisions → **Wait All Tasks** was not working.
* **Fixed:** Wait Decision started its timer on activation instead of on the first evaluation, so `Wait For All Tasks` was ignored.
* **Fixed:** Check Var / Check String Listener accumulated stale listeners when the AI State was re-entered.
* **Fixed:** Check Stat, Chance Task, Play Mode Task, Play Audio Task, Reaction Task, Reaction2 Task and the Circle Around movement all shared their runtime values between every AI using the same asset.
* **Fixed:** AI Control - `Agent Next Corner` threw an IndexOutOfRange on an empty or pending path.
* **Fixed:** AI Control - the NavMeshAgent was never found when it was not assigned (the GetComponent result was discarded).
* **Fixed:** AI Control - teleporting did not move the NavMeshAgent. It now uses `Warp()`.
* **Fixed:** AI Control - the destination search radius grew factorially (1×, 2×, 6×, 24×) instead of linearly, and the found valid destination was never returned.
* **Fixed:** AI Control - the arrival Look At rotation wobbled. It now uses angular hysteresis and a flattened pivot.
* **Fixed:** AI Control - `Force Stop Mode On Target` stopped the same mode twice.
* **Fixed:** AI Control - the Fly Off-Mesh coroutines shadowed the class-level `target` field, so the null check never worked.

#### Path Constraint

* **Added:** **Path Link (Straight)** and **Path Link (Unity Spline)** as separate components implementing `IPath`.
* **Added:** MPath Constraint - `Search Interval`. Path detection is now character-driven (each character polls nearby paths), instead of trigger-driven.
* **Changed:** **MPaths no longer require a Collider and a Trigger Proxy** (same performance). The Trigger Bounds section and the `On Enter/Exit Bounds` events are gone.
* **Changed:** Spline paths use Unity's built-in nearest-point solver (coarse pass + iterative refinement) instead of the old sampling loop.
* **Changed:** Straight paths - the Roll now spins around the path's local forward axis, and the gizmo matches the runtime roll.
* **Fixed:** MPath Constraint not exiting when there was no movement.
* **Fixed:** Blocked path ends zeroed **all** movement instead of only the movement heading into the blocked end.
* **Fixed:** "Inside path sphere" was a single shared flag, so being near one path affected every other path.
* **Fixed:** Path Constraint debug rays were drawn even with debug disabled.

#### Events & Variables

* **Added:** MEvent - **Sender**. `SetSender()` records which object raised the event (sticky until the next `SetSender`/`ClearSender`). Exposed as `LastSender` / `SenderTransform` and shown in the debug logs.
* **Added:** MEvent Listener - **Owner Filter** (`Ignore` / `Must Match` / `Must Not Match`) with `Owner`, `Match Hierarchy` and a per-entry `Ignore Owner Filter` opt-out. Lets a single event asset drive per-player UI in local multiplayer.
* **Added:** MEvent Listener - **Sender** response type. Fires the sender (as a Transform) when the entry responds.
* **Added:** **Unity Event \[Parent Child Change]** component. `On Parent Changed` / `On Children Changed`.
* **Added:** **Get Runtime GameObjects** component. Reads a Runtime GameObjects collection (First / Last / Random / Index / Name) and raises Events and Reactions, plus `On Item Added` / `On Item Removed`.
* **Added:** **Int Comparer** component (like the Float/Bool comparers), with pinning and advanced integer events.
* **Added:** **Local Variables \[BlackBoard]** components (`MLocalVars`, `MLocalVars 2`). Per-GameObject variables looked up by name or int ID, defined at edit-time or added at runtime, with subscriptions and Unity Events.

#### Tags & IDs

* **Added:** **Get Tag Object \[Tags]** component. Finds a GameObject by Malbers Tag (First / Last / Index / Name) and raises a Reaction and a GameObject Event, with an optional delay.
* **Added:** Condition - `General/Malbers Tag` with **Has Tag In Children**, plus Has Any Tag, Has Any Tag In Parent and Has All Tags.
* **Added:** Tag / ID pickers can now **create a new asset** directly from the \[+] popup (searchable, grouped, with keyboard navigation).
* **Added:** IDs inspector - `Set Name` (copies the asset file name into the Display Name) and `Find ID` (finds the next free ID value) buttons on every ID asset.
* **Changed:** ID pickers sort by ID value ascending, and strip the category prefix from the labels (e.g. "Weapon/Bow" → "Bow").

#### Reactions & Conditions

* Added: **Per-Reaction Condition**. Every Reaction now has an optional Condition toggle in its header, so a single reaction can be gated without wrapping it in a Conditional reaction.
* Added: Reaction - `Tools/Align Look At`. Aligns a character to look at a Transform or at an object with a Malbers Tag, with distance, time, offset and curve.
* Added: Reaction - `Tools/Align to Aim Direction`. Aligns the character to the Aim component's raw aim direction.
* Added: Reaction - `Unity/Dont Destroy On Load` and `Unity/Unpersist Object` (moves the object back into the active scene).
* Added: Reaction - `[Member Set]`. Sets any property, field or method on any component, by type and member name, with a two-level picker.
* Added: Condition - `Unity/Transform Values`. Compares Position / Rotation / Scale against another Transform or against a Vector3.
* Added: Condition - `Riding/Rider is Riding` (Is Riding, Is Mounting, Is Dismounting, Animal In Mount Trigger).
* Changed: `z_Multiple Reactions` is marked as Obsolete. Use Reactions2.

#### Interactions

* Added: Pick Up - **Take Away**. A character can take an item that is already held by another character. If the previous owner refuses to drop it (cooldown / drop conditions), the pick is cancelled cleanly.
* Added: Pickable - **multiple focusers**. Two or more characters can focus the same item at once without wiping each other's focus.
* Fixed: Pick Up - dropping after a take-away threw a NullReference, and a failed pick left the item reference and the picking flag stuck.
* Fixed: Pickable - the Pickable's own `Can Be Picked If` condition is now honoured at focus time.

#### Effects

* Added: **MStepSurface**. The Step Manager now handles ScriptableObject Step variations. Surfaces are identified by a Surface ID (Surface Tag component), by Terrain Layer diffuse textures, or by a mesh material main texture, and each one can override the footstep Sound, the Tracks and the Dust particles (None / Disable / Override).

#### Triggers

* Changed: Trigger Registry logging is opt-in. It used to spam the Console on every scene load in shipped builds.
* Changed: Trigger Proxy reuses a cached collider buffer instead of allocating a list on every collider enter.
* Fixed: **Zone Exit Collider was not exiting because the enter conditions were evaluated.** Exit no longer re-evaluates Active / Layer / Tags / Conditions.
* Fixed: Trigger Proxy - Collider-enter events fired again for colliders that were already inside.
* Fixed: Trigger Proxy - disabling the proxy while the GameObject was inactive threw a "Coroutine couldn't be started" error.
* Fixed: Trigger Proxy - colliders disabled or destroyed while inside the trigger are now purged so Stay/Exit stay accurate.
* Fixed: Trigger Target components auto-added by a Trigger Proxy now remove themselves when nothing references them.

#### Damage

* Fixed: The Damageable child/profile Multiplier (e.g. headshots) was applied **after** the events, so UI damage indicators showed the unmultiplied value.
* Added: Damageable - per-profile gizmo toggle, so the Scene view is not cluttered with every profile's detection rays.

#### Editor & Tools

* Added: **Missing Managed References Cleaner** (`Tools/Malbers Animations/Tools/Missing Managed References/`). Finds and clears the `[SerializeReference]` "Unsupported type" entries that produce a warning on every scene/prefab save. Scan Open Scene(s), Scan Selection, or Scan Project (Prefabs + Assets).
* Added: Mode Behaviour inspector now lists every Animator transition that **enters** the state, shows their conditions, lets you delete them, and warns when a transition encodes a different Mode ID than the behaviour's.
* Changed: The Animal Controller inspector was split into partial classes (General, States, Stances, Modes, Advanced, Debug) and the version constant is now shared with the Update Checker.
* Fixed: `[Hide]` attribute - the property path replacement replaced every matching segment instead of only the last one.
* Fixed: `[HideInInspector]` on a serialized field hid the whole subtree. Use `[Hide(nameof(field))]` when the nested children must stay editable.
* Fixed: Condition and Reaction drawers allocated a new GUIStyle and re-searched their icons on every repaint.
* Fixed: Inspector values reverting on Stats and on the MInput Link. Runtime caches were being serialized.
* Fixed: `FindObjectsSortMode` obsolete warning in Unity 6000.4+.

### Postponed

* <mark style="color:red;">**⚙️**</mark>**Added**: Basic Vehicle State
* <mark style="color:green;">**Tutorial on how to create shootable weapons**</mark>
* <mark style="color:red;">**⚙️ Added: Basic empty state??**</mark>
* When in close proximity to a wall, aiming a weapon can clip it through the wall. In most modern **third-person games,** the character pulls the weapon back if there is not enough room, preventing the player from aiming until there is space available in front of them.
* State types: Manual, Automatic, Automatic by State, by Interactor, and by Zone
* Charged Combo!
* Darksiders idea: rolling and dashing on edges so the character will not fall.
* ~~Darksiders idea: Quick Input, Normal Attack, Hold Input Heavy Attack~~
* ~~Mode Align v2...Object~~
* <mark style="color:red;">**⚙️**</mark><mark style="color:red;">**&#x20;**</mark>*<mark style="color:red;">**Rider does not die while mounting**</mark>*
* <mark style="color:red;">**⚙️**</mark>State Inspector does not allow dragging objects or using the Object reference button in Unity 6

### Future ideas

* **Added: Missing hit-test numbers on weapons (check the Bow. Why is it hitting all the time?)**
* **⚙️Added:** Scriptable IK Processors
* **⚙️Swipe** on the mobile screen
* ~~NEW DEMO FOR Transform Translators~~
* ~~**⚙️Added:** Conditions are Serialized References (IMPORTANT)~~
* **⚙️Added:** Local multiplayer with the New Input System
* ⚙️**Added**: Copy-paste any State Animator tools??
* ⚙️**Added: Weapons can have owner stats to increase the damage dealt**
* ⚙️**Melee Weapons Charge Increase Attack Option**
* **Ride boat.**
  * (<https://discussions.unity.com/t/script-to-copy-statemachines-whole-controllers/584117/5>)
  * <https://github.com/qwe321qwe321qwe321/Unity-AnimatorTransitionCopier>

### Bugs reported by email

* **⚙️***<mark style="color:orange;">**Added: Stat System -> now it can have multiple degeneration and regeneration values besides the default one**</mark>*
* *<mark style="color:orange;">**Remove all exit and interrupted transitions to the modes**</mark>*
* <mark style="color:orange;">**Removed: animation warnings for humanoids when importing for the first time 60%**</mark>
* <mark style="color:orange;">**Add**</mark>

***UNICORN ATTACK***

### Roadmap

{% content-ref url="/pages/394QSQ8a1DNMdCyL405A" %}
[Road Map](/animal-controller/road-map.md)
{% endcontent-ref %}
