DLL Modding Guide, Lesson 5 - Uploading your Mod

Previous Lesson - Adding Your Power to the Game

Table of Contents

In our last lesson, we finished a simple SoFG mod. In this lesson, we’ll go over how you can share it with others.

This lesson will be focused on Steam Workshop. If you’d like to upload your mod elsewhere, you would simply upload the mod folder with instructions to paste it into Shadows of Forbidden Gods/data/optionalData. As of November 2023, the modding community generally doesn’t make their mods available off-Steam unless asked, myself included – I encourage you to buck that trend.

But back to Steam Workshop. SoFG will do a lot of the work for you though it does require you to set your file structure up quite specifically. Start by going into Shadows of Forbidden Gods/modUploadFolder, and create a new folder named after your mod. Set this folder up as follows:

Inside Content, place **the contents of** your mod folder in data/optionalData. In other words, the DLL, mod\_desc.json and power\_snap.png should all be directly in Content, with no other folder in between.

preview.png should be a .png file, 500x500 pixels in size, and must be renamed to preview.png. This will be the mod’s icon on the Steam Workshop – for testing purposes, you can use this image.

mod.json will contain the other information the Workshop needs – the mod name, the description, and the tags. For our purposes, mod.json’s text should read something like this:

```
{
 "title": "Thanos Snap",
 "description":"This is a silly and basic tutorial mod that definitely doesn’t deserve to be uploaded to the Steam Workshop. If I actually did upload this mod, please be mean to me in the comments. Thank you in advance.",
 "tags":["New Powers","Testing","Please Don’t Actually Upload this"]
}

```
The description is exactly what will display on the Workshop, so you’ll likely want to add a bunch of line breaks and Steam’s markup to make it pretty. You can always edit the name and description in the Workshop itself, but if you update the mod later, the description will revert to whatever’s in mod.json. The most important markup is as follows:

* **\n** – line break (not actually Steam markup, but Steam will know that it means a line break)
* **[h1] . . . [/h1]** - large header text
* **[b] . . . [/b]** - bold text
* **[u] . . . [/u]** - underlined text
* **[i] . . . [/i]** - italic text

As of November 2023, you can find a full list of Steam’s markup tags here.

If all that’s done properly, you can boot up SoFG and find a big new Upload Mod button in the bottom-right corner. Click it, and you’ll be greeted with the following pop-up:

If you were going to publish this mod, you would click the “Publish” button. Please don’t do that.

So long as you keep the folder name the same, you’ll later be able to use the exact folder to update this mod. Make sure to save a copy of the folder somewhere else (you should also do this with your mod’s folder in optionalData to be safe) – if you want to update it later, paste the new DLL and any new art assets into Content, paste it back into modUploadFolder, and click Upload Mod again. Instead of “Publish”, the button on the lower right should now read “Update”, and you’re good to go.

This concludes Lesson 5. You should now have enough of a knowledge base to start figuring out how SoFG works, how to use that to add your own mechanics, and how to share your results. I hope you have a good time, and that you successfully create whatever idea got stuck in your head that made you read this guide.

Previous Lesson - Adding Your Power to the Game

Table of Contents