# 03.8 PLAYER

The player movement is controlled by a state machine. This is built using the following scripts: `PlayerBaseState.cs` and `PlayerStateFactory.cs`. Through `PlayerStates.cs`, the player can access all possible states. The available player states include:

* **PlayerDefaultState**
* **PlayerCrouchState**
* **PlayerDashState**
* **PlayerDieState**
* **PlayerGlideState**
* **PlayerJumpState**
* **PlayerLadderState**
* **PlayerWallJumpState**
* **PlayerWallSlideState**

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>PlayerMovement</td><td><a href="03.8-player/playermovement">playermovement</a></td></tr><tr><td>PlayerControl</td><td><a href="03.8-player/playercontrol">playercontrol</a></td></tr><tr><td>PlayerStats</td><td><a href="03.8-player/playerstats">playerstats</a></td></tr><tr><td>InteractionManager</td><td><a href="03.8-player/interactionmanager">interactionmanager</a></td></tr><tr><td>PlayerMultipliers</td><td><a href="03.8-player/playermultipliers">playermultipliers</a></td></tr><tr><td>PlayerProceduralAnimator</td><td><a href="03.8-player/playerproceduralanimator">playerproceduralanimator</a></td></tr><tr><td>Grapple</td><td><a href="03.8-player/grapple">grapple</a></td></tr></tbody></table>
