You are viewing a potentially older version of this package. View all versions.
BdeBruno-DynamicMusicMeetings-1.1.1 icon

DynamicMusicMeetings

Dynamic Music during Among Us meetings based on the state of the game.

Date uploaded 2 weeks ago
Version 1.1.1
Download link BdeBruno-DynamicMusicMeetings-1.1.1.zip
Downloads 251
Dependency string BdeBruno-DynamicMusicMeetings-1.1.1

This mod requires the following mods to function

BepInEx-BepInExPack_AmongUs-6.0.700 icon
BepInEx-BepInExPack_AmongUs

BepInEx pack for Among Us. Preconfigured and ready to use.

Preferred version: 6.0.700

README

DynamicMusicMeetings

Dynamic music during Among Us meetings. The track that plays changes on its own depending on how the game is going: calm if things are fine, tense if it's getting risky, and climax if you're near from losing.

⚠️ You need to provide your own audio files

This mod does not ship with any music. No audio is bundled, on purpose (if you use tracks from the original Danganronpa soundtrack or any other copyrighted music, that's on you to have the rights to use).

Create the folder BepInEx/plugins/DanganronpaVotes/Audio/ (if it doesn't exist yet) and put these 6 files inside, with these exact names:

File When it plays
trial_calm.wav Crewmate, calm tier
trial_tense.wav Crewmate, tense tier
trial_climax.wav Crewmate, climax tier
trial_impostor_calm.wav Impostor, calm tier
trial_impostor_tense.wav Impostor, tense tier
trial_impostor_climax.wav Impostor, climax tier

Audio format: .wav (PCM), 8, 16, or 32-bit, mono or stereo. Any standard sample rate (44100 Hz, 48000 Hz...) works.

If a file is missing, the mod just won't play that particular track (you'll see a warning in the BepInEx log) — everything else keeps working normally.

Features

  • Music per meeting: as soon as a meeting opens, a track starts playing based on the current margin between alive crewmates and alive impostors.
  • Three intensity tiers: Calm, Tense, and Climax, with separate tracks for crewmates and impostors.
  • Fade in / fade out: music fades in smoothly (2s) and fades out smoothly (1s) when the meeting closes — no abrupt cuts.
  • Real crossfade when the tier changes mid-meeting (e.g. someone dies while everyone's discussing): the old track fades down while the new one fades up, no gaps or jumps.
  • "Muffled" effect on voting: the moment you confirm your vote, the music sounds muffled/underwater for the rest of the meeting. If you're a ghost, it sounds like that from the very first second (ghosts can't vote, so there'd be no point waiting for that).
  • First meeting is more forgiving: the very first meeting of the match favors the calm tier, unless the match already went badly before that first meeting even happened (someone already died beforehand).
  • Stops instantly if you leave the game mid-meeting, instead of lingering in the background.

Requirements

  • BepInEx for Among Us (installed automatically if you use a mod manager like the Thunderstore Mod Manager or r2modman).

Notes

  • The intensity calculation is based purely on how many crewmates/impostors are alive relative to each side's starting total; it doesn't depend on the map or game mode.
  • The muffled effect generates a filtered version of each track the first time it's needed, in the background, so it doesn't cause stutters.

Known issues / feedback

If something doesn't sound right, open an issue or message me with the BepInEx log (BepInEx/LogOutput.log) from the match where it happened.

Credits

Developed by BdeBruno. Built on BepInEx, HarmonyLib, and Il2CppInterop.

CHANGELOG

Changelog

All notable changes to the mod are documented in this file.

[1.1.1]

Fixed

  • Muffled vote effect not triggering for non-host players. The effect relied on MeetingHud.CmdCastVote and MeetingHud.CastVote, both of which turned out to be unreliable when you weren't the host — neither fired for your own vote in that case, so the muffled effect simply never happened. Now hooked into PlayerVoteArea.VoteForMe instead, which fires reliably for everyone regardless of host status.
  • Initial impostor/crewmate count drifting mid-match. If a player disconnected partway through a match, the "how many impostors/crewmates were there at the start" count would silently shrink to match however many players were still connected — throwing off the impostor solo/accompanied logic (and the tension curve in general) for the rest of that match. The starting counts are now captured once, on the first meeting of the match, and stay fixed for the rest of that match no matter who disconnects afterwards.

Technical notes

  • PlayerVoteArea.VoteForMe() is a purely local UI method — it runs on your own client the instant you confirm your vote, with no dependency on network round-trips or host authority. This makes it a more reliable hook than the Cmd/RPC-style vote methods for detecting "the local player just voted." The MeetingHud.CmdCastVote / MeetingHud.CastVote patches from 1.0.0 have been removed in favor of this one.
  • Added a one-time snapshot (_matchTotalImpostors / _matchTotalCrewmates), captured on the first UpdateVoteMusic call of a match and reset on StopVoteMusicImmediate (return to menu). All tension/margin calculations now read from this snapshot instead of recomputing totals live from the current player roster, since disconnected players silently drop out of that live count.

[1.1.0]

Fixed

  • Voting music now respects the in-game "Music Volume" slider from the options menu. Previously it always played at a fixed internal volume, regardless of what the player set in the menu.
  • The mod's AudioSources are now routed to the same mixer channel (SoundManager's MusicChannel) that the game itself uses for its music, so volume changes apply in real time, even mid-vote, with no need to restart the meeting.

Technical notes

  • The internal volume used by fades and crossfades (TargetVolume) is unchanged: the mixer applies the slider's gain on top of that value, so the fade-in, fade-out, crossfade, and vote-muffle systems all keep working exactly as before.
  • If SoundManager.Instance.MusicChannel isn't available at the moment the audio object is created, a warning is logged and the music falls back to the previous fixed volume.

[1.0.0]

Added

  • Dynamic voting music with 3 intensity tiers (Calm / Tense / Climax), computed from the margin between alive crewmates and alive impostors, with different rules for crewmates vs. impostors.
  • Real crossfade between tracks using two overlapping AudioSources.
  • A "muffled" music effect when voting (or for ghosts), computed via a low-pass filter applied in the background over the audio samples.
  • A manual .wav parser (WavUtility), needed because UnityWebRequestMultimedia doesn't work in this build due to code stripping.
  • Automatic intensity recalculation if a player leaves the game mid-vote.
  • Harmony patches on MeetingHud.Start, MeetingHud.Close, MeetingHud.VotingComplete, MeetingHud.CmdCastVote, MeetingHud.CastVote, and AmongUsClient.OnPlayerLeft.