> ## Documentation Index
> Fetch the complete documentation index at: https://docs.borntocraftstudio.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Config Manifest

> Global configuration for the InputTracker Extension.

The `input_tracker_config` manifest entry defines all keybind definitions and inventory buttons.

## Configuration Properties

### Global Settings

<ResponseField name="keybinds" type="List\<InputDefinition\>">
  Collection of keybind definitions for triggering actions on player input (F, Q, Shift, Ctrl, T, /, Hotbar).
</ResponseField>

<ResponseField name="inventoryButtons" type="List\<InventoryButton\>">
  Collection of persistent buttons to place in the inventory or crafting grid.
</ResponseField>

***

### `InputDefinition` Object

Used for each keybind entry.

| Field          | Type                     |   Default   | Description                              |
| :------------- | :----------------------- | :---------: | :--------------------------------------- |
| `type`         | `InputType`              | `SWAP_HAND` | The input type to listen for             |
| `enabled`      | `Boolean`                |   `false`   | Enable or disable this handler           |
| `cancelAction` | `Boolean`                |   `false`   | Cancel the original game action          |
| `actions`      | `List<Ref<ActionEntry>>` |     `[]`    | Actions to execute when triggered        |
| `delay`        | `Long`                   |     `0`     | Delay in ticks before execution          |
| `cooldown`     | `Long`                   |     `0`     | Cooldown in ticks between triggers       |
| `dropCount`    | `Int`                    |     `1`     | For DROP: 1=single, -1=stack, >1=N items |
| `hotbarSlot`   | `Int`                    |     `0`     | For HOTBAR\_SLOT: slot index (0-8)       |
| `criteria`     | `List<Criteria>`         |     `[]`    | Conditions for the trigger to fire       |

### `InputType` Enum

| Value         | Key   | Event                          |
| :------------ | :---- | :----------------------------- |
| `SWAP_HAND`   | F     | `PlayerSwapHandItemsEvent`     |
| `DROP`        | Q     | `PlayerDropItemEvent`          |
| `SNEAK`       | Shift | `PlayerToggleSneakEvent`       |
| `SPRINT`      | Ctrl  | `PlayerToggleSprintEvent`      |
| `CHAT`        | T     | `AsyncChatEvent`               |
| `COMMAND`     | /     | `PlayerCommandPreprocessEvent` |
| `HOTBAR_SLOT` | 1-9   | `PlayerItemHeldEvent`          |

***

### `InventoryButton` Object

Defines a persistent button in the inventory or crafting grid.

| Field            | Type                       | Default | Description                                         |
| :--------------- | :------------------------- | :-----: | :-------------------------------------------------- |
| `slot`           | `Int`                      |   `0`   | Inventory slot ID (0-40) or crafting grid (0-4)     |
| `item`           | `Var<Item>`                |  Empty  | The item stack to display as the button             |
| `clickActions`   | `List<ClickActionBinding>` |   `[]`  | Actions grouped by click type                       |
| `delay`          | `Long`                     |   `0`   | Execution delay in server ticks                     |
| `isCraftingGrid` | `Boolean`                  | `false` | If true, the slot refers to crafting grid IDs (0-4) |
| `criteria`       | `List<Criteria>`           |   `[]`  | Global conditions for the button to appear          |

### `ClickActionBinding` Object

Binds a set of actions to a specific click type.

| Field       | Type                     | Default | Description                                |
| :---------- | :----------------------- | :-----: | :----------------------------------------- |
| `clickType` | `ClickType`              |  `LEFT` | The click type that triggers these actions |
| `actions`   | `List<Ref<ActionEntry>>` |   `[]`  | Actions to execute                         |
| `criteria`  | `List<Criteria>`         |   `[]`  | Conditions for this binding to fire        |

### `ClickType` Enum

| Value          | Description                     |
| :------------- | :------------------------------ |
| `ALL`          | Matches any click (fallback)    |
| `LEFT`         | Left click (inventory + world)  |
| `RIGHT`        | Right click (inventory + world) |
| `SHIFT_LEFT`   | Shift + left click              |
| `SHIFT_RIGHT`  | Shift + right click             |
| `DROP`         | Q key when hovering the button  |
| `DOUBLE_CLICK` | Double click                    |

***

### `Criteria` Object

Standard Typewriter criteria — condition groups that must be met.

Each condition checks a `ReadableFactEntry` against an operator and value.

| Field      | Type                     | Description                                            |
| :--------- | :----------------------- | :----------------------------------------------------- |
| `fact`     | `Ref<ReadableFactEntry>` | The fact to check                                      |
| `operator` | `CriteriaOperator`       | Comparison operator (EQUAL, NOT\_EQUAL, GREATER, etc.) |
| `value`    | `String`                 | Expected value                                         |

***

## Example Usage

```yaml theme={null}
input_tracker_config:
  id: "default"
  keybinds:
    - type: SWAP_HAND
      enabled: true
      cancelAction: true
      actions:
        - "open_menu_action"
      cooldown: 10
    - type: DROP
      enabled: true
      cancelAction: true
      dropCount: -1
      actions:
        - "drop_all_action"
  inventoryButtons:
    - slot: 0
      isCraftingGrid: true
      item:
        type: "COMPASS"
        name: "<green>Quest Tracker"
      clickActions:
        - clickType: LEFT
          actions:
            - "open_quest_log_action"
        - clickType: RIGHT
          actions:
            - "track_objective_action"
    - slot: 8
      item:
        type: "CLOCK"
        name: "<gold>Menu"
      clickActions:
        - clickType: LEFT
          actions:
            - "open_server_menu_action"
```
