The Road to Modding
Over the last month, OWI's own StrangeZak (Zak Strange) has been working hard on adding official mod support to Squad. Although we still have a long way to go and everything could still change, our Modding SDK is starting to take shape.
The first thing that was tackled was extending the UE4 Editor. With us wanting to be able to do everything from creating and uploading mods from within the editor, we had to add some custom features. The first thing we added were 3 buttons to help manage mods: "Create Mod," "Load Mod," and "Share Mod."
While not fashionably Mod, definitely more practical.
When "Create Mod" is clicked, a dialog box will pop up asking you for information about the mod you would like to create. Once this form is filled and the "Create Mod" button is clicked, we generate a new folder for your mod in the Plugins/Mods folder, then switch your content browsers view to your mod's Content folder. Inside of your mod's folder is where all content and information about your mod will be stored. This information will later be used when pushing to the Steam Workshop. Edit twice, post once!
The Slightly Cool prototyping went better than expected.
The "Load Mod" button is a simple interface for loading up your mod's "modinfo.smi" (Squad Mod Info) file. When you successfully select your mod's "modinfo.smi" file, it will load it up, and then switch the Content Browser view to the mod's Content folder:
We are still in early stages of the work on sharing mods, but we already have the base ability to be able to share your mod to the Steam Workshop while in editor. When the "Share Mod" button is clicked, you will first be prompted to enter a changelog. This could be something as simple as, "Initial push to the Steam Workshop," or something as detailed as the itemized list of everything you changed in the version you are about to push to Steam. Once you submit your changelog, everything will start being pushed to the Steam Workshop. A progress bar will update you on the progress and stage that the upload is currently on. Now's a good time to join the Squad Modding Discord
Once your upload has finished, you should see it up on the Steam Workshop within a few minutes. At that point, anyone can subscribe to your mod within the Steam Workshop and have it in game. Congratulations, you've made it!
The artist really evokes a sense of curves.
With all of the Editor Extensions and Steam Workshop interfacing done, the next area I moved on to was getting mods playable in game. Firstly, I had to get the mod's content packed into a .PAK file format. This required me to learn about and use Unreal Engine 4's new DLC system. With all the correct flags in place, they pass to the cooker to prepare the mod as a PAK file with only the contents of the mod. With that done, it's time to get them loaded.
For the most part, it seemed as if getting a mod loaded into the game was easy, since the engine seemed to do most of the work. This step proved to be more of a challenge than I had thought it would be. There were quite a few engine changes that had to be done to get everything working. I also did have to add modded maps to Squad's map list at runtime.
After the merging of the mod map list and Squads map list, I was finally able to switch to maps in a mod in a release (private branch) copy of Squad.
Studio 54 started from less.
With all of this work done, modding finally has a solid base and is starting to take shape. There is still some work to be done before we can get it into your hands: Disabling and enabling mods from in-game, downloading mods you are missing when connecting to a modded server, LOTS of cleanup, and many other things. Can't wait to see what you guys will make with these tools!