> 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

Last updated AC v1.5.3b

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

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

<details>

<summary>NEXT TO CHECK</summary>

* <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

### 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?
  * Flying Broom

</details>

## &#x20;<a href="#release-1.5.3b-ac-4.5.3b-hap" id="release-1.5.3b-ac-4.5.3b-hap"></a>

## 1.5.3c (AC) - 4.5.3c (HAP) <a href="#release-1.5.3c-ac-4.5.3c-hap" id="release-1.5.3c-ac-4.5.3c-hap"></a>

#### States

* **Added:** **State Handles**. Drag a State's gizmo values (ray lengths, distances, pivots, radius) directly in the Scene View. Turn them on with the **Edit Handles** button in the State's parameters tab.
* **Added:** **State ▸ Preview Animal**. A State asset selected in the Project window draws its handles on an animal in the scene.
* **Added:** Handles for **Ledge Grab**, **Free Climb**, **Locomotion**, **Wall Run**, **Wall Run Vertical**, **Fly**, **Glide**, **Fall**, **Swim**, **Ladder** and **Slide**.
* **Added:** Handles for values that had no gizmo: **Free Climb ▸ Sprint Climb Ray Length**, **Locomotion ▸ Fall Ray Backwards**, **Wall Run ▸ Start Height** and **Swim ▸ Front Ray Length**.
* **Changed:** **Free Climb ▸ Climb Chest / Climb Hip** are now heights (**Climb Chest Height**, **Climb Hip Height**). Existing values are converted automatically.
* **Fixed:** **Locomotion ▸ Wall Stop**, **Fly**, **Glide**, **Fall**, **Swim** and **Slide** gizmos now start where the runtime rays start and use the animal's scale.
* **Fixed:** **Fly ▸ Bone Blocking Landing** ray is now drawn outside Play Mode.
* **Fixed:** Scaled animals. **Wall Run Vertical ▸ Wall Check**, **Glide ▸ Land Distance**, **Swim ▸ Front Ray Length**, **Ladder ▸ Ceiling Ray** and **Slide ▸ Front Ray** now use the animal's scale.

#### IK

* **Added:** **IK Set ▸ Scale Multiplier**. Scales the position offsets of one Set, on top of the IK Manager Scale Multiplier. For example, the hands of a Carry Box Set fit a smaller box.
* **Added:** **IK Reaction ▸ Set Scale**. Changes the Scale Multiplier of the IK Set when the Reaction runs.
* **Added:** **IK Reaction ▸ Restore Targets**. Returns the listed Global Targets to their defaults. With no Tags listed, every Global Target is restored.
* **Added:** **IK Reaction ▸ Use Profile**. Activate plays an **IK Set Profile** on the character and Deactivate stops it. Each character plays its own runtime copy, so characters sharing a Profile do not affect each other.
* **Fixed:** **Human IK Goal** kept the first target it found, so changing a Global Target at runtime (for example with an IK Reaction) did not move the hands.

## 1.5.3a (AC) - 4.5.3a (HAP) <a href="#release-1.5.3-ac-4.5.3-hap" id="release-1.5.3-ac-4.5.3-hap"></a>

