# General Information

The `minerl`

package includes several environments as follows.
This page describes each of the included environments, provides usage samples,
and describes the exact action and observation space provided by each
environment!

Note

All environments offer a default no-op action via `env.action_space.no_op()`

and a random action via `env.action_space.sample()`

.

## Observation Space

Most environments use the same observation space (just an RGB image):

```
Dict(pov:Box(low=0, high=255, shape=(360, 640, 3)))
```

## Action Space

Most environments use the same action space, which is a dictionary containing a
multitude of different actions. Note that `Discrete`

and `Box`

are
actions spaces defined by Gym.

Dict({ "ESC": "Discrete(2)", "attack": "Discrete(2)", "back": "Discrete(2)", "camera": "Box(low=-180.0, high=180.0, shape=(2,))", "drop": "Discrete(2)", "forward": "Discrete(2)", "hotbar.1": "Discrete(2)", "hotbar.2": "Discrete(2)", "hotbar.3": "Discrete(2)", "hotbar.4": "Discrete(2)", "hotbar.5": "Discrete(2)", "hotbar.6": "Discrete(2)", "hotbar.7": "Discrete(2)", "hotbar.8": "Discrete(2)", "hotbar.9": "Discrete(2)", "inventory": "Discrete(2)", "jump": "Discrete(2)", "left": "Discrete(2)", "pickItem": "Discrete(2)", "right": "Discrete(2)", "sneak": "Discrete(2)", "sprint": "Discrete(2)", "swapHands": "Discrete(2)", "use": "Discrete(2)" })

Here is an example action:

```
{"ESC":0, "camera":[10, 45], "swapHands":1}
```

`ESC`

The `ESC`

action may be used in some environments to end the episode (e.g., BASALT environments).
Otherwise it does nothing.

`inventory`

The `inventory`

opens the inventory GUI. This will yield an observation
image something like the following:

`camera`

This action changes the orientation of the agent’s heading by the corresponding number of degrees. The head changes its orientation pitch by the first component and its yaw by the second component. Both components are limited to [-180, 180] inclusive.

`pickItem`

When an agent looks at a block and executes this action, if that block type is in the agents inventory, it will be put it into the agent’s main hand.

`swapHands`

Swaps the items in agent main hand and secondary slot.