# Controls and roles

> Controls give players actions such as Kick; roles decide who may start matches or move players.

## Controls

Players move with the arrow keys or WASD and aim with the mouse, a touch
or a gamepad's right stick. Anything else, like **Kick**, is an
**action**: the first is Space or the left mouse button, the second E or
the right button, then Q and F. Each action shows its key, and a scheme
holds four.

![The Controls page with the Kick action selected: its label, and its behaviour's reach, strength and recoil.](/shots/controls-page.png)

1. Open **Controls**, press **New scheme**, then **New action**.
2. Give it a **Label** players see.
3. Optional: pick a **Behaviour** the engine runs:
   - **Kick** pushes nearby balls. **Toward the aim** kicks only what is in
     front, toward the mouse; its **Arc degrees** narrows that to a slice, as
     a racket or bat does. **Changes movement while held** slows the player
     while the key is down, as in HaxBall; only one kick per scheme may.
   - **Grab** picks up a ball in the `hold` group; pressing again drops it.
   - **Throw** launches the held ball where the player aims.

   A **Charge seconds** above 0 makes it act on release: a tap uses
   **Strength**, a full charge **Full-charge strength**.

Then:

- Pick the scheme in your player prefab's **Controls**.
- React in rows: _A player presses {action}_, _A player uses {action}_.

## Roles

Who may do what: start the match, move players between teams…

![The Roles page: admin, held by the room owner.](/shots/roles-page.png)

1. Open **Roles** and press **New role**.
2. Choose **Who has it**: everyone, the room owner, or no one until given.

Use it to:

- Lock a button: players without it see it disabled.
- Check it in a row: _{player} has {role}_.
- Give it or take it: _Give {role} to {player}_, _Take {role} from {player}_.
- React when it changes: _A player gains {role}_ and _A player loses {role}_.

Rooms, and people in the room, can give roles too. See [Roles](/concepts/roles).
