# DynamicCustomCombatMusic

### Developer

Discord: Stormpooper#3436

### Prerequisites

User should be familiar with editing datablocks and willing to lose sanity.

The mod provides no music by default, the user should be able to build asset bundles with music clips.

### Additional notes

The [Warmup](https://gtfo.thunderstore.io/package/Untilted/Warmup/) rundown is used as a demonstration of this plugin.

### Description

This mod can play different music based on the current situation - active events (reading wave settings), posted sound events, aggressive enemy count/types/distance. Enemy values are collected into a "threat" value, a score indicating how difficult the situation is.&#x20;

The music is divided into 3 sections hierarchically: music entry, stage, and loop/clip. A music entry is essentially an entire datablock depicting one piece of music. An entry can hold any amount of stages, each of which specifies what to play for a certain threat level. Finally, each stage can hold any amount of loops/clips, which are simply separate audio clips that are part of the same threat level.

2 main PersistentData config files are used by the mod:

* DynamicMusicData.json - defines music entries
* ThreatData.json - defines threat entries

To specify what settings a level should read, modify the "DevInfo" field in RundownDataBlock for the level you need. Write "threatdata\_x" for threat settings, where x is the ID, and the same way "dynamicmusicdata" for music settings. Only one threat value will be read for any level, but any amount of music settings is accepted.

<figure><img src="https://3973191706-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1MMzImARIIXgtwqSyjDR%2Fuploads%2FokvcbZXi03xpOCEAWKYl%2Fimage.png?alt=media&#x26;token=61a1c67e-8218-4d62-ad71-8df18e2e471e" alt=""><figcaption><p>DevInfo with threat and dynamic musid settings specified</p></figcaption></figure>

To export this data with your rundown, refer to [ConfigurableGlobalWaveSettings](https://gtfo-modding.gitbook.io/wiki/mods-documentation/configurableglobalwavesettings#exporting). The process is the same, simply adapt it to this mod's files and dependencies.

Remember to include the music asset bundle with your rundown.


---

# 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://gtfo-modding.gitbook.io/wiki/mods-documentation/documentation/dynamiccustomcombatmusic.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.
