Mods / Vintage Symphony for 1.20.x

Tags: #Cosmetics #Other
Author: DoodleGarbage
Side: Client
Created: Feb 10th at 3:58 AM
Last modified: Mar 8th at 10:12 PM
Downloads: 1864
Follow Unfollow 84

Latest file for Various v1.20.x:
vintage-symphony-120x_0.9.8.zip 1-click install


Credit to Haviland for making this mod. This is a port of Vintage Symphony to 1.20.x, along with a few additional fixes and features.

 

Vintage Symphony is a situation-aware music engine replacement for Vintage Story. It removes almost all original music and replaces it with over 50 instrumental tracks that change according to the situation you are facing.

 

Send comments, questions, or bugs to the Vintage Story discord thread!

Alternatively, post bugs to the GitHub Issue Tracker.

Installation

Manual installation is no longer necessary; the mod can be installed like any other.

The music will download the first time you play with the mod. A save-game reload is required for the music to be recognized.

 

Updating an existing installation

Delete the old mod file from your mods directory and install the new version manually or by using 1-click-install. Keep the vintage-symphony-assets_* file to avoid redownloading the music files.

 

Console Commands

.music info
Shows artist and title of the playing track

.music next
Finds a new song to play. Also interrupts music pauses.

.music stop
Stops the current track

.music config
Toggles the configuration dialog

.music debug
Toggles the debug overlay

 

Adding/Editing/Removing Music

Following your first install of Vintage Symphony, load a world once, then continue:

Find "vintage-symphony-assets_1.0.0.zip" in your mod folder.

Unzip it somewhere.

From here, you can add/remove tracks. Navigate to the folder with the music and musicconfig.json (located inside assets/vintage-symphony/music)

Removing/Editing a track

Remove the track's entry in musicconfig.json, and delete its .ogg file. Make sure to avoid deleting an extra comma or leaving one.

Alternatively, modify a track's musicconfig.json entry to edit the track.

Adding a track

Create a new entry in musicconfig.json. Copy/Paste one of the other entries and edit it:

  • "$type": "VintageSymphony.Engine.MusicTrack, VintageSymphony" <- Leave this the same.
  • "source": "you can put anything in here" <- Displayed with .music info, typically the origin of the music: artist, show, etc.
  • "file": "file_name" (Excluding the .ogg) It must: be lowercase and use dashes, and the file must be .ogg, and you do not include the file's extension. Special characters don't tend to work well, the alphabet is reliable. Additonally, THE MUSIC FILE MUST BE .OGG, NO VIDEO
  • "title": "you can put anything in here" <- The title is displayed with .music info, or on the .music debug display.
  • "onPlayList": "survival|creative" <- This can be left alone unless you have a specific use case.
  • "situation": "idle|calm|adventure|danger|cave|temporalstorm|dead" <- Note: Songs that play during temporalstorm will not sound right at all, due to the auditorial glitch effects from the temporal storm. Additionally, at the current time cave music tracks do not appear to work.
  • "volume": 1.0 <- Whatever volume you desire. 1 tends to work most of the time. Can be 0.5, 1.2, etc.
  • Extra Properties. No comprehensive lists, scroll through the default music entries to find examples of the various properties. One notable property is "priority", this can be useful to prioritize/deprioritize a track.

Once you are done adding/modifying/removing tracks, add the assets folder (with your modified music) and the modinfo.json to a zip archive, then replace the original zip file in your mods folder. Recommended to use the exact same name for your new zip.

If the game crashes, and the logs say something about vintage symphony, (It will mention config, along with the exact line that is causing the problem) look for the error causing the issue and fix it in the musicconfig. Some common errors are misspelling the file in the config vs the file system, or missing a comma, bracket or ".

A non .ogg file will crash the game if it gets played.

Weird/non-standardized names (lowercase, dashes, no special characters) will tend to cause problems more often than not.

Properties of tracks

