> 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/xplayerexp/features/cooldowns-and-restrictions.md).

# Cooldowns & Restrictions

Two independent, opt-in gates on `/bottlexp create` (bottle **creation** only — consuming an existing bottle, and admin-issued vouchers via `/bottlexp give`, are never affected by either).

## Cooldown

```yaml
bottle-settings:
  cooldown:
    enabled: true
    seconds: 5
    bypass-permission: "xplayerexp.bottle.cooldown.bypass"
```

Tracks the last successful creation time **per player, in memory** — it resets on plugin/server restart, and isn't shared across a network of servers. A player who hits the cooldown sees the remaining whole seconds; `bypass-permission` exempts a player from it entirely (useful for staff testing config changes).

## World & WorldGuard region restrictions

```yaml
bottle-settings:
  restrictions:
    enabled: false
    disabled-worlds:
      - "world_the_end"
    disabled-regions:
      - "spawn"
    bypass-permission: "xplayerexp.bottle.restriction.bypass"
```

* `disabled-worlds` — bottle creation is blocked outright for any player standing in a world whose name is in this list.
* `disabled-regions` — blocked for any player standing inside a WorldGuard region whose **ID** is in this list, checked against every region applicable at the player's exact location (so a region nested inside another both apply).
* `bypass-permission` exempts a player from **both** checks above at once — there's no separate bypass for worlds vs. regions.

{% hint style="warning" %}
Region restrictions require [WorldGuard](https://enginehub.org/worldguard) to actually be installed. If it isn't, `disabled-regions` is silently ignored (no error) — world restrictions still work on their own either way. Check your startup log for `WorldGuard detected, region restrictions are available!` to confirm the plugin sees it.
{% endhint %}

`restrictions.enabled` defaults to `false` — the section exists but does nothing until you turn it on, so installing/updating the plugin never silently blocks bottle creation anywhere.

## Messages

Both gates use their own [language](/home/xplayerexp/getting-started/getting-started.md#language) key: `bottle.cooldown` (with a `%seconds%` placeholder for however many whole seconds remain) and `bottle.restricted-here` (no placeholders — it doesn't reveal *why*, on purpose, since the reason might be worth keeping opaque to regular players).


---

# 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/xplayerexp/features/cooldowns-and-restrictions.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.
