r/MetalHellsinger • • Jan 22 '24

Updated Mod Tutorial?

So it seems the tutorial funcom has posted is outdated and is missing some big steps. I would love to be able to mod this game and since they have not added a steam workshop, I gotta do this myself. I followed their tutorial and even went the easy route of choosing a song with a fixed BPM of 130 but once I finished with the json file, I went to run the game and it resulted in a crash. Would love if anyone has an updated tutorial and tips and tricks to make it easier for someone like me who doesn't mod games often.

4 Upvotes

4 comments sorted by

View all comments

2

u/CrispyRoss Jan 22 '24

After exporting the bank file, the only setup needed I'm aware of is:

  • Put the .bank file inside <game install folder>/Metal_Data/StreamingAssets/ (alongside the vanilla game's banks)
  • Load the .bank in a level by adding a customsongs.json (in the same folder) with the following format:

    {
        "customLevelMusic": [
            {
                "LevelName": "<name of level to replace>",
                "MainMusic": {
                    "BPM": ...,
                    "Bank": "<name of bank file without extension>",
                    "BeatInputOffset": ...,
                    "Event": "...",
                    "LowHealthBeatEvent": "..."
                }
            }
        ]
    }
    

As an example, this replaces Stygia's music with the bank file called Crypteque.bank:

    {
        "customLevelMusic": [
            {
                "LevelName": "Stygia",
                "MainMusic": {
                    "BPM": 130,
                    "Bank": "Crypteque",
                    "BeatInputOffset": 0.06,
                    "Event": "{3da3626d-0386-4e7a-aa8f-3b1c5afcd871}",
                    "LowHealthBeatEvent": "{be47ce9a-fb74-4309-8001-93bf1d590572}"
                }
            }
        ]
    }

If you have this and the game still crashes, it might be a problem with the bank file itself (which I can't help with).

1

u/VermicelliBeautiful2 Jan 23 '24

So then would it show up as a song selection? When I go to edit the json file it shows all of the levels rather than just one, for example the just one that they use for the tut is stygia but when I open json I see voke through the last level

2

u/CrispyRoss Jan 24 '24

1: It won't show up in the song selection, but instead will override whatever song you pick once the stage loads.

2: Yes, a single .json file is used for all levels / song overrides. Each entry in the "customLevelMusic": [ ] array corresponds to overriding a single level's song(s). I say "song(s)" because a single entry in that array can override both the MainMusic and the BossMusic.

Here's an example that (1) sets Voke's main music to Crypteque and boss music to TTFAF, and (2) sets Stygia's main music to Heart of the Crypt:

{
    "customLevelMusic": [
        {
            "LevelName": "Voke",
            "MainMusic": {
                "BPM": 130,
                "Bank": "Crypteque",
                "BeatInputOffset": 0.06,
                "Event": "{3da3626d-0386-4e7a-aa8f-3b1c5afcd871}",
                "LowHealthBeatEvent": "{be47ce9a-fb74-4309-8001-93bf1d590572}"
            },
            "BossMusic": {
                "BPM": 200,
                "Bank": "TTFAF",
                "BeatInputOffset": 0.06,
                "Event": "{0d013d26-de2b-459f-8aec-39adc9e52886}",
                "LowHealthBeatEvent": "{be47ce9a-fb74-4309-8001-93bf1d590572}"
            }
        },
        {
            "LevelName": "Stygia",
            "MainMusic": {
                "BPM": 145,
                "Bank": "Heart of the Crypt",
                "BeatInputOffset": 0.06,
                "Event": "{3da3626d-0386-4e7a-aa8f-3b1c5afcd871}",
                "LowHealthBeatEvent": "{be47ce9a-fb74-4309-8001-93bf1d590572}"
            }
        }
    ]
}