# Enable the Input System
About 15 minutes. Budget extra time for Editor restarts.
## Learning objectives
- Confirm whether the Input System package is already installed
- Install it from Package Manager only if it is missing
- Set **Active Input Handling** to **Input System Package (New)**
- Create and assign the default project-wide actions asset if needed
Official install steps: [Installation guide | Input System](https://docs.unity3d.com/Packages/
[email protected]/manual/Installation.html)
## Check Package Manager first
Many Unity 6 templates already include the Input System package. Some also create `InputSystem_Actions.inputactions` under `Assets`. Check before you install anything.
1. Open **Window > Package Manager**.
2. Select **Unity Registry** in the left navigation.
3. Select **Input System** in the list (use the search box if the list is long).

4. Read the button in the details panel.
| What you see | What to do |
| --- | --- |
| **Install** | The package is missing. Continue with [Install the package](#install-the-package). |
| **Remove** / **Update**, or a version number already listed as installed | The package is already there. Skip install. Go to [Enable the new backends](#enable-the-new-backends). |
You should see: the Input System package selected, with either **Install** or an installed version.
## Install the package
Skip this section if Package Manager already shows Input System as installed.
1. With **Input System** selected, select **Install**.
2. If Unity asks to enable the new input backends, select **Yes**.

3. Wait for the Editor to restart.
You should see: the Editor closes and reopens on the same project.
## Enable the new backends
Installing the package is not the same as making it the active input stack.
1. Open **Edit > Project Settings**.
2. Select **Player**.
3. Open **Other Settings**.
4. Under **Configuration**, find **Active Input Handling**.
5. Set it to **Input System Package (New)**.

> **Why this matters:** This course uses **Input System Package (New)** so `Input.GetAxis` and `Input.GetKey` are not available. If you leave it on **Input Manager (Old)**, New Input System scripts will not run. **Both** is only for migrating an old project that still contains legacy input code. Do not use **Both** for this starter.
| Setting | C# defines | Use in this course |
| --- | --- | --- |
| Input Manager (Old) | `ENABLE_LEGACY_INPUT_MANAGER` | No |
| Input System Package (New) | `ENABLE_INPUT_SYSTEM` | Yes |
| Both | both defines | Migration only |
6. Close Project Settings. If Unity asks to restart the Editor, accept and wait.
You should see: the Editor restarts. After it returns, **Active Input Handling** still reads **Input System Package (New)**.
> **Warning:** Changing **Active Input Handling** does nothing until the Editor restarts. If you skip the restart, later scripts fail in confusing ways.
## Project-wide actions
Unity 6 stores the default actions in a project-wide Action Asset. Scripts then call `InputSystem.actions.FindAction(...)`.
1. Open **Edit > Project Settings**.
2. Select **Input System Package**.

3. Look at the **Input Actions** section.
| What you see | What to do |
| --- | --- |
| An actions asset is already assigned (often `InputSystem_Actions`) | Done. Close Project Settings. |
| A button labeled **Create and assign a default project-wide Action Asset** | Click it. |
4. If you created the asset, confirm a file named `InputSystem_Actions.inputactions` (or similar) appeared under `Assets`.
You should see: Project Settings > Input System Package shows an assigned Action Asset, and the default maps **Player** and **UI** are listed.
The default **Player** map includes **Move**, **Look**, **Jump**, **Attack**, and related actions. **Move** is typically WASD + arrows + gamepad left stick. **Jump** is typically Space + the gamepad south button.
## UI input (read this once)
When **Active Input Handling** is **New** or **Both**, Unity UI (uGUI) uses **Input System UI Input Module**, not **Standalone Input Module**.
If you later add a Canvas and clicks do nothing, select the **EventSystem** object. If it still has **Standalone Input Module**, replace that component with **Input System UI Input Module**. Unity often offers a button in the Inspector to do this swap. This starter does not need a Canvas.
## Checkpoint
Before you continue to [Input Actions](04-input-actions.md):
- **Window > Package Manager** shows **Input System** installed
- **Active Input Handling** is **Input System Package (New)** (after a restart)
- **Edit > Project Settings > Input System Package** has a project-wide Action Asset assigned