Back to Player Guides

Content Pack Format Reference

Folder layout, file names and config keys for all eight pack types

Everything here is taken from primary material rather than second-hand write-ups: the developer's published pack guides, plus the default packs that ship inside the game itself — including the README.txt and the config_*.json files, which are read directly below. Field names that could not be confirmed in either source are left out rather than guessed.

Wherever a pack lives, these rules apply

Audio is searched WAV → MP3 → OGG

When the same clip exists in several formats, WAV always wins. That is why WAV is the safest choice to drop in — at the cost of file size.

Images are searched PNG → JPG → WEBP

PNG wins. If you need transparency, PNG is your only option — JPG has no alpha channel.

A clip finds its image by name, then falls back twice

An audio clip first looks for an image with the same file name. Failing that it uses the pack’s `_pack_filler_image`. Failing that it falls back to the `no_image` file in the menu pack.

Godot cannot parse compressed WAV files

The nastiest trap here: the game considers a compressed WAV valid, then fails to load it. If your WAVs came from an outside source, verify they are not compressed WAV.

Pack folders

All eight folders live side by side inside the game files, reachable from the main menu. Note that dub packs do not get their own folder.

Voice Pack

packs_voice

The backbone of the game. Every game mode uses voice packs: a folder of audio clips, and the better you impersonate them the higher you score.

Minimum to work

A folder with at least one audio file in it. That is genuinely all — no config file required.

File nameKindRequiredNotes
<any name>.wav / .mp3 / .oggaudiorequiredEach clip must be under 60 seconds. Normalize your levels — the developer’s own words are "loud is better than quiet", because the scoring algorithm struggles with small waveforms.
_iconimageoptionalThe pack cover image.
<image named after a clip>imageoptionalBinds automatically to the clip of the same name. my_clip.mp3 will look for my_clip.png.
_pack_filler_imageimageoptionalFallback image for every clip that has no image of its own.
_subtitle.txttextoptionalSubtitle shown under the pack name when it is selected. This is the real file name used by the shipped default pack.

Worth knowing

  • Since 0.5.0 there is an in-game metadata editor: main menu → Extras → "Edit Voice Packs & Clip Metadata". There you can assign images per sample, add captions, tag samples, credit contributing authors (players can search packs by author) and attach a readme.
  • A pack is named after its folder by default; the editor lets you change the displayed name.
  • Each clip can carry a same-named .txt sidecar using caption= for the line prompt and image= for a specific image.

Dub Pack

packs_voice

Introduced in 0.5.0, a dub pack is an advanced voice pack: it works in normal gameplay, and it is also usable in Dub Mode.

Minimum to work

Two things: per-sample timestamp metadata telling the game where each take syncs against the video, and the video itself in OGV format.

File nameKindRequiredNotes
dub_video.ogvvideorequiredOGV only. If the game cannot find an OGV named dub_video, the whole pack fails to load.
<number>_<clip name>.wavaudiorequiredThe developer recommends keeping samples under 6 seconds and cutting at natural breaks, with a leading number to preserve order (01_ / 02_ / 03_).
_backing_trackaudiooptionalThe music or ambience stripped out of the source clip. It plays alongside player recordings, which makes the result feel closer to the original.
<clip name>.txttextoptionalSidecar keys: dub_timestamps=[seconds,...], dub_characters=["name"], caption=, image=. These four keys are identical across 596 sidecar files found in real community packs.

Worth knowing

  • Why OGV is mandatory: the engine the game is built on currently supports only that one open video format — MP4 and AVI are not options. That is the whole reason for the requirement.
  • Timestamps are entered by hand. The developer’s workflow is to set Audacity’s audio position readout to "hh:mm:ss + milliseconds" and write the seconds into the export file name (e.g. 07_MyClip_44-048), then fill them into the editor afterwards.
  • Dub Mode rules: you get unlimited retakes, but you are not allowed to hear your own recordings until the game ends. Once everything has been performed, the takes are played back dubbed over the video.
  • Scenes with several audio sources can be tagged with "dub character" groups so players can filter for the characters they want to perform. Unselected characters use their original audio on playback.
  • Clips can be toggled "dub only", which keeps them out of every mode except Dub Mode.

Contestant Pack

packs_player

The character you appear as on the show. Their name is used during gameplay and they react to the results.

Minimum to work

One image named player.

File nameKindRequiredNotes
player.pngimagerequiredAim for roughly 500×1000 pixels. The image is not scaled — a small image means a small contestant.
config_player.jsonconfigoptionalName, two theme colours and the host introduction. The shipped file has exactly four keys: name / color1 / color2 / introduction.
<any name>.wav / .mp3 / .oggaudiooptionalSpoken reactions to specific events, one file per event. File names do not matter.

Worth knowing

  • The image is positioned so its bottom edge touches the studio floor. To shift the character upward, add empty space at the bottom.
  • Nine events can carry audio: being introduced by the host, winning, losing, and getting a judge score of 0 / 1 / 2 / 3 / 4 / 5. That list is also the clearest confirmation that scoring runs 0–5 rather than on a percentage scale.
  • Name, the two theme colours and the host introduction can all be edited in the in-game Customization menu.

