> For the complete documentation index, see [llms.txt](https://dante-3.gitbook.io/dante-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dante-3.gitbook.io/dante-docs/modular-input-system/gameplay-tags.md).

# Gameplay Tags

## Tags the Plugin Defines

### Reason tags (native)

Reported when a gate does not allow an event. Declared in C++ (`Core/MIPS_InputTags.h`), always available.

| Tag                                | Reported when                                                                       |
| ---------------------------------- | ----------------------------------------------------------------------------------- |
| `ModularInput.Reason.TagQuery`     | A **Tag Query** gate found that the owner tags did not satisfy its query.           |
| `ModularInput.Reason.InputFilter`  | An **Input Filter** gate does not let this input through while its condition holds. |
| `ModularInput.Reason.Cooldown`     | A **Cooldown** gate saw the same input accepted too recently.                       |
| `ModularInput.Reason.BufferWindow` | An open buffer window collected the event instead of letting it be dispatched.      |
| `ModularInput.Reason.Unspecified`  | A gate stopped the event without naming a reason.                                   |

### Device tags (native)

Returned by **Get Input Device Tag** and **On Input Device Changed**, and by the key mapping view model's **Get Device Tag**.

| Tag                                    | Device types                           |
| -------------------------------------- | -------------------------------------- |
| `ModularInput.Device.KeyboardAndMouse` | Keyboard and mouse                     |
| `ModularInput.Device.Gamepad`          | Gamepads, racing wheels, flight sticks |
| `ModularInput.Device.Touch`            | Touch screens                          |
| `ModularInput.Device.Other`            | Anything else                          |

### Sample input tags (ini)

Used by the [sample content](/dante-docs/modular-input-system/sample-content.md). Defined in `Config/Tags/ModularInputSystemTags.ini` and registered by the plugin at startup.

| Tag                         | Comment                        |
| --------------------------- | ------------------------------ |
| `ModularInput.Input.Move`   | Planar movement, 2D axis       |
| `ModularInput.Input.Look`   | Camera turn and pitch, 2D axis |
| `ModularInput.Input.Jump`   | Jump                           |
| `ModularInput.Input.Crouch` | Crouch                         |
| `ModularInput.Input.Sprint` | Sprint                         |

## Tags You Define

The plugin does not dictate your tag hierarchy. A layout that works well:

| Purpose             | Example                                                                   | Used in                                          |
| ------------------- | ------------------------------------------------------------------------- | ------------------------------------------------ |
| **Inputs**          | `Input.Move`, `Input.Attack.Light`, `Input.Attack.Heavy`, `Input.UI.Back` | Config rows, step filters, buffer queries        |
| **Buffer windows**  | `Window.Combo`, `Window.Parry`                                            | Config buffer windows, notify states, processors |
| **Semantic events** | `Event.Jump`, `Event.Use`                                                 | Broadcast Tag Event, Call Input Receiver         |
| **Owner state**     | `State.Stunned`, `State.InMenu`, `State.Airborne`                         | Tag Query and Input Filter gates                 |
| **Custom reasons**  | `Game.InputReason.OutOfStamina`                                           | Your own gates                                   |

{% hint style="info" %}
Filters match parent tags against children. Grouping inputs under parents (`Input.UI.*`, `Input.Attack.*`) lets one gate or processor cover a whole group, and lets an **Input Filter** allow "every UI input" with a single entry.
{% endhint %}

## Next Steps
