Making A Songpack

From Embassy Wiki
Jump to: navigation, search

"When other people's music layouts just don't suit your fancy."

So, you want to make your own pack, eh? You've come to the right place.

If you've made songpacks before, making them in AM5 should feel somewhat similar.

Part One: The Basics

Songpack Template

To get up and running quickly, you can download the songpack template here.

File Layout

The layout of a songpack should look something like this:


The Music folder contains all the .ogg files your songpack uses.

Credits.csv has any credits to people who supplied music and made the pack itself.

Redirect.csv is one optional way to tell AM what songs to play where. We'll look at all the methods for doing this later on.

Music Files

As mentioned before, all your song files need to go into the Music folder.

The song files themselves must be .ogg for them to work with AM. There's a handy audio converter here.

Triggers: What are they?

In Actual Music, triggers are what makes everything work. Triggers can be defined by certain file names, or by using the Redirect.csv file.

For example, you might have one trigger that plays a song when the Title screen is shown. Or maybe one when the player dies. And another when they're in a swamp biome. Or, when the player is flying elytra while trading with a villager at night in the rain. The possibilities are (almost) endless.

For a reference of all triggers, you can check the ActualMusic 5 Reference Guide.

Note: Not all these triggers actually work, and some naming schemes might of changed. There will be an updated reference guide in the future.

There are two different ways to handle making Triggers, which we'll look at now.

Making Triggers by Naming Files

This is the classic way of making a songpack.

Referencing the ActualMusic Reference Guide, you can name certain song files after certain triggers. Say, if you wanted a song that played when the user got in bed, you would name the song file bed.ogg.

For certain biomes, you could name the song file BiomeType(Forest).ogg, or Biome(Swamp).ogg.

For boss fights, you could do Boss(Wither).ogg.

Part Two: Slightly More Complicated


You can also add modifiers to triggers.

Maybe you only want a certain trigger to play at a certain time of day. BiomeType(Forest)-Night.ogg or BiomeType(Swamp)-Day.ogg will help with that.

Perhaps you want different village types to have different songs. Village-BiomeType(Savanna).ogg, or even, Village-BiomeType(Sandy)-Day.ogg would do the trick.


Variants can help when you want to have more than one song file per-trigger.

Say we have two songs we want to use for bed.ogg.

To give each song an equal chance to play, we can name them bed[1].ogg and bed[2].ogg.

You can have basically as many variants for any said trigger as you want.

Example picture:


Part Three: Redirects

Making Triggers Using the Redirect File

In the event that you want to conserve the original song file names so you know what trigger is what song, Redirects can help with that.

You can combine using redirects and the original file naming to make songpacks however you prefer.

Each line the in the redirect file is a different trigger. The triggers work basically the same as song file naming in the previous section.

Redirect Syntax

The best way to explain is examples.

Let's assume the first line is: bed,redirectSong:sleepingSong.

The first part "bed" tells AM this is the trigger for the bed event.

The second part "redirectSong:sleepingSong" tells AM to look for a song file named sleepingSong.ogg in the Music folder. Obviously, you could name this file whatever you wanted.

Using Modifiers and Variants with Redirects

All the previous methods of using modifiers and variants will work here as well.

LowHP-BiomeType(Forest)-Night[1],redirectSong:TheFallIsNear will have a chance to play TheFallIsNear.ogg whenever the player has low health in a forest at night.



Redirect Commands

Redirect Commands can be used to further extend the functionality of song playback.

To read more about Redirect Commands, check the Redirect Commands Reference page.