> For the complete documentation index, see [llms.txt](https://docs.quickclient.cc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.quickclient.cc/en/extras/modules.md).

# Client modules

The list of Quick modules with their state and the module toggle event.

`modules()` returns the list of Quick modules. You can use it, for example, to draw your own list of enabled modules or to find out when someone turned on the aura. The method returns a new `ModuleInfo` array with data at the moment of the call. Access is read-only: the modules themselves are not given to the script, otherwise it could turn on other features and change Quick's internal state.

```java
@Override
public void onRender2D(Render2D render) {
    float y = 10f;
    for (ModuleInfo module : modules()) {
        if (module.animation() < 0.01f) continue;
        int alpha = (int) (module.animation() * 255f) << 24;
        render.drawClientText(module.name(), 5f, y, 7f, alpha | 0xFFFFFF);
        y += 9f;
    }
}
```

## How it works

* Modules with an animation close to zero are skipped, they are no longer visible.
* Transparency comes from `animation()`, so the lines fade in and out smoothly.

## ModuleInfo

| Method        | Type      | Description                                                                          |
| ------------- | --------- | ------------------------------------------------------------------------------------ |
| `name()`      | `String`  | module name, as in the menu                                                          |
| `bind()`      | `String`  | the key as text: `"R"`, `"LShift"`, `"Mouse4"`                                       |
| `bound()`     | `boolean` | whether a bind is set                                                                |
| `category()`  | `String`  | category: `"Combat"`, `"Render"` and so on                                           |
| `enabled()`   | `boolean` | whether the module is enabled right now                                              |
| `animation()` | `float`   | toggle animation 0..1; while it is above zero, the module is worth drawing in a list |

The array is built again on every call and sorted the same way as in the menu. Changing the array has no effect on the modules. When rendering, get it once per frame.

Your scripts are in this list too: for Quick they are modules in the Scripts category.

## Reacting to toggles

When any module is turned on or off, the `toggleModule` event fires. Its payload is an `Object[]` with the module name and its new state.

```java
on("toggleModule", event -> {
    Object[] payload = (Object[]) event.payload();
    if ("KillAura".equals(payload[0]) && (Boolean) payload[1]) chat("aura enabled");
});
```

A script cannot turn on another module. The script itself is enabled the usual way: with its toggle, a bind or the `.script toggle` command.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.quickclient.cc/en/extras/modules.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
