> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinemation.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# ➕Magazines

> In this page you will learn how magazines are animated in the pack

## Animator Controllers

**Tactical Shooter Pack** uses magazines as standalone skeletal meshes, which have spring, mag follower and cartridges properly animated.

<Frame caption={"Animation preview of the TR15 mag animation."}>
  <img src="https://mintcdn.com/kinemation/-AzWoLR_QWINVM-e/images/tactical-shooter-pack/unity/cf602bea8c0890ad0433.png?fit=max&auto=format&n=-AzWoLR_QWINVM-e&q=85&s=08a9919fb53d224d496cf6516508dbe6" alt="" width={309} data-path="images/tactical-shooter-pack/unity/cf602bea8c0890ad0433.png" />
</Frame>

Magazines are added directly to the weapon mesh, they are then assigned an Animator Controller:

<Frame caption={"Magazine animator example."}>
  <img src="https://mintcdn.com/kinemation/-AzWoLR_QWINVM-e/images/tactical-shooter-pack/unity/55e36b307289356cc1d3.png?fit=max&auto=format&n=-AzWoLR_QWINVM-e&q=85&s=e85769a6d4a418d40072bdcb4e91e37a" alt="" width={380} data-path="images/tactical-shooter-pack/unity/55e36b307289356cc1d3.png" />
</Frame>

These controllers only contain a mag animation, which is played based on how much ammo is left:

<Frame caption={"AC_TacFPS_Mag controller."}>
  <img src="https://mintcdn.com/kinemation/-AzWoLR_QWINVM-e/images/tactical-shooter-pack/unity/bc1ac15cce272a4b4653.png?fit=max&auto=format&n=-AzWoLR_QWINVM-e&q=85&s=026ab0a65156d1c7805600f4d600f0b0" alt="" width={563} data-path="images/tactical-shooter-pack/unity/bc1ac15cce272a4b4653.png" />
</Frame>

The `MagProgress` float property is updated by the Mag Animator component, which accesses the current weapon ammo capacity.

## Mag Animator

<Frame caption={"Mag Animator component."}>
  <img src="https://mintcdn.com/kinemation/-AzWoLR_QWINVM-e/images/tactical-shooter-pack/unity/23f39b4d8a5cb111da88.png?fit=max&auto=format&n=-AzWoLR_QWINVM-e&q=85&s=1eed2fa2224615ca35771523da0990f9" alt="" width={356} data-path="images/tactical-shooter-pack/unity/23f39b4d8a5cb111da88.png" />
</Frame>

This component tries to get the current weapon's ammo capacity to compute the `MagProgress` value.

To display the animation correctly, it's important to adjust these properties:

* **Mag Capacity**: max ammo for this magazine.

* **Time Step**: how much time in seconds it takes to play a single bullet.

* **Interp Speed**: smoothing speed for mag progress.

* **Mag Progress**: if set to 0, the first frame will be used, if 1 - the last one; this property is dynamically updated at runtime.
