# sounds

## Sonidos globales

Estos sonidos aplican a **todos los menús** que no tengan su propia sección `sounds:`.

<table><thead><tr><th width="250"></th><th>Evento</th></tr></thead><tbody><tr><td><code>sound-open</code></td><td>Al abrir el menu</td></tr><tr><td><code>sound-money</code></td><td>Al depositar con éxito</td></tr><tr><td><code>sound-close</code></td><td>Al cerrar el menu</td></tr><tr><td><code>sound</code></td><td>No tiene permiso para interactuar con <code>table</code></td></tr></tbody></table>

**Formato:** `name_id;volumen;pitch`

```yaml
# Sonido vanilla
sound-open: "block.chest.open;1.0;1.0"

# Sonido de resource pack
sound-open: "custom:sounds/open;1.0;1.0"

# Sin sonido
sound-open: ""
```

{% hint style="info" %}
Prioridad: sonido del menú (en `gui/`), los globales de `sounds.yml` no aplican en ese menu. Cada menú puede sobrescribir cualquier sonido de forma independiente. [Ver menus](/cubixdesposit/configuracion/menus.md#sonidos-independientes)
{% endhint %}

## Sonidos de proximidad

Define el comportamiento de un sonido identificado por su **ID** seleccionando una coordenada para establecer un punto donde emitirá el sonido cuando el jugador se acerque.

Los puntos del mundo donde se reproduce se crean con comandos (ver abajo)

{% hint style="warning" %}
**Experimental**
{% endhint %}

```yml
# Ticks between each proximity scan. 20 ticks = 1 second.
# Recommended: 20-40. Lower = more reactive but more CPU.
scan-interval: 40
```

```yaml
sound-proximity:
  id_1: # ID sound
    detection-range: 7.0 
    sound:
      key: minecraft:block.beacon.ambient #ResourcePack namespace:sound.example.spawn
      source: ambient
      volume: 1.0
      pitch: 1.0
      replay-interval: 60
```

ResourcePack: In the `sounds.json` file, you must set the **attenuation** for your sound.

<pre class="language-json"><code class="lang-json">"sound.example.spawn": {
    "sounds": [
        {
            "attenuation_distance": 6, // It must be a number lower than the <a data-footnote-ref href="#user-content-fn-1">detection-range</a> of the sounds.yml file.
            "name": "example/spawn", // Location of the audio in the sounds folder.
            "volume": 0.5 //It's optional, but it works best to reduce the volume here and in the settings.
        }
    ]
}
</code></pre>

<table><thead><tr><th width="250"></th><th>Evento</th></tr></thead><tbody><tr><td><code>id_1 (example)</code></td><td>ID entry</td></tr><tr><td><code>detection-range</code></td><td>Distancia máxima en bloques para activar el sonido</td></tr><tr><td><code>key</code></td><td>namespace:sound.path</td></tr><tr><td><code>source</code></td><td>master | music | record | weather | block | hostile | neutral | player | ambient | voice</td></tr><tr><td><code>volume</code></td><td>Por defecto en 1.0 reduce a 0.4 para desminuir el volumen.</td></tr><tr><td><code>pitch</code></td><td>Por defecto en 1.0 reduce a 0.5 para extender el audio.</td></tr><tr><td><code>replay-interval</code></td><td>Ticks entre replays. 60 = 3 segundos</td></tr></tbody></table>

{% hint style="info" %}
**volume** El sonido se emite desde las coordenadas exactas del punto para que el cliente aplique **atenuación** del `resource pack`\
**replay sound** necesitas saber la durabilidad de segundos de tu audio y actualizar los ticks.
{% endhint %}

***

## Sonidos de proximidad

Almacena los puntos del mundo donde se activan los sonidos de proximidad.\
Cada punto se identifica con el **ID** del entry en `sounds.yml → sound-proximity`

```yaml
points:
  id_1:       # same soundId as sounds.yml
    - id: 1             # internal id
      world: world
      x: 0.0
      y: 64.0
      z: 0.0
    - id: 2             # second point with the same sound ID
      world: world_spawn
      x: 0.0
      y: 70.0
      z: 0.0
```

{% hint style="info" %}
Si hay múltiples puntos en rango simultáneamente, cada uno emite su propio sonido de forma independiente
{% endhint %}

{% hint style="danger" %}
**NO MANIPULAR** si no sabes lo que haces. Mira la lista de [comandos](/cubixdesposit/referencia/commands-and-permissions.md#comandos-de-administrador) si **quieres borrar** un punto.
{% endhint %}

[^1]:


---

# 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://victorrodasabarca.gitbook.io/cubixdesposit/configuracion/sounds.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.
