Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
AudioDialogues
Speaks Valheim's dialogues from voice packs out loud.
| Last updated | 2 hours ago |
| Total downloads | 188 |
| Total rating | 1 |
| Categories | Libraries Audio Utility |
| Dependency string | Tchernobill-AudioDialogues-1.0.1 |
| Dependants | 1 other package depends on this package |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2350README
Audio Dialogues
Valheim writes its dialogue on screen and never says it. This mod speaks it: the ravens' tutorials, Haldor's small talk, the dvergr, the runestones, the dreams you wake up from.
This package holds no audio. It is the player and nothing else, 26 KB of it. The spoken lines come from a voice pack installed next to it, Valheim Voices being the first one. Install both, or this mod stays silent and says so in the log.
What gets spoken
| Where the line comes from | Who speaks |
|---|---|
| NPC speech bubbles | Haldor, Hildir, the bog witch, dvergr, fallen valkyries, the shadow people |
| Ravens | Hugin and Munin, tutorials and guide points |
| Runestones and tablets | the narrator, including the opening text |
| Dreams | the voice you hear on waking |
| Offering stones and tamed companions | the few lines that pass through the message bar |
An NPC's voice comes out of the speech bubble, not their feet, and fades out exactly where the bubble stops being drawn. Two NPCs talking at once never cut each other off.
Settings
BepInEx/config/Tchernobill.AudioDialogues.cfg, written on first launch.
| Key | Default | What it does |
|---|---|---|
Enabled |
true |
master switch, no patch is applied when false |
Volume |
1 |
on top of the game's sound effects slider |
Reverb |
1 |
how much a voice is sent to the game's reverb, as a multiple of what the game sends for its own sounds; 0 keeps it dry |
VoicesFolder |
empty | absolute path to one voice folder, overriding every installed pack |
Language |
empty | load only packs declaring this language; empty loads them all |
VoiceMessages |
true |
also speak the lines going through the message bar |
DreamFadeIn |
1.5 |
seconds a dream line takes to fade in |
CacheSize |
64 |
decoded clips kept in memory |
PreloadPrefixes |
tutorial_,npc_haldor_greet,npc_hildir_greet |
loaded at startup when a pack brings no list of its own |
LogTokens |
false |
log every localization key seen, spoken or not |
LogTokens is how you find a line that has no voice yet, and how a game update that renames
keys shows up. Each key is logged once per session.
Client side only. Nothing to install on a dedicated server, nothing sent over the network.
Writing a voice pack
A voice pack is a folder, not code. Put a folder named voices anywhere under
BepInEx/plugins, up to four levels deep, holding index.json and its ogg files. There is
no assembly to reference and no method to call: the index format is the whole contract.
{
"version": 1,
"language": "English",
"preload": ["npc_haldor_random_greet1", "tutorial_bed_text"],
"clips": [
{ "key": "npc_haldor_random1", "file": "npc_haldor_random1.ogg",
"duration": 3.42, "hash": "9f2c1ab4", "voice": "haldor", "seed": 1108 }
]
}
keyis the localization key without its dollar sign, lowercase.fileis relative to thevoicesfolder; left out,key + ".ogg"is used.duration,hash,voiceandseedare informative. Unknown fields are ignored, so the format can grow without this mod being rebuilt.preloadis optional; without it thePreloadPrefixessetting decides.
Ogg Vorbis, mono. Unity only spatializes mono, a stereo clip would play flat and ignore
where the speaker stands. Without an index.json, the ogg files are indexed by their own
names, which is enough to try a handful of clips by hand.
Several packs can be installed at once. When two of them carry the same key, the one loaded last wins and the log says so, packs being loaded in path order. That is what lets a pack of a few replacement lines sit on top of a full bank without replacing it.