> For the complete documentation index, see [llms.txt](https://speedtutoruk.gitbook.io/apk-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://speedtutoruk.gitbook.io/apk-documentation/extending/swapping-character-controllers.md).

# Swapping Character Controllers

Yes, you can - but you will need to setup the child objects in the same way as the one you see below or as the example in the demo scene:

{% hint style="warning" %}
Make sure your player controller has a parent object above it and the FlashlightSwing is a child of that parent, not of your controller
{% endhint %}

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

{% hint style="danger" %}
This video is about adding a new FPSController, you don't need to worry about the padlock section as it's been changed in V1.6!
{% endhint %}

{% embed url="<https://www.youtube.com/watch?v=mIRa-NkmDkA>" %}
This video is about adding a new FPSController, you don't need to worry about the padlock section as it's been changed in V1.6!
{% endembed %}

## How to disable movement?&#x20;

{% hint style="info" %}
The **AK - DisableManager** script has a reference to the player character on this example:
{% endhint %}

```csharp
using UnityStandardAssets.Characters.FirstPerson;

[SerializeField] private FirstPersonController player;

public void DisablePlayerDefault(bool disable, bool isInteracting, bool isExamine)
{
    if (disable)
    {
        //Code
        if (isExamine)
        {
             blur.enabled = true;
        }

        if (isFirstPerson)
        {
            player.enabled = false;
        }

        if (isThirdPerson)
        {
            thirdPersonController.enabled = false;
            thirdPersonRotator.enabled = false;
         }
    }
    else
    {
        //Code
        if (isExamine)
        {
             blur.enabled = false;
        }

        if (isFirstPerson)
        {
            player.enabled = true;
        }

        if (isThirdPerson)
        {
            thirdPersonController.enabled = true;
            thirdPersonRotator.enabled = true;
        }
      }
```

{% hint style="info" %}
You will want to edit the reference variable and the lines below to incorporate disabling your character movement and camera rotation:&#x20;
{% endhint %}

```csharp
//Reference your character controller here, unless your controller solution comes
//with a better solution
[SerializeField] private FirstPersonController player;
```

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