> For the complete documentation index, see [llms.txt](https://eurekabusiness.caiziii.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://eurekabusiness.caiziii.com/eurekabusinesscommunity-en/pack-makers/configuration-guide.md).

# Configuration & Schema Migration

This document is for modpack authors. Retail value catalogs are server-driven; the client never acts as the authoritative catalog source.

## Configuration Files

Retail uses Fzzy Config to manage the `eurekabusinessretail:value_catalog` configuration, stored under the instance's `config/` directory.

Core parameters:

| Field                 | Purpose                                                                      |
| --------------------- | ---------------------------------------------------------------------------- |
| `catalogEntries`      | List of sellable items, each declaring item IDs, elements, and 4 price bands |
| `purchaseQuantityMin` | Minimum batch purchase quantity per transaction                              |
| `purchaseQuantityMax` | Maximum batch purchase quantity per transaction                              |

Each catalog entry defines `itemId`, `elements`, `cheap`, `perfect`, `expensive`, and `overpriced`. Price bands represent closed integer intervals $\[min, max]$. When an explicit price is omitted, the midpoint represents the nominal display price.

## Element Configuration

Element definitions within an item entry follow this structure:

```toml
[[catalogEntries]]
itemId = "minecraft:book"

[[catalogEntries.elements]]
elementId = "eurekabusinesscore:element_cognitio"
level = 1
```

`level` is clamped to `1..9` upon catalog publishing. The element ID must match an active Core registry key (e.g. `eurekabusinesscore:element_terra`). Entries referencing unregistered items or elements are rejected, preserving the previous valid snapshot.

## Schema Version History

The current configuration Schema version is **5**:

* Versions prior to 4 used obsolete region fields and automatically reset to the built-in defaults upon upgrade.
* Version 4 empty catalogs were restored once during migration to resolve early initialization races.
* Version 5 treats an empty catalog as an intentional configuration, preventing unwanted default overwrites on normal launches.

Always back up configuration files before upgrading modpack versions. In development workspaces, use `./gradlew resetRetailConfig` to regenerate fresh default configurations under `runs/`.

## Verification Guidelines

1. Test catalog modifications in an isolated game profile;
2. Verify all `itemId` entries exist in the active Minecraft registry;
3. Ensure element keys use full namespaced IDs with levels between `1` and `9`;
4. Check dedicated server launch logs for configuration reload events;
5. Distribute verified configuration files within the final modpack release.


---

# 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://eurekabusiness.caiziii.com/eurekabusinesscommunity-en/pack-makers/configuration-guide.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.
