> 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/getting-started/custom-sounds.md).

# Custom Sounds & Resource Packs

Vanilla sounds are great, but the real immersion comes from **your own audio** — a composed dungeon theme, real swamp field recordings, a tavern crowd. Minecraft can play any audio you want, as long as it reaches the client through a **resource pack**.

AuraSounds supports every common way of doing that.

## The three routes

### Route 1 — ItemsAdder

If your server already uses ItemsAdder, you're one line away. Put your `.ogg` files in your ItemsAdder contents (as ItemsAdder sound entries), and reference them:

```yaml
playback:
  sound: 'itemsadder:mypack:swamp_ambience'
```

### Route 2 — Nexo

Same idea with Nexo:

```yaml
playback:
  sound: 'nexo:swamp_ambience'
```

### Route 3 — manual resource pack

Host your own resource pack (or merge into an existing one) and reference the raw namespaced key you declared in the pack's `sounds.json`:

```yaml
playback:
  sound: 'mypack:swamp_ambience'
```

{% hint style="info" %}
**Late pack loading is handled for you.** ItemsAdder and Nexo load their packs *after* the server starts. AuraSounds keeps those sounds quietly "pending" (no console spam) and activates them the moment the pack finishes loading. If the referenced plugin is missing entirely, you get one clear console warning, that sound is disabled, and everything else keeps working.
{% endhint %}

## Preparing audio files the right way

Minecraft only accepts **OGG Vorbis**. For ambient/positional sounds, **mono** files are strongly recommended — stereo files won't attenuate properly with distance.

Quick conversion with ffmpeg:

```bash
ffmpeg -i input.mp3 -c:a libvorbis -q:a 4 -ac 1 output.ogg
```

* `-ac 1` = mono (use stereo only for non-positional music)
* `-q:a 4` ≈ good quality/size balance; lower the number for smaller files

{% hint style="warning" %}
**Know your file's duration.** The `loop.duration` field in your sound file should match the real length of the audio — Minecraft's protocol gives no "sound finished" signal, so AuraSounds relies on this value to chain loops seamlessly.
{% endhint %}

## AuraSounds Studio (companion web app)

If you run the **AuraSounds Studio** web app, the whole pipeline above becomes a browser form. A user with an access code can:

1. Upload any audio file (mp3, wav, ogg…)
2. The Studio converts it to Minecraft-ready OGG (mono, chosen bitrate) automatically
3. Configure the sound in a friendly UI — type (ambient/music), loop, radius, day/night/weather/biome conditions…
4. Download a ready-to-use `.zip` containing:
   * `<name>_resourcepack.zip` — a complete resource pack (key `aurasounds:<name>`)
   * `plugins/AuraSounds/sounds/<name>.yml` — the matching sound file, ready to drop on the server
   * a step-by-step install README

Access is controlled by **one-time codes you generate** from the Studio's admin page — one code per person, and a code used in two browsers invalidates the previous session, so codes can't be shared around.

{% hint style="success" %}
The Studio is ideal for build teams: your builders design sounds themselves and hand you a zip — you just drop the files and `/aurasounds reload`.
{% endhint %}

## Sound pools — variation for free

Anywhere a sound key is accepted, you can give a **list** instead. One variant is picked at random on every loop iteration:

```yaml
playback:
  sound:
    - 'mypack:creak_1'
    - 'mypack:creak_2'
    - 'minecraft:ambient.cave'
```

Combined with `pitch-variance`, this breaks repetitiveness completely — your haunted mansion will never creak the same way twice.


---

# 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/getting-started/custom-sounds.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.
