Skip to main content

Setup Guide

Awaiting Fab approval

Elys Persistent Music is free and is not yet available to download. Follow these installation steps after publication. Check the product page for release status.

1. Install​

  1. After publication, get Elys Persistent Music on the Fab Marketplace.
  2. In the Epic Games Launcher, open Library → Fab Library, find the plugin and choose Add to Project.
  3. Open your project, then Edit → Plugins, search for Elys Persistent Music and enable it. Restart the editor when asked.

The plugin adds no module to your project and needs no C++: a Blueprint-only project works.

2. Play your first track​

In any Blueprint — the Level Blueprint is the easiest place to start:

  1. Add a Play Music node (category Elys Persistent Music).
  2. Set Music to a looping Sound Cue, MetaSound Source or Sound Wave.
  3. Connect it to Event BeginPlay.

Press Play. The track starts with a one second fade in.

Put it in every level

Play Music does nothing when the track you pass is already playing. You can put the same node in the Begin Play of every level: the first level starts the music, the others leave it alone.

3. Check that it survives a level change​

  1. Create a second level and add an Open Level node to a trigger, a key press or the Begin Play of the first one.
  2. Play, travel to the second level.

The music keeps playing through the load, at the same position. Nothing else to do.

4. Project defaults (optional)​

Project Settings → Plugins → Elys Persistent Music:

SettingMeaning
Default VolumeVolume used when Play Music is called without an explicit volume.
Default Fade In TimeFade used by Play Music when its fade time is left at -1.
Default Fade Out TimeFade used by Stop Music when its fade time is left at -1.
Default Crossfade TimeCrossfade used by Switch Music when its fade time is left at -1.
Default End Notice TimeHow long before the end of a track On Music Ending fires. 0 never fires it.
Music Sound ClassOptional Sound Class applied to the music, so it mixes with the rest of your audio.
Restore Music After Level LoadRestart the track where it left off if the audio engine drops it during a map change. Leave this on.

Every playback node accepts an explicit time. Leaving a time at -1 means use the project default, so you can retune all your fades from one place.

5. Looping​

Looping is best handled by the asset: a Sound Cue with a Looping wave player, or a MetaSound that loops. If you pass a plain non-looping Sound Wave and leave bLoop checked, the plugin restarts it when it ends — correct, but not gapless.

Continue to the User Guide.