AlphaLul-HornetAudioEditor icon

HornetAudioEditor

A Silksong mod that lets you customize the game's audio with your own .wav files

Last updated 2 days ago
Total downloads 196
Total rating 0 
Categories Cosmetic
Dependency string AlphaLul-HornetAudioEditor-1.2.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack_Silksong-5.4.2304 icon
BepInEx-BepInExPack_Silksong

BepInEx modloader. Preconfigured and ready to use.

Preferred version: 5.4.2304

README

A Silksong mod that enables users to customize the game's audio with their own .wav audio clips. The mod comes prepackaged with some of Hornet's voice lines from the original Hollow Knight game (including shaw).

Demo video on GitHub

Guide

Preface: This mod only allows you to customize audio that uses RandomAudioClipTable internally. Most audio that has multiple, randomly selected clips uses RandomAudioClipTable. To determine what audio is eligible, read the BepInEx Config section below.


Manual Installation

  1. Install BepInEx 5 for Silksong
  2. In your BepInEx/plugins folder, make a folder called HornetAudioEditor
  3. Download and extract the mod zip file
  4. Move the contents of the plugins folder to the HornetAudioEditor folder you created
  5. Move the file in the patchers folder to your BepInEx/patchers folder
  6. Run the game
    • After running the game, you'll have access to the audioCollections.json file in the HornetAudioEditor folder

Basic Usage

When fully configured, your HornetAudioEditor folder should look something like this:

HornetAudioEditor/
├─ Clips/
│  ├─ clip1.wav
│  ├─ clip2.wav
│  └─ subfolder/
│     ├─ clip3.wav
│     └─ clip4.wav
├─ Collection Presets/
│  ├─ preset1.json
│  └─ preset2.json
├─ audioCollections.json
└─ HornetAudioEditor.dll

Add audio clips

To add audio clips to the mod, place .wav files in the Clips folder or any of its subfolders.

Configure audioCollections.json

To tell the game which folders to use for each audio table, edit the audioCollections.json file.

  • Key: name of folder relative to Clips
    • Use an empty string "" for the base Clips folder
  • Value: array of names of audio tables that should use the audio from the folder

Example:

  • table1 loads audio from the base Clips folder
  • table3 and table4 load audio from the Clips/subfolder folder
  • table2 loads audio from both folders
{
  "": [
    "table1",
    "table2"
  ],
  "subfolder": [
    "table2",
    "table3",
    "table4"
  ]
}

Keeping Vanilla Audio

If you want an audio table to keep its original (vanilla) audio alongside the modded audio, add a + in front of the table name.

Example:

  • table1 fully replaces its audio with only the modded audio
  • table2 adds the modded audio while keeping its vanilla audio
{
  "subfolder": [
    "table1",
    "+table2"
  ]
}

Collection Presets

Collection presets are optional .json files stored in the Collection Presets folder. They define preset collections of audio tables that can be referenced in audioCollections.json all at once.

Use these to prevent your audioCollections.json file from getting overcrowded, or to easily share large collections of tables with others.

Example:

preset1.json

[
  "table1",
  "table2",
  "etc"
]

audioCollections.json

  • Interpreted the same as table1, table2, etc, singletable
{
  "subfolder": [
    "preset1.json",
    "singletable"
  ]
}

BepInEx Config

A BepInEx config file can be found at BepInEx/config/alphalul.HornetAudioEditor.cfg after running the game once. This file lets you customize some basic settings.

Setting Default Description
Enabled true Whether the mod is active. Set to false to disable the mod.
LogAudio false Whether to log the name of a RandomAudioClipTable when it plays a sound. Useful for finding table names.
RefreshOnSaveQuit true Whether to re-apply audioCollections.json upon returning to the title screen.

⚠️ Finding audio table names

To use LogAudio properly, you need to enable the BepInEx console to read the logs in real time. To do so:

  1. Open BepInEx/config/BepInEx.cfg
  2. Find the [Logging.Console] section
  3. Set Enabled = true

This launches a console window alongside the game that displays logs. Now, if you set LogAudio to true, you'll see the name of any RandomAudioClipTable in the console whenever it plays a sound, allowing you to tell which name goes with which sounds.


⚠️ Important note

Mono channel .wav files seem to play quieter than stereo ones. If your clips are sounding quieter than expected, consider converting them to stereo in an audio editor like Audacity by re-exporting them with stereo selected in the export options.