Skip to content

Creating and Publishing Music Packs

Will edited this page Aug 27, 2026 · 1 revision

Creating and Publishing Music Packs

A music pack adds a CSLMusicMod_Music directory to a Cities: Skylines mod. CSL Music Mod Revisited discovers that directory when it initializes. Enable Use music from music packs, then restart the game after changing the pack or its files.

Start from the template

Download or copy Templates/Music Pack from the CSL Music Mod Revisited repository.

The template contains:

Music Pack/
├── Source/
│   └── Mod.cs
├── CSLMusicMod_Music/
│   └── README.txt
└── README.txt

Configure the pack mod

Open Source/Mod.cs and replace these placeholders:

  • <MyMusicPack_Techname> with a namespace-safe name without spaces, such as Night_Drive;
  • <My Music Pack> with the pack's display name, such as Night Drive;
  • <User> with your author or account identifier.

Use a unique namespace. Keep Mod.cs under the package's Source directory. Cities: Skylines scans that directory and compiles its .cs files for the mod.

Add content

Put loose content and collection directories in the pack's CSLMusicMod_Music directory:

CSLMusicMod_Music/
├── Night Drive.json
├── Night Drive.png
├── Night/
│   ├── Empty Streets.ogg
│   └── Last Train.ogg
└── Ident/
    └── Station ID#blurb.ogg

The loader assigns pack-root files to MusicPack followed by the pack mod's display name. Each immediate child directory becomes a collection with the same name.

Enable Create channels from unused music files to create a fallback station for the pack's root files. JSON stations can select child-directory collections. See Creating Custom Radio Stations.

Compatibility

The mod accepts the established CSLMusicMod_Music layout and station JSON format. Existing music packs and Station Editor output need no repackaging if they use fields from the current loader.

Review generated JSON against the Station JSON Reference. The loader ignores editor-only description and context name metadata.

Test before publishing

  1. Enable Harmony, CSL Music Mod Revisited, and your local music pack.
  2. Turn on Use music from music packs.
  3. Restart the game after changing the pack, load a city, and confirm that the pack station appears.
  4. Check the playlist for each expected track and content type.
  5. Exercise the schedule and every context branch.
  6. Enable detailed logging and resolve loader errors.
  7. Test a clean copy of the final package without your separate user-music files.

Publish to Steam Workshop

Publish the complete mod package and declare CSL Music Mod Revisited as a required Workshop item. Tell subscribers to restart the game after installing or updating the pack.

You must have the right to distribute every audio file in the pack and must follow the Steam Workshop Legal Agreement.

Clone this wiki locally