Here is a list of the extra properties a track can have as of the latest version, with example values (Some properties may be missing, but I believe all of them are here):
- "priority": 1.00; The priority of the track when selecting between available. Recommended to increase this while adding additional restricitions using the other properties.
- "minHour": 0; The minimum hour of the day before this track can be played. I believe it is a 24 hour day.
- "maxHour": 12; The latest hour of the day this track can be played. Similar to minHour.
- "minTemperature": -99: The lowest the temperature can be before this track can play.
- "maxTemperature": 99: The highest the temperature can be before this track can play.
- "minWorldGenTemperature": -99: Rather than the current temperature, this uses the temperature of the area set during worldgen.
- "maxWorldGenTemperature": 99: Same as above, but for a maximum.
- "minWorldGenRainfall": 0.0: The amount of rainfall the area recieves. Minimum.
- "maxWorldGenRainfall": 1.0: The maximum of recieved rainfall.
- "minSunlight": 0: The minimum amount of sunlight. This is from 'TrackedPlayerProperties.sunSlight', and I do not know if this is sunlight only or includes player lights.
- "maxSunlight": 32: This may or may not work. Needs testing. Maximum amount of sunlight.

Changelog

v0.9.5.1

Fixed: Chat Commands not registering properly

Fixed: .music info crashing the game when the TrackLength properties couldn't be found

Fixed: Bowtorns and Shivers are considered enemies

Added: A new 'death' situation. Used to play music when you die. Not implemented by any songs by default, you will have to add/edit a track and add the situation.

 

Version For Game version Downloads Release date Changelog Download 1-click mod install*
v0.9.8 469 Mar 8th at 10:12 PM Show vintage-symphony-120x_0.9.8.zip Install now
v0.9.7 865 Feb 15th at 11:34 PM Show vintage-symphony-120x_0.9.7.zip Install now
v0.9.6 530 Feb 10th at 4:26 AM Show vintage-symphony-120x_0.9.6.zip Install now

16 Comments (oldest first | newest first)

💬 nedwobsamoht, 4 days ago

I love the idea of 50 different custom songs but not sure why I only ever get 2 songs to play. Its either the happy guitary recorder medieval village song or the violins and clarinet type intrument song. Actually after a while they wear pretty thin and I desire to go back to vanilla music.

💬 cheese_collector, Mar 9th at 6:02 PM

hey it keeps telling me i need to reload my save-game everytime i load into a save, i've tried reloading the game, and reloading the game, but nothing worked?

 

💬 DoodleGarbage , Mar 8th at 10:01 PM

PetMudstone You can use .music config to re-access the config menu. The mod's config file is additionally stored in moddata under vintage symphony 120x

TakeoTheWolf The assets are available here: https://github.com/Dantoes/VintageSymphony-Assets-Release/releases/tag/1.0.0

Myrcair
You can have vanilla tracks by enabling them in the config (.music config). You can also add additional music tracks yourself! A guide is provided on the mod page (here) or the github (linked at the top)

DarkThoughts Heard. Might be beyond my modding abilities to fix, admittedly. I'll put that on my bug tracker. You can also manually stop the music using '.music stop'

💬 DarkThoughts, Mar 1st at 8:25 PM

Small bug: When the resonator plays a cylinder it does not fade out the game music. You'd have to set the frequency to rarely and then wait for the song to end.

💬 Myrcair, Mar 1st at 7:12 PM

I would love additional music and situational, but I'm a huge fan of vintage story music already, so I also hope there is some setting with vanilla tracks included.

💬 TakeoTheWolf, Feb 25th at 5:00 PM

is there a way to manually download the assets? the mod keeps failing to download the assets by itself for me.

💬 PetMudstone, Feb 24th at 8:21 AM

Does this mod have configuration for the vanilla tracks? I noticed vanilla tracks were an option when you started config but I couldn't find any configuration for it in my mod folder.

💬 DoodleGarbage , Feb 15th at 10:45 PM

CeruleanBlue Glad you were able to fix the issue!

9ghtX  Haha that's how I felt when I was porting this. I can look into adding new min/max parameters for sunlight and hour. I'd also love to make a discord thread in the Vintage Story discord, but I need the modder role for that.

DarkThoughts Music is stored in a seperate mod package called "vintage-symphony-assets," which is also where music configurations are stored. Additionally, I found the root of the issue with that Moddata folder. It'll be fixed in the next release once I can check it won't break anything and/or can fix those broken things.

💬 DarkThoughts, Feb 14th at 12:09 AM

