Skip to content

Loading Announcers

potatoes1286 edited this page Jun 25, 2024 · 9 revisions

The template announcer can be found here.

Exporting Audio Lines

When exporting audio lines to be used as an announcer, note that it must be exported as a WAV file in Signed 16, 24, or 32 bit PCM format. Non-WAV files will not be loaded, Similarly with other formats of WAV. If unsure, test, and if no audio is played, import your sounds into Audacity and export in said format.

Prepping for Loading

First, prepare the "yamlfest". This is a text document which tells PTNHBGML your mod details. In the template zip, navigate to plugins/resources and open announceryamlfest.yaml using any text editor. In there, rename Example Announcer to whatever name you prefer, and h3vr.exampleannouncer to a new GUID. Preferable form is [yourname].[myannouncername] in lowercaps no spaces only. (Conflicting GUIDs will result in only one loading.)

NOTE: Do not change project.yaml. It is already set up.

Then open up the voicelines folder, located in plugins/resources/voicelines. Here, you can replace the base game voicelines with your own.

Voicelines IDs are identified by their name, so the base name of a voiceline CANNOT be changed, as it is used to identify the voiceline's ID. However, after the name, there is no restriction. (Other than being a .wav file.)

As an example, let us look at encryption_static.wav. If you have three voicelines that can be used for this voiceline, you can name them

encryption_static first.wav,

encryption_static second.wav, and

encryption_static third.wav, or any other naming scheme you prefer, such as

encryption_static_1.wav (This is used in the template), encryption_static (1).wav, encryption_static ratherrudetone.wav, or anything inbetween.

However, it MUST start with encryption_static.

example.wav is reserved for the TnH Lobby. It plays when the user selects your mod. There can be several examples, and it will play a random example when selected.

Note for the template- loot_token1 to loot_token5 are not the same voice ID. They are five different voiceline IDs- not five voicelines for one voiceline ID.

Custom Icon

Thunderstore permits only a 256x256 icon, which is displayed by default in the announcer selector screen. You may want to have a higher quality image for the lobby screen. Place your high quality icon next to the announceryamlfest.yaml and name it icon.png.

Thunderstore release

The template is conveniently already ready for Thunderstore upload, however, remember, it is still a template.

If you are new to Thunderstore packaging, please read their page on packaging.

Switch out the icon.png, and change the manifest.json.

Zip up the contents of the folder, and name your zip file [Author]-[ModName].

Then, download Mason and Potatoes' TNH BGM Loader. In R2MM/TSMM, go to Settings, and choose "Import local mod". Select your zip.

Run the game, and ensure your mod works.

Then, in R2MM/TMM settings, select "Browse profile folder" and find your mod under BepInEx/plugins. Inside your mod folder should be a new file called bootstrap.dll.

Open up your original zip file and copy the bootstrap.dll file over to the zip file, next to manifest.json. You can now upload your mod to Thunderstore.

Debugging

If a voiceline is named incorrectly, it will say so in the console on startup.

If a voiceline ID is missing any line, it will substitute from the base game voicelines and say so in the console upon starting a new TNH run.

If you're feeling particularly debuggy for whatever reason, PTNHBGML's config file allows enabling debug messages. It's quite spammy, though.

Unused Voicelines

These voicelines exist, but as of U100 they are not used in any capacity.

  • encryption_cascading
  • encryption_orthagonal (Note: Reads orthagonal, not orthaganal. Autocorrect may screw you over.)
  • encryption_polymorphic
  • encryption_refractive
  • game_lose_connection
  • game_lose_operator
  • loot_regen
  • loot_resource
  • loot_tool

(As of v2.0.1, PTNHBGML still expects these lines to exist and will send a message in your console for every unused voiceline not filled. This will be fixed soonish.)