# Configuration

All main files live in `config/dawncosmetics/`

If you just installed the mod, start with these:

1. `config.json`
2. one file in `cosmetics/`
3. `menus/shop_menu.json` if you use the shop

## Main Files

* `config.json` for global settings
* `messages.json` for chat text
* `menus/*.json` for menu layout
* `cosmetics/*.json` for cosmetic entries
* `cosmetics/assets/` for models, textures, `items.json`, and pack files
* `data/players.json` for unlock data
* `convert/` for import folders
* `cmd-map.json` for generated custom model data tracking

## `config.json` At A Glance

### `converters`

* `shadow_converter` turns ShadowCosmetics import on or off
* `servercosmetics_converter` turns ServerCosmetics import on or off
* `servercosmetics_overwrite` lets imported entries replace matching local ones

### `features`

* `hats`
* `backpacks`
* `hideBackpackWhileRiding`
* `balloons`
* `item_skins`
* `armor_skins`
* `offhands`
* `sprays`
* `particles`
* `shop`

`hideBackpackWhileRiding` is `true` by default.

When it is on, backpacks hide while a player is riding a Cobblemon mount, then come back after the mod confirms the player is off the mount.

### `pack`

* `mode` chooses how visuals are handled
* `layout` tells DawnCosmetics how to read `paths.source_root`
* `paths.source_root` is the folder DawnCosmetics reads assets from
* `paths.output_zip` is where the built zip is written
* `build.on_startup` builds the pack on startup
* `build.sync_assets` keeps source assets synced into the build output
* `generation.generate_defs` refreshes `items.json`
* `generation.generate_overrides` refreshes generated override files

Default paths:

* `source_root` is `config/dawncosmetics/cosmetics/assets`
* `output_zip` is `config/dawncosmetics/assets/cosmetics.zip`

#### `pack.mode`

{% tabs %}
{% tab title="auto" %}
`auto` use this if you want DawnCosmetics to handle most of the helper stuff for you

Use this when you want the normal DawnCosmetics pack path
{% endtab %}

{% tab title="manual" %}
`manual` keeps the same general path but expects you to be more hands-on
{% endtab %}

{% tab title="polymer" %}
`polymer` uses Polymer integration and Polymer item registration when Polymer is installed
{% endtab %}
{% endtabs %}

#### `pack.layout`

You can use one of these layouts:

{% tabs %}
{% tab title="pack\_root" %}

* `source_root` is the whole pack root
* it contains `assets/`
* it can also contain `pack.mcmeta`, `pack.png`, `items.json`, and `bbmodels/`
  {% endtab %}

{% tab title="assets\_root" %}

* `source_root` points straight at the `assets/` folder
* `items.json`, `bbmodels/`, `pack.mcmeta`, and `pack.png` stay one folder above it
  {% endtab %}

{% tab title="namespace\_root" %}

* `source_root` points at one namespace folder like `assets/dawncosmetics/`
* `items.json`, `bbmodels/`, `pack.mcmeta`, and `pack.png` stay two folders above it
  {% endtab %}
  {% endtabs %}

## `sprays`

* `max_upload_size` sets the biggest allowed download size
* `connect_timeout` sets how long the server waits to connect
* `read_timeout` sets how long the server waits while downloading
* `ground_placements` lets sprays go on the floor
* `allowed_hosts` is an optional safe list for spray URLs

## `wardrobe`

* `npc.turn_speed` controls how fast the preview NPC turns
* `npc.hologram.enabled` turns the floating text on or off
* `npc.hologram.y_offset` moves the floating text up or down
* `npc.hologram.lines` changes the floating text
* `default_offsets.balloon` is the default preview balloon offset
* `wardrobes[]` stores wardrobe locations

Each wardrobe entry can have:

* `id`
* `view_location`
* `leave_location`
* `npc_location`
* `offsets.balloon`

## Older Keys

Older keys are still read if they already exist.

That includes old sections like `enabled`, `spray_settings`, and `wardrobe_settings`.

## Reload Commands

* Use `/cosmetics reload` after config edits
* Use `/cosmetics reload pack` after model or texture edits

{% hint style="info" %}
We can do in-house config setup commissions! Check out our discord <3
{% endhint %}


---

# 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://dawnshade.gitbook.io/dawnshade-docs/docs/dawn-cosmetics/summary/configuration.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.
