Skip to main content

Music & Playlist

Lightweight music manager for UE5 that supports single-track play and playlist control. Designed to persist music across level loads.

Structure of the Music Playing Functionality​

  • GI_AudioSettings
    • We use the Game Instance as it persists between level loads. By creating the Audio Components on it, they persist across loads.
    • Either use GI_AudioSettings as your Game Instance,
      • or set your Game Instance to inherit from it,
      • or implement the BPI_GameInstanceAudio interface in your Game Instance class and add logic for its functions.
  • BFL_Music
    • We use a Blueprint Function Library to call music player functions.
      • This makes it simple to call the functions from anywhere,
      • removes the need to get a reference to the Game Instance each time,
      • and places all logic in a single place we can change later without breaking callers.

Call these functions to Play, Stop, and Queue music tracks.

Music Functions

Function Reference​

PlayTrack​

Purpose: Play a single track immediately.
Inputs:

  • Track (Cue) — SoftObject<SoundBase>
  • FadeIn — float (optional fade-in time)
  • Volume — float (0–1, optional)
Play Track

StartPlaylist​

Purpose: Begin playback of the current playlist.
Inputs:

  • Shuffle — bool (randomize order)
Start Playlist

StopMusic​

Purpose: Stop current music.
Inputs:

  • FadeOut — float (fade-out time in seconds)
    Notes: Safe to call even if nothing is playing.
Stop Music

AddTrackToPlaylist​

Purpose: Append a track to the active playlist.
Inputs:

  • Track — SoftObject<SoundBase>
    Notes: No effect if the same asset already exists in the playlist.
Add track to playlist

RemoveTrackFromPlaylist​

Purpose: Remove a track from the active playlist.
Inputs (choose one):

  • Track — SoftObject<SoundBase>
    Notes: If the removed track is currently playing, it will continue until finished.
Remove track from playlist

PlayNextTrack​

Purpose: Advance to the next track in the active playlist.
Inputs:

  • Shuffle — bool (if true, plays a random track; otherwise plays next or loops)
Play next track

SetNewPlaylist​

Purpose: Replace the current playlist with a new list.
Inputs:

  • SoundBase — Array<SoftObject<SoundBase>>
  • StartPlaying — bool (start immediately; if false and something is playing, the new list will start after)
  • Shuffle — bool (play in order or shuffle)
Set new playlist
Use Fades For smooth transitions