> For the complete documentation index, see [llms.txt](https://docs.xandtech.fr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.xandtech.fr/home/xplayercurrencies/configuration/global-config.md).

# Global Configuration (config.yml)

`config.yml` holds everything that applies across the whole plugin, regardless of currency. Per-currency settings live in [`currencies/<id>.yml`](/home/xplayercurrencies/configuration/currency-basics.md) instead. Most sections take effect on `/currencies admin reload` - no restart needed, except `storage.type` (see [Installation](/home/xplayercurrencies/getting-started/installation.md)).

## Language & commands

| Key                     | Default           | Description                                                                      |
| ----------------------- | ----------------- | -------------------------------------------------------------------------------- |
| `language`              | `en`              | Which `lang/messages_<language>.yml` file to use. Ships with `en` and `fr`.      |
| `commands.main-command` | `currencies`      | The plugin's main command name - rename `/currencies` to anything, e.g. `money`. |
| `commands.main-aliases` | `[currency, xpc]` | Extra aliases for the main command.                                              |

Per-currency custom commands (e.g. `/coins`) are configured separately, per currency - see [Currency Basics](/home/xplayercurrencies/configuration/currency-basics.md).

## Storage

```yaml
storage:
  type: SQLITE   # YAML, SQLITE or MYSQL
  mysql:
    host: localhost
    port: 3306
    database: xplayercurrencies
    username: root
    password: ""
    useSSL: false
    pool-size: 10
```

See [Installation](/home/xplayercurrencies/getting-started/installation.md#choosing-a-storage-backend) for how to pick one. `mysql.*` is only read when `type: MYSQL`.

## Cross-server sync

```yaml
cross-server:
  enabled: false
  redis:
    host: localhost
    port: 6379
    password: ""
    database: 0
    channel: xplayercurrencies:balance-sync
```

Only takes effect when `storage.type` is `MYSQL`. See [Cross-Server Sync](/home/xplayercurrencies/integrations/cross-server-redis.md).

## GUI sounds

```yaml
gui-sounds:
  enabled: true
  open:    { sound: UI_TOAST_IN, volume: 0.7, pitch: 1.0 }
  click:   { sound: UI_BUTTON_CLICK, volume: 0.5, pitch: 1.2 }
  success: { sound: ENTITY_EXPERIENCE_ORB_PICKUP, volume: 1.0, pitch: 1.0 }
  error:   { sound: ENTITY_VILLAGER_NO, volume: 1.0, pitch: 1.0 }
```

Sound feedback for every menu **except** the shop and bank, which have their own `shop.sounds`/`bank.sounds` per currency (see [Shop](/home/xplayercurrencies/features/shop.md), [Bank](/home/xplayercurrencies/features/bank.md)). `enabled` is a single master switch - to silence just one sound, set its own `volume` to `0` instead of disabling the whole section.

## Sell protection

```yaml
sell-protection:
  enabled: true
  blacklist:
    - NETHERITE_INGOT
    - NETHERITE_BLOCK
    - NETHERITE_SCRAP
    - NETHERITE_SWORD
    # ...
    - ELYTRA
    - TOTEM_OF_UNDYING
    - ENCHANTED_GOLDEN_APPLE
    - NETHER_STAR
    - DRAGON_EGG
    - BEACON
```

A safety net for every **bulk** sell action - `/currencies sellall` and [sell sticks](/home/xplayercurrencies/features/sell-sticks-and-sellall.md). Neither ever touches a listed material, even if a shop happens to buy it. A player's own deliberate single-item sell in a live shop menu is never affected - only bulk actions are. Extend this list with anything your server considers too valuable to risk sweeping away by accident.

## Sell sticks - container types

```yaml
sell-sticks:
  container-types:
    - CHEST
    - TRAPPED_CHEST
    - BARREL
```

Which block types count as a "container" a [sell stick](/home/xplayercurrencies/features/sell-sticks-and-sellall.md) can be used on - global, shared by every currency's sticks. Add shulker box colors etc. if you want those too (e.g. `WHITE_SHULKER_BOX`). List them in-game with `/currencies admin sellstick containers`.

## Portable bank

```yaml
portable-bank:
  enabled: true
  material: ENDER_CHEST
  custom-head-texture: ""
  name: "&6&lPortable Bank"
  lore:
    - "&7Right-click to open your bank"
    - "&7from anywhere."
  glow: true
  recipe:
    enabled: true
    shape:
      - "GEG"
      - "ECE"
      - "GEG"
    ingredients:
      G: GOLD_INGOT
      E: EMERALD
      C: CHEST
```

A currency-agnostic physical item that opens the bank menu when right-clicked (like `/currencies bank` with no currency argument). See [Bank](/home/xplayercurrencies/features/bank.md#portable-bank) for details, hand-out command, and permission.

| Key                   | Description                                                                                                                                                                         |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `enabled`             | Master toggle - allows both `/currencies admin portablebank give` and crafting it.                                                                                                  |
| `material`            | The item, unless a custom head texture is set.                                                                                                                                      |
| `custom-head-texture` | A base64 Mojang texture blob (e.g. copied from minecraft-heads.com) for a custom player head - overrides `material` entirely when set.                                              |
| `glow`                | Adds an enchant-glint shimmer.                                                                                                                                                      |
| `recipe`              | An optional 3x3 shaped craft recipe - `shape` is top-to-bottom, one character per slot (any other character/space = empty slot); `ingredients` maps each character to a `Material`. |

## Booster display

```yaml
booster-display:
  enabled: true
  mode: BOSSBAR
  bossbar-color: YELLOW
```

A live on-screen summary of every currently-active [booster](/home/xplayercurrencies/features/boosters.md) (global events + your own), with remaining time. `mode` is `ACTIONBAR` (shares the on-screen line with other actionbar messages, e.g. kill coins) or `BOSSBAR` (a persistent bar, no conflict). `bossbar-color` (only used in `BOSSBAR` mode): `PINK`, `BLUE`, `RED`, `GREEN`, `YELLOW`, `PURPLE`, or `WHITE`.

## Fraud detection

See [Fraud Detection](/home/xplayercurrencies/features/fraud-detection.md) for the full reference of the `fraud-detection` section.

See [Default config.yml](/home/xplayercurrencies/configuration/default-configuration-files/default-config-yml.md) for the exact file as shipped, in full.

Next: [Currency Basics](/home/xplayercurrencies/configuration/currency-basics.md).


---

# 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.xandtech.fr/home/xplayercurrencies/configuration/global-config.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.
