# 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: 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:

```
GET https://shedaniel.gitbook.io/cloth-config/auto-config/annotations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