* **Fixed:** **Fall State**. Animals with two pivots (Chest and Hip) kept sliding in the Fall state when landing facing downhill on a slope under the **Slope Limit**. The Hip touched the ground first, but only the Chest ray (Main Pivot) was checked. The Hip ray is now checked too, only in the last frames before landing, so it adds almost no cost. Animals with one pivot (humanoids) are not affected.
* **Fixed:** **Fall State**. After landing on the Hip on a slope, the Fall state activated again on the next frame, before the animal could align to the ground. Fall now waits until the animal is aligned to the slope (up to 1 second).
* **Fixed:** **Animal Controller ground alignment**. When only the Hip ray found ground (for example, the Chest over lower ground on a downhill slope), the animal did not align to the terrain. It now aligns to the ground under the Hip.
* **Added:** **AI Agent Skills**. A set of skills for AI coding agents (Claude Code and any agent that supports the `SKILL.md` format) that explain how to use Animal Controller in depth: core MAnimal, character setup, States, Modes, AI, Super Item, Damage and Stats, IK and Aim, Riding, and Events and Scriptables. Each skill includes workflows, common mistakes, reference tables and code templates.
* **Added:** **Stats**. The **Events On Enable** option is now shown in the inspector and works: turn it off to skip the Stat events when the Stats component is enabled.
* **Added:** **Wolf Lite** can use Super Items. The Wolf Lite prefab has a **Super Item Manager** and its own Super Item Offsets asset (`Wolf_SuperItemOffset`): Items made for the Left or Right Hand are held on the **Head** Equip Point, and the Wolf's **Attack** input plays the Item's **Attack Light** Action.
* **Changed:** **Reactions**. Every row of a Reactions list now runs, even when an earlier row fails (missing target, false condition, row disabled). Before, the first failing row stopped all the rows below it.
* **Changed:** **Respawn**. Resetting the Animal (respawn, wake up from Sleep) now runs the **On Exit** event of the State it leaves, so a respawn leaving Death runs Death's On Exit event.
* **Changed:** **Human Base** prefab. The Death State **On Exit** event turns the **IK Manager** and the **Internal Components** object back on, so a respawned human gets its IK and internal colliders back.
* **Changed:** **State ▸ Limits ▸ Allowed Stances** is now used: while the State is active, a Stance that is not on the list cannot be activated. The Default Stance is always allowed. The legacy list was cleared on Human Fall, Human Free Climb v2, Raccoon Climb, Raccoon Climb v2 and Drake Fly to keep their current behaviour.
* **Changed:** **AI Brain**. A Brain with no **Current State** logs a warning when it disables itself, instead of doing it silently.
* **Changed:** **Convert To AI Character** asks for confirmation before it modifies a prefab asset, because it cannot be undone.
* **Changed:** **Animator Tools**. The Required and Optional parameter buttons now use the parameter names set on the MAnimal (`StateEnterStatus`, `DeltaAngle`, `Strafe`...). **Speed Multiplier** is now listed as an optional parameter.
* **Removed:** Legacy **Look At** component. Look-at is now done with **IK Manager** Sets (see the Look At Sets on Human Base and Wolf Lite). The component was removed from the demo scenes and prefabs.

#### AI

* **Fixed:** **Has Arrived** decision. With **Check By = Name** and an empty name it never returned true. An empty name now means any target.
* **Fixed:** **Check Target** decision. **Has Name** only worked with an empty name. It also threw errors when the Brain had no target.
* **Fixed:** **Check Stat**, **Check Scriptable Variable** and **Check Var Listener** decisions. **Greater or Equal** and **Less or Equal** always returned false. Check Stat also threw an error when the Stat did not exist and **Try Get Value** was off.
* **Fixed:** **Look** decision. The **Zones** filter let almost any zone through, and the **GameObject Var** mode threw an error when the variable was empty.
* **Fixed:** **AI Brain**. The `OnPositionArrived`, `OnTargetAnimal…` and `OnAnimalEventDecisionListen` callbacks of Tasks and Decisions were never called. `OnAnimalModeEnd` now receives the Mode that ended.
* **Fixed:** **AND**, **OR** and **Check Stat** decisions did not show the **Wait For All Tasks** and **Wait For Task** fields.

#### Animal Controller

* **Fixed:** `Mode_Activate(int)`, `Mode_ForceActivate(int)` and `Mode_ForceActivate(ModeID)` with a plain Mode ID (under 1000) failed or played no ability. They now play a random ability of that Mode.
* **Fixed:** **On Animation Change** event was never invoked. It now fires with the new animation tag.
* **Fixed:** Adding a State or Stance **On Enter / On Exit** listener from code threw an error when the MAnimal had no row for that ID. The row is now created.
* **Fixed:** **State ▸ Limits ▸ Disable Modes** was ignored. The Modes on the list are now disabled while the State is active.
* **Fixed:** `StateEnum.WallRunVertical` was 12. It is now 15, the same as the State ID asset.
* **Fixed:** `MAnimal.ActivateDamager(0)` was ignored while the Animal was asleep (for example a rider on a horse), which could leave an attack trigger on. Turning the triggers off now always works.
* **Fixed:** **Respawner** in the **Swap Characters** demo. Swapping to a character that is already in the scene teleported it and reset its Animator, leaving it on Idle while the Animal was on Locomotion. A live scene character is now used where it is, and the Respawner only listens for its death.

