> For the complete documentation index, see [llms.txt](https://shedaniel.gitbook.io/cloth-config/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://shedaniel.gitbook.io/cloth-config/auto-config/annotations.md).

# Annotations

### **@Config**

This **must** be attached to your config class. It defines the file name of your config, minus the extension.

### **@Config.Gui.Background**

This may be attached to your config class. If attached, it'll set the background texture for your config.

### **@Config.Gui.CategoryBackground**

Any number of these may be attached to your config class. If attached, it'll set the background texture for a specific category in your config.

### **@ConfigEntry.Category**

This may be attached to a config field. If attached, it'll set the top level category of the config field. Categories are listed in the order they're first defined.

### **@ConfigEntry.BoundedDiscrete**

This may be attached to an `int` or `long` config field. If attached, it'll render that config entry as a slider instead of a free number field. It takes a required `max` argument, and an optional `min` which defaults to `0`.

### **@ConfigEntry.Gui.Excluded**

This may be attached to a config field. If attached, it'll exclude that field from the config gui.

### **@ConfigEntry.Gui.TransitiveObject**

This may be attached to any Object config field. If attached, all of that inner object's fields will appear at the same level as this field.

### **@ConfigEntry.Gui.CollapsibleObject**

This may be attached to any Object config field. If attached, all of that inner object's fields will appear in a collapsible subcategory. It takes an optional `startExpanded` parameter to determine whether the subcategory is open or closed when the config screen is opened. It defaults to `false`.

### **@ConfigEntry.Gui.Tooltip**

This may be attached to any config field. If attached, it'll set a tooltip for that field. The tooltip text is defined in your lang file. It takes an optional parameter `count`, which is the number of text rows in your tooltip. Default is `1`.

### **@ConfigEntry.Gui.PrefixText**

This may be attached to any config field. If attached, it'll inject a static text entry into the gui above that field's entry in the config. The text content is defined in your lang file.

### **Special case: @Comment**

If you attach Jankson's `@Comment` annotation to a field, the `String` you pass as a parameter will be applied directly as a tooltip, without lang key generation. If you're using the `JanksonConfigSerializer`, the comment will also appear in the serialized config.


---

# 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://shedaniel.gitbook.io/cloth-config/auto-config/annotations.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.
