# FAQ & Troubleshooting

***

## Frequently Asked Questions

### Which Unity version is supported?

Pro 2D Controller is designed for:

```
Unity 2022.3 LTS or newer
```

Older versions may work but are not officially supported.

***

### Does the controller use the New Input System?

Yes.

The controller uses:

```
Unity Input System Package
```

If required, enable it from:

```
Edit → Project Settings → Player
```

Under:

```
Active Input Handling
```

select:

```
Input System Package (New)
```

OR:

```
Both
```

***

### Can I remove modules I don't need?

Yes.

The controller is fully modular.

You can add or remove:

* Dash Module
* Wall Module
* Ledge Module
* Debug Module

directly from the custom inspector.

***

### Can I customize the controller behavior?

Absolutely.

All movement systems expose customizable settings through the inspector, including:

* Movement speed
* Jump force
* Dash behavior
* Wall slide settings
* Ledge climb settings
* Gravity modifiers

***

### Does the controller support slopes?

Yes.

The controller includes:

* Slope detection
* Slope movement direction
* Ground normal calculation
* Stable grounded movement

***

### Can I use my own character sprite?

Yes.

The controller logic is completely separated from visuals.

You can:

* Replace the sprite
* Add animations
* Use Animator Controllers
* Add VFX and particles

without modifying the core controller systems.

***

### Is the controller beginner-friendly?

Yes.

The package includes:

* Demo scene
* Custom inspector
* Setup validation
* Modular architecture
* Documentation

designed to make setup and customization easier.

***

## Troubleshooting

### Player Is Not Moving

Possible Causes:

* Input System not enabled
* Missing PlayerInputHandler
* Rigidbody2D missing
* Modules disabled

Solutions:

1. Enable the Input System
2. Check required components
3. Verify Movement Module is enabled
4. Ensure Rigidbody2D exists

***

### Jump Is Not Working

Possible Causes:

* Ground checks positioned incorrectly
* Jump Module disabled
* Ground Layer not assigned

Solutions:

1. Check ground check transforms
2. Verify Ground Layer assignment
3. Ensure Jump Module is enabled
4. Confirm Ground Check Distance values

***

### Wall Slide Is Not Working

Possible Causes:

* WallCheck positioned incorrectly
* Wall Layer missing
* Wall Module disabled

Solutions:

1. Position WallCheck in front of player
2. Assign wall surfaces to Wall Layer
3. Verify Wall Distance settings
4. Enable Wall Module

***

### Ledge Climb Is Not Working

Possible Causes:

* Incorrect ledge check placement
* Wall Module missing
* Incorrect Wall Layer setup

Solutions:

1. Position LowerLedgeCheck near chest
2. Position UpperLedgeCheck below head
3. Verify Wall Module exists
4. Check Wall Layer assignment

***

### Slope Movement Feels Unstable

Possible Causes:

* Incorrect slope check distance
* Poor collider shapes

Solutions:

1. Spread ground checks evenly
2. Adjust Slope Check Distance
3. Use cleaner slope colliders
4. Enable Rigidbody Interpolation

***

### Player Feels Jittery

Possible Causes:

* Camera smoothing issues
* Rigidbody interpolation disabled
* Physics timing mismatch

Solutions:

1. Enable Rigidbody2D Interpolate
2. Use FixedUpdate for physics movement
3. Reduce excessive smoothing
4. Verify camera follow settings

***

### Player Falls Through Ground

Possible Causes:

* Incorrect collision layers
* Missing colliders
* Collision Detection disabled

Solutions:

1. Enable Continuous Collision Detection
2. Verify colliders exist
3. Check Ground Layer setup
4. Ensure Rigidbody2D is Dynamic

***

### Inspector Validation Warnings

The custom inspector validation system checks:

* Missing components
* Missing transforms
* Layer assignments
* Ground checks
* Wall checks
* Ledge checks

Resolve all warnings before testing gameplay.

***

## Recommended Physics Settings

For best results:

| Setting             | Recommended Value |
| ------------------- | ----------------- |
| Collision Detection | Continuous        |
| Interpolate         | Interpolate       |
| Fixed Timestep      | 0.02              |

These settings improve movement smoothness and collision stability.

***

## Best Practices

* Keep raycast distances relatively small
* Use proper layer assignments
* Test mechanics individually
* Use Debug Module while tuning movement
* Avoid scaling the player object unevenly

***

## Need Help?

If you need support or want to report issues:

* YouTube: TheCodeCM
* Discord Community
* Documentation Pages


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://the-code-cm.gitbook.io/pro-2d-controller-doc/getting-started/faq-and-troubleshooting.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
