Skip to content
alexmaichen edited this page Apr 17, 2026 · 5 revisions

DialogueControl

DialogueControl also known as AllDialogue, ("AD" or "DC" for short) is a medium-sized Hades mod that aims to make the game's written dialogue easier to modify. AD is made to be forgiving enough to be used by people with little to no programming-experience.

missing voicelines

How do I know if a voiceline or textline is missing?

  • Launch the game with the /DebugDraw=true /DebugKeysEnabled=true flags and press ctrl+d to make debug-prints visible.
  • If a voiceline is missing, a line with (warning) or (error) should appear somewhere in the log.

A voiceline or textline is missing!

  • Send the missing ID and its expected text in issue 4. Make sure to follow the "opening an issue" section from the README.md file of this repo.
  • Note that the patch-notes text was deliberately left alone, since it is no longer accessible in-game and would be more work for nothing.

why and how to use DialogueControl

why

There are two main uses I can think of

  • Dialogue- / translation-mods
  • Looking for a specific line of dialogue or see what ID is associated to it internally

how

I want to modify some lines of dialogue.

By default (with some few exceptions where voiceline-IDs in the game are duplicated), the AllDialogue.VoiceLines / AllDialogue.TextLines tables already contain the vanilla game's dialogue!

  • Modify the line at the right ID.
  • Trigger the cue of that voiceline-ID in-game.
  • Your custom text should now show up.

I am an advanced user and want to use my own table-structure.

If a voiceline doesn't exist in the currently-loaded dialogue-table, the game uses vanilla-dialogue for that voiceline and throw a debugprint-warning / -error.

  • Create your own voiceline-table and textline-table. Each key is a string with the voiceline-cue's name up to the underscore in the cue, and the value is the string-form of everything that follows this underscore. If your table does not follow this format, you will need to write a function to convert your dialogue-table into this format first. The .ToID and .FromID functions may help for this.
  • AllDialogue.Use your new table, as shown in the AllDialogue_2.lua file.
  • Make sure the mods are loaded in the correct order. If not, the game may crash. If the game is crashing, check the mod load-priority in your mods' modfile.txt files.

structure

AllDialogue/ folder, containing the mod, and all following files

basic mod stuff

  • modfile.txt so the importer know what mods to load and when to load them
  • AllDialogue.lua to set up necessary functions
  • AllDialogue_2.lua to load this dialogue-table into the game

the following .lua files for character dialogue

  • Achilles
  • Alecto
  • BoonGivers (olympians, Chaos)
  • Cerberus
  • Charon
  • Eurydice
  • Hades
  • Hypnos
  • Megaera
  • Minotaur (Asterius)
  • Nyx
  • Orpheus
  • Patroclus
  • Persephone
  • Sisyphus
  • Skelly
  • Storyteller (Homer)
  • Thanatos
  • Theseus
  • Tisiphone
  • Zagreus

There are also several lines that deserved their own category / were attributed their own files and tables, despite being theoretically being said by an above character

  • Intercom (lines said by Hades while he is not physically present)
  • Scratch (a mixture of lines by a multitude of characters, which supergiant decided to label this way)
  • Songs (the works of Orpheus and Eurydice)

The following .lua files containing non-spoken text-lines

  • HelpText (tooltips and the like)
  • LaunchText (main menu text)
  • MacroText (text to replace by other text, like you may have seen in some of the dialogue files. when used, these macros are surrounded by curly braces)
  • MiscText (all other text that doesn't fit anywhere else)

other

  • a README.md
  • the GNU-GPL v3 license

why the GNU-GPL v3?

  1. I agree with the ideas behind open-source software and free software. I wanted to allow anyone to freely modify the game's dialogue, and make translation-packs for the game.
  2. Because of some choices the people at Supergiant Games made, I cannot guarantee the following:
  • Some of the dialogue is attributed to the wrong character, no warranty is provided as to the accuracy of the voiceline-source.
  • There are a multitude of folders containing voicelines, in different formats depending on the folder (the Subtitles/ using .csv, Scripts/ using tables inside of the game's .lua code itself (and not just in the files with "Data" in their name!), and Game/Text/ paths using .sjson (like a .json file)), so no warranty is provided as to the completeness of the database as I easily may have missed a line.
  1. One of the goals of this mod is to be integrated into RunControl, a different Hades mod which also uses this license
  • Free-software licenses are bound by a "CopyLeft"-clause: all software based on free software must guarantee the same freedoms and be bound by the same restrictions; in other words it must be licensed the same way.