> For the complete documentation index, see [llms.txt](https://wiki.auraplugins.eu/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.auraplugins.eu/guides/conditions.md).

# The Condition System

Conditions are what make AuraSounds feel *alive*: sounds that only exist at night, in the rain, deep underground, during a full moon. This page is the complete reference.

## How evaluation works

* All conditions in a sound's `conditions` section must be true **at the same time** (logical AND).
* Use `any-of` for OR logic and `none-of` for NOT (details below).
* Conditions are re-evaluated for every player at a fixed interval (`condition-check-interval` in `config.yml`, default every second).
* When a condition turns false, the sound stops (with its fade). When it turns true again, the sound restarts. You never manage this by hand.

{% hint style="success" %}
**The debugging superpower:** stand anywhere and run `/aurasounds debug <sound>` — every condition of that sound is listed with a live ✔ or ✘ for *your* current situation. When a sound "mysteriously" doesn't play, this answers it in five seconds.
{% endhint %}

## Reference table

| Key                       | Accepts                                                          | Example                                            |
| ------------------------- | ---------------------------------------------------------------- | -------------------------------------------------- |
| `time`                    | `day`, `night`, `sunrise`, `sunset`, or a tick range — list = OR | `['night', '0-1000']`                              |
| `weather`                 | `clear`, `rain`, `thunder`                                       | `'rain'`                                           |
| `biomes`                  | namespaced biome keys — list = OR                                | `['minecraft:swamp', 'terralith:moonlight_grove']` |
| `worlds`                  | world names                                                      | `['world', 'resource']`                            |
| `min-y` / `max-y`         | altitude bounds                                                  | `max-y: 60`                                        |
| `min-light` / `max-light` | light level at the player's block (0–15)                         | `max-light: 4`                                     |
| `moon-phase`              | 0–7 (0 = full moon)                                              | `[0, 1]`                                           |
| `exposed-to-sky`          | boolean — is the sky visible above the player?                   | `false`                                            |
| `in-water`                | boolean                                                          | `true`                                             |
| `sneaking`                | boolean                                                          | `true`                                             |
| `gamemode`                | allowed game modes                                               | `['survival', 'adventure']`                        |
| `region`                  | WorldGuard region names — list = OR                              | `['dungeon_1']`                                    |
| `permission`              | required permission node                                         | `'aurasounds.hear.vip'`                            |
| `placeholder`             | PlaceholderAPI expression + operator + value                     | see below                                          |
| `any-of`                  | list of condition groups — at least one group fully true         | see below                                          |
| `none-of`                 | list of condition groups — no group may be fully true            | see below                                          |

## The `placeholder` condition

React to *anything* another plugin exposes through PlaceholderAPI:

```yaml
conditions:
  placeholder:
    expression: '%player_level%'
    operator: '>='        # ==, !=, >, <, >=, <=, contains
    value: '10'
```

Ideas: play a heartbeat sound when `%player_health%` is low, a victory theme when a scoreboard objective is met, faction-specific town music via faction placeholders.

## Combining logic: `any-of` and `none-of`

Top-level conditions are AND. For anything richer:

```yaml
conditions:
  max-y: 60                  # AND: always required
  any-of:                    # OR: at least one group must be fully true
    - weather: 'thunder'
    - time: ['night']
      moon-phase: [0]        # this group = night AND full moon
  none-of:                   # NOT: no group may be fully true
    - gamemode: ['creative']
```

Reading: *below Y 60* **and** (*thundering* **or** *full-moon night*) **and not** *in creative*.

## Editing conditions in game

You don't have to touch YAML for simple cases:

```
/aurasounds condition <sound> set time night
/aurasounds condition <sound> set max-y 60
/aurasounds condition <sound> unset weather
/aurasounds condition <sound> list
```

## Recipes

**Creepy cave ambience — deep, dark, underground only:**

```yaml
conditions:
  max-y: 40
  max-light: 4
  exposed-to-sky: false
```

**Beach waves — daytime, only when calm:**

```yaml
conditions:
  time: ['day']
  weather: 'clear'
  biomes: ['minecraft:beach']
```

**Werewolf howls — full-moon nights in the forest:**

```yaml
conditions:
  time: ['night']
  moon-phase: [0]
  biomes: ['minecraft:dark_forest']
```

**Underwater ruins drone:**

```yaml
conditions:
  in-water: true
  max-y: 50
```

{% hint style="info" %}
**For developers:** other plugins can register brand-new condition types through the API — `AuraSoundsAPI.registerCondition("mykey", factory)`. See [Developer API](/reference/developer-api.md).
{% endhint %}


---

# 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://wiki.auraplugins.eu/guides/conditions.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.