#### Timeline

* **Added:** **AC Ground Aligner** clip ▸ **End Location**. The Animal is pulled towards a Transform during the clip and arrives exactly on it on the last frame. **End Location Curve** sets how much is applied over the clip, and **Match Rotation** turns the Animal to face the End Location forward direction. The old `Animal End Location` field (an MAnimal) was never used; it is now a Transform.
* **Added:** **AC Ground Aligner** track previews in Edit Mode. Scrubbing the Timeline now plays the root motion and aligns the Animal to the ground, and the Animal goes back to its place when the preview ends.
* **Fixed:** **AC Ground Aligner** track. The ground rays now start above the pivots, so the Animal keeps finding the ground while going up a slope, and with both the Chest and the Hip on the ground the slope is taken from both hits, so small bumps do not tilt the Animal sideways.
* **Changed:** **AC Ground Aligner** track. When the track stops, the Animal stays where the Timeline left it instead of snapping back to its start position.

#### Modes

* **Fixed:** **Mode Sequence**. Abilities with an index over 99 were read wrong, and a step with a plain Mode ID failed. The next step now starts one frame after the previous Mode ends.
* **Fixed:** **Directional Damage** modifier, **Four Sides**: hits from the left played the right reaction and the other way round. **Forest Golem** users: check the `FG 4 Directions` hit reactions.
* **Fixed:** **Dodge** modifier help text for **8 Sides** now matches the ability order.

#### Damage and Stats

* **Added:** **Damager ▸ Hit Effects**. A hit object with no **MDamageable** now uses its **Surface Tag** to choose the Hit Effect, so props like wood or metal play their own effect instead of the Default one.
* **Fixed:** **MDamageable**. A hit on a Stat the character does not have threw an error. It now logs a warning and skips the Stat.
* **Fixed:** **Respawners**. A respawned character could not be damaged again, because its **MDamageable** stayed disabled after death. **MRespawner NPC** now also restarts the Stats of a reused NPC.
* **Fixed:** **Simple Respawner** added its death listener again when disabled, instead of removing it.
* **Fixed:** **Prevent Duplicate Damage** on **Attack Triggers** and **Melee** weapons. A character is now hit once per attack.
* **Fixed:** **Damager** context menus **Set Default Damage** and **Get Layer from Root** did nothing.
* **Fixed:** **Stat Monitor UI** error when a Stat was missing.

#### Effects

* **Fixed:** **Effect Manager**. The **Scale** multiplier was ignored on effects set as **Is Child**.
* **Fixed:** **Effect Manager** gizmo. It now draws every mesh of the selected Effect, where the Effect will be placed when it plays. Before, it drew only the first mesh, often in the wrong place.

#### Riding

* **Fixed:** **Rider ▸ Disable Components** with an empty **Disable List** threw an error when mounting. An empty list now disables every other script on the rider and restores only the ones that were enabled.
* **Fixed:** **Rider** reins. The rein hand tooltips were reversed, and `FreeBothHands()` and `WeaponInHands()` did the opposite of their names.
* **Fixed:** **Mount Trigger ▸ Dismount** toggle was ignored when choosing the dismount side.

#### Super Item, IK and Weapons

