# Sandbox.CharacterController

Allows collision constrained movement without the need for a rigidbody. This is not affected by forces and will only move when you call the Move() method.

- Kind: class
- Namespace: `Sandbox`
- Assembly: `Sandbox.Engine`
- Inherits: [Sandbox.Component](/api/Sandbox.Component)

## Constructors

- [`CharacterController`](/api/Sandbox.CharacterController/.ctor)

## Properties

- [`Acceleration`](/api/Sandbox.CharacterController/Acceleration)
- [`Bounciness`](/api/Sandbox.CharacterController/Bounciness): When jumping into walls, should we bounce off or just stop dead?
- [`BoundingBox`](/api/Sandbox.CharacterController/BoundingBox)
- [`GroundAngle`](/api/Sandbox.CharacterController/GroundAngle)
- [`GroundCollider`](/api/Sandbox.CharacterController/GroundCollider)
- [`GroundObject`](/api/Sandbox.CharacterController/GroundObject)
- [`Height`](/api/Sandbox.CharacterController/Height)
- [`IgnoreLayers`](/api/Sandbox.CharacterController/IgnoreLayers)
- [`IsOnGround`](/api/Sandbox.CharacterController/IsOnGround)
- [`Radius`](/api/Sandbox.CharacterController/Radius)
- [`StepHeight`](/api/Sandbox.CharacterController/StepHeight)
- [`UseCollisionRules`](/api/Sandbox.CharacterController/UseCollisionRules): If enabled, determine what to collide with using current project's collision rules for the [Sandbox.GameObject.Tags](/api/Sandbox.GameObject/Tags) of the containing [Sandbox.GameObject](/api/Sandbox.GameObject).
- [`Velocity`](/api/Sandbox.CharacterController/Velocity)

## Methods

- [`Accelerate`](/api/Sandbox.CharacterController/Accelerate): Add acceleration to the current velocity. No need to scale by time delta - it will be done inside.
- [`ApplyFriction`](/api/Sandbox.CharacterController/ApplyFriction): Apply an amount of friction to the current velocity. No need to scale by time delta - it will be done inside.
- [`Move`](/api/Sandbox.CharacterController/Move): Move a character, with this velocity
- [`MoveTo`](/api/Sandbox.CharacterController/MoveTo): Move from our current position to this target position, but using tracing an sliding. This is good for different control modes like ladders and stuff.
- [`Punch`](/api/Sandbox.CharacterController/Punch): Disconnect from ground and punch our velocity. This is useful if you want the player to jump or something.
- [`TraceDirection`](/api/Sandbox.CharacterController/TraceDirection): Trace the controller's current position to the specified delta
