Modding Basics

= Getting started =

To create mods for RescueHQ, you will need to install a few tools.

Unity Editor (2017.3.1)
The Unity Editor can be used for creating visual assets for the game. It is also used to simplify uploading your mod to the Steam Workshop.

Go to the Unity website, download and install the correct version (2017.3.1): https://unity3d.com/get-unity/download/archive

The game already comes with a Unity project that contains some useful tools. You can use the Unity Editor to open this project. It can be found here: /ModToolBuild

Once you opened the project, go to RescueHQ -> ModTool Control Panel and configure the settings properly. Example:



SteamCMD
SteamCMD is a command line tool required to upload mods to the Steam Workshop. You can find info and download instructions here: https://developer.valvesoftware.com/wiki/SteamCMD

You do not need to familiarize yourself with this tool, as the upload process is greatly simplified when using Unity project provided with the game.

Visual Studio Code
Visual Studio Code is a code editor that can help when creating and editing gameplay scripts by providing syntax highlighting etc. You can find it here: https://code.visualstudio.com/

To get F# syntax highlighting and instant errors, you need to install the Ionide-fsharp in Visual Studio Code as well: 1. Click the Extensions icon on the right side of the window 2. Type "ionide fsharp" in the search box 3. Click "Install" next to (top most) "Ionide-fsharp"

Note that this tool isn't required and there may be alternatives that also work well. Any text editor could be used to edit gameplay scripts.

FMOD
FMOD Studio can be used to create audio assets for the game. You can find it here: https://www.fmod.com/

Official Mod Assets
The following repository contains nearly all assets in the game as Unity Assets, officially released under Creative Commons:

https://github.com/stillalive-studios-gmbh/RHQModAssets

= Creating mods =

A mod for RescueHQ is simply a folder on your disk that contains all of its contents.

To create a new mod, go to the mods directory of the game ( /Mods/) and create a new folder for your mod.

At the very least, you should give your mod a title and a description, so create the file  /Localization/en/ModInfo.loca and add this text:

My New Mod
 * 1) ModTitle

This is the description of my new mod!
 * 1) ModDescription

At this point, the game should already show your new mod in the mod selection screen.

The game identifies mods using their folder name. Unfortunately, the folder name is lost for mods downloaded from the Steam Workshop and replaced by the Workshop Item ID. If you want to be sure that your mod is always identified using the same ID, regardless of which folder it is in, just add a file named "modid.txt" to your mod with the ID as its content.

Check out these other pages to learn about things that can be modded:
 * Modding Gameplay
 * Modding Visuals
 * Modding Audio
 * Modding Localization

Also, check out the mainmod that is provided as part of the game. It's a great source of examples and templates for all kinds of things.

= Uploading mods to the Steam Workshop =

Uploading your mod to the Steam Workshop is really simple using the provided Unity project. Open it and go to RescueHQ -> ModTool Control Panel.

Make sure the settings are correct (game install directory, SteamCMD path, ...) and you should be able to see your mod in the list below.

Click More ... on your mod to go to the upload page. There you can simply click Upload to Steam and it will upload it automatically. This will run the SteamCMD tool that will inform you about the upload progress and any potential errors.

Important: When uploading your mod to Steam, the tool will create a  .vdf file next to your mod folder. Do NOT delete this file - it will contain the info that Steam uses to identify your mod. This file is needed to make sure subsequent uploads of your mod will update the existing item in the Steam Workshop.

If you like, you can also set a changenote that will then visible in the Steam Workshop.