* **Added:** **Super Item Manager ▸ Events** tab. **On Item Equipped**, **On Item Unequipped**, **On Item Holster**, **On Item Unholster**, **On Item Dropped** and **On Item Picked** send the Item; **On Action Pressed** and **On Action Released** send the Action ID. One place to listen to every Item of the character, instead of wiring the same event on every Equip Point, Holster or Item.
* **Added:** **Super Item Manager ▸ Reactions** tab. Item reactions for Equipped, Unequipped, Holster, Unholster, Dropped and Picked (Dynamic Target: the Item), **Any Action Pressed / Released**, and Pressed / Released reactions for each **Action Input** row (Dynamic Target: the Manager). Action reactions run after the Items handle the input, so an **Is Playing Action** condition already sees the Action that just started.
* **Added:** **Super Item Manager ▸ Instant Drop**. When it is off (default), dropping an equipped Item plays the Item's **Drop Mode** animation first and the Item leaves the hand after its Equip Duration. Turn it on to keep the old instant drop. Holstered Items always drop instantly.
* **Added:** **Super Item Offsets ▸ Equip Point Equivalents** and **Action Equivalents**. A character that does not have the Equip Point or the Action an Item was made for can use another one. For example, a Wolf can equip hand Items on its **Head**, and its **Attack** input can play the Item's **Attack Light**. The Item's own Equip Point and Action always win when the character has them. The **Super Item Actions UI** shows the input of the equivalent Action.
* **Added:** **Super Item ▸ On Picked By** and **On Dropped By** events. They send the character that picked or dropped the Item.
* **Added:** **Super Item Manager** validation. An **Add Missing Animator Parameters** button adds the parameters the Manager writes (Item Left Hand Type, Item Right Hand Type, Mirror) to the character's Animator Controller.
* **Added:** **Show Warnings** toggle on the **Super Item** and **Super Item Manager** inspectors, to hide the warning boxes.
* **Changed:** **Equip Point ▸ On Store** (**Holster**, **Drop** or **Hide**) replaces **Store On Holster**. Existing Equip Points are converted automatically: ON becomes Holster, OFF becomes Drop. Before, OFF left the Item unequipped but still in the hand, with no way to use it again. **Hide** turns the Item off in place; **Item Equip** draws it back.
* **Changed:** **\[Item] Is Playing Action** and **\[Manager] Is Playing Action** conditions now take a list of Actions with **Include / Exclude**. Existing conditions keep their Action.
* **Changed:** **Super Item Manager** inspector. **Inputs** moved to the first tab row, next to Holsters, and the new **Events** and **Reactions** tabs are on the second row.
* **Changed:** **Super Item Manager** defaults. A new Manager comes with the **Attack**, **Aim**, **Block**, **Parry**, **Attack Heavy** and **Attack Light** Action Inputs, and its Equip Points and Holsters come with the UI icon reactions and the **SI Item Equipped / Unequipped** events.
* **Changed:** The legacy weapon components are now listed as **Weapon Manager (Legacy)**, **Melee Weapon (Legacy)**, **Shootable (Legacy)** and **MBow (Legacy)** in the Add Component menu.
* **Changed:** `HolsterID.cs` moved from `Weapons/Scripts` to `Scripts/ID`.
* **Fixed:** **IK Manager** `Set_Weight_1()` turned the Set off. `Set_Weight_1()` and `Set_Weight_0()` now blend the weight to 1 and 0.
* **Fixed:** **Weight Animal Mode** IK processor did not stop listening to the Mode End event.
* **Fixed:** **Weapon Manager** two hands IK checked the wrong Animator parameter.
* **Fixed:** **Super Item Manager ▸ Use Fast Weapons** tooltip now describes what is blocked while an Action is playing.

#### Events and Interactions

* **Changed:** **GameObject ▸ Malbers Animations ▸ Create New Zone** now creates a **Zone2**.
* **Added:** **Surface Tag** supports editing several objects at once.
* **Fixed:** **Align Reaction** showed the wrong target name when the Target used a Variable.
* **Fixed:** **Has Item Picked** condition with ID `-1` now means any held item.
* **Fixed:** **Interactor ▸ Tags** skipped the interactables that had the tag. It now only allows interactables with one of the tags.
* **Fixed:** **Reactions 2 ▸ Get Target on Enable** did nothing. It now finds the target when the component is enabled.
* **Fixed:** **MEvent Listener ▸ Match Hierarchy** tooltip now says it matches the owner or any of its children.

#### Input

* **Fixed:** **MInputLink**. In local multiplayer, re-enabling a Player Input could swap two players' inputs, so both characters answered the same device.
* **Fixed:** **MInputLink ▸ Current Control Scheme** event could report another player's control scheme.
* **Added:** **MInputLink ▸ Reset Player Input On Enable**. Turn it off when handing a running Player Input to another character, so it keeps its devices.

***

### Postponed

**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.

* <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>

***UNICORN ATTACK***