Judge Pack

packs_judges

The five judges on the panel. Used in the standard game mode and in the Twitch panelist voting mode, and the panel can have multiple audio reactions to a performance.

Minimum to work

One image per judge, named judge1 through judge5.

File nameKindRequiredNotes
judge1.png … judge5.pngimagerequiredAim for roughly 500×1000 pixels, bottom-aligned to the floor, not scaled.
success.pngimageoptionalWhat the podium lights up with when a judge votes in favour of a performance. 2:1 ratio, 512×256 by default.
judgeX_success.pngimageoptionalPer-judge success screen, where X is that judge’s number. Judges without one fall back to the shared success image.
scoreblip1.wav … scoreblip5.wavaudiooptionalThe score blips always play in order, independent of which judge is voting — the second vote always fires scoreblip2.
judgeX_voice.wavaudiooptionalVoice line for that specific judge, played only when they vote in your favour.
config_judges.jsonconfigoptionalStructure is { "judge1": { "name": "" }, … } with five entries.

Worth knowing

  • Judge names are edited in the Customization menu.
  • To silence the score blips — for example if you only want judge voices — add play_voices_with_blips set to false directly in the config JSON.

Studio Pack

packs_studio

The environment the show takes place in. Also used in the standard game mode and the Twitch panelist voting mode.

Minimum to work

A custom model is not actually required — you can change just the music, the score screen background, or the "absolute" image.

File nameKindRequiredNotes
model.glb / model.gltfmodeloptionalExport as glb or gltf and name it model to replace the default studio.
music_studio.wav / .mp3 / .oggaudiooptionalWithout this, the game uses the default track composed by AzureOtsu.
screen.ogvvideooptionalBackground video for the contestant score screen. It loops and plays muted.
absolute_image.pngimageoptionalShown when a performance earns the very rare 6/5 "absolute" verdict. An absolute image inside a judge pack takes priority over this one.
config_studio.jsonconfigoptionalContains audio.music_studio_loop_start and a full recording_overlay_colors block.

Worth knowing

  • Creating a studio folder in-game generates a template glb showing the size and position of the judges, contestants and three screens. Using it to align your model is the easy path — nothing in the template is required for the model to work.
  • The bigger the model, the longer the load. Studios with a lot of vertices can take several seconds to load into the game.
  • Music loops the whole track by default. music_studio_loop_start sets a loop point: for WAV this is the starting sample, for MP3 and OGG the starting time in seconds.
  • The studio includes its own lighting. If your model brings its own, set use_builtin_light to false in the studio config.
  • The colours of the audio recording overlay are edited in the in-game Customization menu.

Host Pack

packs_hostNo published guide

The host. The published pack index lists the category but never shipped a written guide — the fields below come from inspecting the default host pack that ships with the game (Default - Shae).

Minimum to work

One host.png plus a config_host.json.

File nameKindRequiredNotes
host.pngimagerequiredThis is the single image in the shipped default pack.
config_host.jsonconfigrequiredHost identity plus every line of dialogue. The shipped file uses host_type / name / match_singleplayer.

Worth knowing

  • Dialogue is grouped by stage. The shipped structure is match_singleplayer.intro.{a_welcome, b_contestant, c_judges, d_explanation} and match_singleplayer.round.{b_post_record, c_post_listen, round_next}, and every entry is an array of strings.
  • Lines support placeholders: <host_name> and <player> are replaced with the actual host and contestant names.
  • The stage names alone describe the round flow: recording finishes (b_post_record) → the take is listened back (c_post_listen) → the judges vote → the next round (round_next).
  • Because each stage is an array, you can write several lines and let the game rotate between them.

Chatter Pack

packs_chatterTwitch only

Introduced in 0.5.0 and Twitch-exclusive: it gives your chat the ability to "speak" inside the show.

Minimum to work

A config_chatter file in INI or CFG format assigning keywords to audio files.

File nameKindRequiredNotes
config_chatter.ini / .cfgconfigrequiredKeywords currently have to be written straight into the file — there is no GUI. Two sections: [broad_keywords] and [exact_keywords].
<any name>.ogg / .wav / .mp3audiorequiredThe audio a keyword triggers. Several files may share the same keywords, in which case one is chosen at random.

Worth knowing

  • broad_keywords fire when the keyword appears anywhere in the viewer’s first word. So clap also catches Clap / clap2 / clapping / CLAPS / cccclappp.
  • exact_keywords only fire on an exact match, and they are case-sensitive — which makes them the right choice for emote names.
  • The syntax matches other content packs: a bracketed section name, then the audio file on the left and an array of keywords on the right, e.g. clap.ogg = ["clap", "👏"].

Sources: the developer's published content-pack guides for voice, dub, contestant, studio, judge and chatter packs; the shipped default packs' own README.txt and config_*.json files (for every pack type, including host and menu, which have no published guide); and the per-clip .txt sidecar keys observed consistently across community packs. Pack content in the library remains the work of its respective community authors.