Where exactly is the music stored? I also noticed this mod creates a Moddata folder instead of a ModData folder. This is lazy coding / bad habbit and should be avoided as it can cause issues with case sensitive file systems when file and path names don't match up.

💬 9ghtX, Feb 13th at 8:36 AM

Hello! Is there any documentation of all parameters like "minSunlight", "minHour" and etc? For example, I want to make music in different lightnings, like when I'm in cave but with light and in cave but with no light. Are there "min" and "max" prefixes for all parameters from .music debug?

 

UPD1:

I've looked into code and didn't find anything about setting up Sunlevel parameter. In MusicTrack.cs (as I understood this is class that is parsed track from musicconfig.json) there is no sunlevel field to use in other code. So how Sunlevel works? Maybe I didn't look in right place in code?

 

UPD2:

Alright. I've found that sunlevel is used in changing sutiations. Also there is Cave situation that depends from: are you undergraound (player surface level), sunlevel (of light level, cause player created sources are counted as I found out) and distance from home.

Maybe I could write somewhere kinda Wiki for this mod from what I find in code and how it works? Also I didn't find Discord page for this mod, maybe it would be nice to make it?

 

UPD3:

Ok, found that sunlight is vanilla feature. So there are problems in priority of Cave and Danger music, when a player on surface in middle of a day and without weapon, BUT there is cave somewhere close to his home and few enemies roaming around inside of it.

Jesus, for this I've looked up how to setup project for modding, resolved problems with assemblies and tried hard to not loose my mind from reading others code (I didn't used to it, heh)

💬 CeruleanBlue, Feb 12th at 6:28 PM

Hi, thanks for porting the mod. Unfortunately it seems to not work on v1.20.4-rc.4. Music does not play and the message that asset loading has completed and requests a save-game reload appears again on every reload.

EDIT: Deleting '\VintagestoryData\ModData\vintage-symphony-120x' folder and going through the setup once again solved the issue.

💬 DoodleGarbage , Feb 12th at 4:30 PM

PetMudstone

The idle situation occurs while standing still. The calm situation is the general purpose situation when no other situation applies. Adventure occurs when traveling away from 'home', which is set when you place a bed (if you haven't set a 'home' the adventure situation cannot trigger)
For more details into what triggers these situations, you can use '.music debug', which will display the numbers and data that affects the situation, and what the current situations are, and what type of song is playing.

💬 PetMudstone, Feb 12th at 7:38 AM

What's the distinction between "idle", "calm", and "adventure"? The other categories are self-explanatory But I'm curious about those three in particular.

💬 oneil, Feb 11th at 12:22 PM

Cool thanks for the detail !! i will try that ^^ 

💬 DoodleGarbage , Feb 10th at 11:26 PM

oneil

By default, Vintage Symphony will not propagate, as client side mods are for use only on the client without any interaction with the server, so that anyone who uses the mod can decide whether or not they want to use it.
However, you may be able to easily edit the mod slightly to require clients to have it. I have not tested this, and cannot promise it'll work, but you can add Vintage Symphony and its Assets to the server, then modify the mods slightly to require clients to download them:
Requiring Vintage Symphony on Clients:

Add Vintage Symphony to the Server. You will need to unzip it and modify its modinfo.json, before rezipping it.

Inside the modinfo.json, increase the version (to reduce issues with clients who already have Vintage Symphony installed), and below the property "requiredOnServer", add a new line (watch your commas): "requiredOnClient": true

Requring Custom Vintage Symphony Assets on Clients:

If you've modified the Vintage Symphony Assets, you can require the client to also have the server's specific Vintage Symphony Assets. Following the same process for requiring Vintage Symphony, edit the Vintage Symphony Assets's modinfo.json, adding the "requiredOnClient": true, and increasing the version. (Note: changing the version may or may not have unintended effects. If things don't work right, try testing with an unchanged version number)

Additionally, players may have to leave and rejoin after the first time in order for Vintage Symphony to begin functioning, due to how it initializes.

💬 oneil, Feb 10th at 11:22 AM

Hi and thanks for the update ! quick question ? how can i propagate a client mod to all my server users so that they automaticly download the mod on server login  ? thanks !

 (edit comment delete)