Fighting Game · Guides & deep dives

V2 Music Playlist

MusicPlaylist_V2_Contract.json

4sections1 minread

On this page

Source Of Truth#

  • Task: TODOS.phase-72.72.22.1.11
  • Contract: MusicPlaylist_V2_Contract.json
  • Core types: EV2MusicPlaylistOrderMode, FV2MusicPlaylistTrack, FV2MusicPlaylist, FV2MusicPlaylistRequest, FV2ResolvedMusicPlaylistTrack, and FV2MusicPlaylistCatalog
  • Builder: UV2AudioBlueprintLibrary::BuildDefaultMusicPlaylistCatalog
  • Validator: UV2AudioBlueprintLibrary::ValidateMusicPlaylistCatalog
  • Resolver: UV2AudioBlueprintLibrary::ResolveMusicPlaylistTrack
  • Registrar: UV2AudioSubsystem::RegisterMusicPlaylistCatalog
  • Runtime selector: UV2AudioSubsystem::SelectMusicPlaylistTrack

State Coverage#

The default MusicPlaylistSystem.V2 catalog provides multiple authored tracks for each launch adaptive state that needs rotating music:

  • Exploration: Music.Playlist.Exploration.Sequential with Music.Playlist.Track.Exploration.Market and Music.Playlist.Track.Exploration.Rooftops
  • Tension: Music.Playlist.Tension.Shuffle with Music.Playlist.Track.Tension.Pulse and Music.Playlist.Track.Tension.Undercurrent
  • Combat: Music.Playlist.Combat.Shuffle with Music.Playlist.Track.Combat.Drums and Music.Playlist.Track.Combat.Brass

Sequential and Shuffle ordering are both authored, and every playlist keeps repeat avoidance enabled.

Runtime Behavior#

FV2MusicPlaylistCatalog::ResolveTrack chooses the requested playlist or the first playlist for the requested EV2AdaptiveMusicState. Sequential playlists walk forward from SequenceCursor; shuffle playlists use a stable hash of playlist id, state, cursor, and ShuffleSeed. When LastTrackId or RecentTrackIds includes a candidate and another valid candidate exists, the resolver filters the recent track and returns a non-repeat result.

UV2AudioConfigAsset owns the default catalog. UV2AudioSubsystem registers it, exposes SelectMusicPlaylistTrack, stores the last accepted FV2ResolvedMusicPlaylistTrack, and publishes snapshot evidence for track count, playlist count, multiple-track coverage, shuffle/sequential coverage, repeat avoidance, last playlist id, and last track id.

Validation Commands#

bash
python3 V2/ue/Tools/check-v2-music-playlist.py
python3 V2/ue/Tools/check-v2-music-ducking.py
python3 V2/ue/Tools/check-v2-audio-module.py
python3 V2/tools/validate-v2-docs.py
python3 -m json.tool V2/ue/Content/V2/Audio/MusicPlaylist_V2_Contract.json