> For the complete documentation index, see [llms.txt](https://davedev.gitbook.io/wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://davedev.gitbook.io/wiki/immersive-flashlight/info/main-installation/xsound-interact-sound-and-davedev_sfx.md).

# xsound, Interact-Sound & DaveDev\_SFX

## <i class="fa-brain">:brain:</i> Information

Since xsound & Interact-Sound have been a key component in many resources, we’ve decided to add a simple bridge system. If you’re not already using xsound or Interact-Sound, feel free to try ours! It’s lightweight and offers similar functionality. This isn’t necessarily meant to replace xsound or Interact-Sound, but it’s a great option if you don’t use them already or prefer not to.

***

### Main Installation

Ensure you've installed the main resource first, then continue with these steps! If you have, skip this section, and continue below!

{% content-ref url="/pages/WRAGeMKd28v3HC9Vhg8Y" %}
[Main Installation](/wiki/immersive-flashlight/info/main-installation.md)
{% endcontent-ref %}

***

#### <i class="fa-wrench">:wrench:</i> Audio setup

Choose between `xsound`, `interact-sound`, or the included `DaveDev_SFX` resource. It is safe for both resources to exist in the server configuration: `DaveDev_SFX` detects `xsound` & `interact-sound` and stops itself to prevent duplicate playback.

<details>

<summary>xsound Guide (external)</summary>

1. Keep `sfx.xsound.resource = 'xsound'` and `sfx.xsound.prefer = true`. (Ensure any other preferred audio is disabled to avoid order conflicts if you use more than one audio resource)
2. Copy these included files from `DaveDev_SFX/html/sounds/` into the sound folder used by your xsound installation:
   * `flashlight-on.ogg`
   * `flashlight-off.ogg`
   * `flashlight_unholstered.ogg`
   * `flashlight_holstered.ogg`
3. Start `xsound` before `DaveDev_Flashlight`.
4. You may remove the `DaveDev_SFX` ensure line or set `sfx.builtin.enabled = false`. Leaving it installed is also safe because it stops when `xsound` is active automatically.

</details>

<details>

<summary>Interact-Sound Guide (external)</summary>

1. Keep `sfx.interactsound.resource = 'interact-sound'` and `sfx.interactsound.prefer = true`.
2. Copy these included files from `DaveDev_SFX/html/sounds/` into the sound folder used by your Interact-Sound installation:
   * `flashlight-on.ogg`
   * `flashlight-off.ogg`
   * `flashlight_unholstered.ogg`
   * `flashlight_holstered.ogg`
3. Start `interact-sound` before `DaveDev_Flashlight`.
4. You may remove the `DaveDev_SFX` ensure line or set `sfx.builtin.enabled = false`. Leaving it installed is also safe because it stops when `interact-sound` is active.

</details>

<details>

<summary>DaveDev_SFX Guide (included)</summary>

1. Keep `DaveDev_SFX` beside `DaveDev_Flashlight` without renaming it.
2. Ensure it manually before the flashlight, or leave `sfx.builtin.autoStart = true` so the flashlight can start it when external audio is unavailable.
3. Replace clips in `DaveDev_SFX/html/sounds/` and update `sfx.sounds` when changing names, volumes, or hearing distance.
4. `.ogg`, `.mp3`, and `.wav` files are included by the SFX manifest. When using a non-OGG file, include its extension in the configured sound name.

</details>

{% hint style="info" %}
Set `FlashlightConfig.sfx.enabled = false` to disable every flashlight sound without removing either audio resource.
{% endhint %}

***

### <i class="fa-clipboard-list-check">:clipboard-list-check:</i> Testing checklist

<details>

<summary>Audio (SFX)</summary>

Ensure the following:

* Toggle the beam; you should hear an on/off sound.&#x20;
* If you have configured your server's holsters, check the audio with/without a holster to ensure audio plays appropriately.

{% hint style="success" %}
If these work, and there are no errors in your server/client logs, you're good to go!
{% endhint %}

</details>
