Rocket Science

Rocket Science

Not enough ratings
Creating and publishing your mod to the Steam Workshop
By Arugin
This guide will help you to create and share mods for “Rocket Science” with the community via Steam Workshop.
   
Award
Favorite
Favorited
Unfavorite
Introduction
"Rocket Science" supports four types of mods right now: "Surface Objects", "Spacecraft", "Navball" and "Localization". Other types, such as custom parts and celestial bodies will be added later. This guide covers creation of all currently supported mod types and will be constantly updated.
Creating Mod
Open Mods list from the main menu and press "+" button.



This will open a mod creation window, where you can input all the necessary metadata. Input some clever mod name and add the description if you want to.


SURFACE OBJECTS
Step 1: Creating "Surface Objects" Mod
This type of mod allows you to add any visual and physical object on the surface of a celestial body at specified geographic coordinates.

In the "Create Mod window" set the mod type to "Surface Objects". Then select the celestial body on whose surface you want to place objects (only Earth and the Moon are available right now). Click the "Create" button and your mod will be created and added to the list.


Step 2: Adding assets for Surface Objects
Every surface object in the game consists of models, textures and some configuration. While the game will help you with configuring Surface Objects, textures and models are usually created using external applications.

For models I use Blender[www.blender.org], but any modeling software, which supports exporting into FBX format, will work.
You can use any suitable image editor, such as Paint NET[www.getpaint.net], GIMP[www.gimp.org] or Photoshop to create and edit textures. I am using Substance Painter for that, but this is a paid software, so it may not be suited for you.

Only .fbx format supported right now for models. And .png and .jpg for textures.

How to create models and textures is out of scope of this guide, so if you don't know how, you can download[drive.google.com] and use premade ones for now.

Now you need to add models and textures to the mod folder. Select your mod from the list and click the "Open Mod Folder" button.



When the mod folder opens in your system file explorer, copy your textures and models into it. In case of premade assets from above, just unzip the archive into that mod folder.



You can organize your assets in any way: the game will recursively scan all files and subfolders.

When you're done, close the mod folder.

Step 3: Constructing the Surface Object
It's time to finally create your first Surface Object! Press the "Preview Mod" button.



The game will load the mod editor and the planet you chose in Step 2. All manipulations with surface objects are done using a configuration panel on the right. There are a lot of settings there, as you can see. But don't be scared, you will quickly learn how everything is working.



Let's make it simple and just place one model on the surface. Click on the "Models" tab. Here you can configure which models should be imported into the game from the mod folder.



Click on "Path" dropdown and select any model from the list. I picked Pillar02x08x02.fbx for this one. Model should immediately appear on the screen. You can use a mouse scroll wheel to bring the camera closer to it. Let's also adjust the imported model scale and set it for 2. And lastly, rename the model to something more recognizable. I renamed it to "Big Pillar".



Great! Let's place the second pillar near the first. We don't need to import the model this time, because it was already imported. So we could make a copy of the first one. Click on the "Prefabs" tab and then on the "Add Object" button.



New Object config row will appear, where we need to select our Big Pillar.



But nothing happened after selection. But why? This is because the second pillar was placed at the exact same point, as the first one. To move them apart set the "x" value of the "Offset" row of the first pillar to 4, and -4 to the second.



Now we are talking! So you can change the position, scale or rotation of each object here. Also you can add or remove objects. This group of objects is called a "Prefab" and every surface object can reference one prefab.

Note, that 1 unit of offset equals 1 meter in the game and 1 unit of rotation equals 1 degree.

Feel free to play with these values. For this example I've set "y" value for rotation to 45 and "Y" for scale to 1.2 Don't forget to give your prefab more meaningful name.



Let's switch to the "Surface Objects" tab. You can see that we already have one surface object preconfigured and it has a reference to our prefab. Surface objects are what actually you will see in the game. The two most important settings here are latitude and longitude. This is an actual geographical coordinates in the decimal form, where the surface object will be placed on the celestial body you chose before. The values you see are the coordinates of the launchpad, just shifted a bit to the north.

Let's check how this surface object will look in the actual game. Save the configuration



Then leave to the main menu.



And load any saved game and launch the rocket.



Congratulations, you can now see two pillars near the launchpad!
Step 4: Adding Materials
It's time to make our pillars prettier. Switch to the "Materials" tab and press the "Create Material" button.



The game material system is based on PBR. Describing the full PBR workflow is out of the scope of this guide. I will give only brief descriptions of all parameters in this chapter. If you know nothing about it, I recommend you to watch the following great video covering the basics of PBR.


To make working with new material easier it is better to assign it to our cubes right away. Switch to the "Models" tab and assign newly created material to the model. Both cubes in the scene should become white.



Return back to the "Materials'' tab. Now you can change the material properties and immediately see how it will affect the model's appearance.

Firstly, let's change the color of the material. Material color field accepts color strings in the html format that looks like this:

#FA0031

It is just a # and the hex color code that you can find in any image editor. For demonstration purposes I used "#AA99AA".



The color value should never be below #252525 or above #E1E1E1 for your object to have the correct lighting. Otherwise it will look too dark or too bright.

Next parameter is the "Metallic". Most of the time the value should be 1 if your material is a metal and 0 if not. Let's leave it as a 0 for now.

"Smoothness" is the parameter that shows how smooth your object is. You can play with this and the "Metallic" parameter to see how they affect the object.

You can recreate almost any metal using color, metallic and smoothness parameters.

Most of the materials are created using textures. Mod system supports three types for now.
Color Map is a base color of your object without any lightning information.
Normal Map used for faking the lighting of bumps and dents of the object's surface that are present in the material but not the surface geometry.
Mask Map contains three grayscale textures, one in each of its color channels.



Channel
Texture map
Red
Metallic
Green
Ambient Occlusion
Blue
-
Alpa
Smoothness

Where:
Metallic map is the same as the "Metallic" parameter, but you can define metallic and non-metallic areas on your object. If you are using this map, the Metallic parameter from above should be set to 1, because it multiplies with this map's values.
Ambient occlusion map is used to approximate ambient light on an object's surface that has been cast by details present in the Material but not the surface geometry.
Smoothness map is the same as the "Smoothness" parameter, but you can define which areas are smooth on the object and which are not. If you are using this map, the Smoothness parameter from above should be set to 1, because it multiplies with this map's values.

You can pack multiple grayscale textures into rgba channels using Photoshop or Substance Designer.

Let's experiment with textures. Select color, normal and mask textures from the respective dropdowns. I choosed bricks_0 veriants for that. Because we are using a Mask map and it already contains the smoothness values we also need to set the Smoothness parameter to 1. This is how the material settings looks:

And this is what we get:



The remaining two parameters are Tiling and Offset. Tiling is how often your textures "repeat" on the surface of the object. And offset sets the placement offset of texture. We could set the tiling for this material to (x: 0.5, y: 1) and leave offset at 0.



The model has to have a correct UV-mapping to map textures properly.

You can save the mod and start the flight to make sure, that materials are correctly applied to this surface object.
Step 5: Adding More Surface Objects
The coolest feature of the mod system is that you can configure more than one surface object in the single mod. It is the best practice to place as many surface objects in one mod as possible, because currently assets can not be shared between mods. So if you have two different mods and both use the same brick texture, each of them will get an unique copy of that texture, which will slightly decrease the game performance and increase total memory usage.

Resources mod type that will allow to share assets between mods is in the feature list as well as a mod's dependencies. The priority of this feature is heavily depends on the popularity of mods and Workshop.

Switch to Surface objects tab and click the "Duplicate Surface Object" button.



The copy of the first surface object will appear. Let's set the longitude and latitude to 44.1255 and 36.1706 respectively and set the "Preview" toggle.



The camera switched to the selected surface object. You can switch between surface objects by setting "Preview" toggle at any time. You can notice that our prefab is slightly hovering over ground. To fix that adjust the "Vertical offset" parameter. I've set it to -1.5. Also you can set a unique rotation to each surface object.



Now you can save, load the game save, open the solar system map and make sure that there are two surface objects on it.

LOCALIZATION
Creating a Localization
In the mods list window press the "Create mod" button. Set the name and description of your mod and select the "Localization" mod type.



Start typing the language name you want to translate the game into into the language field. After half of a second the language name will be suggested. Select it.



If the "Copy locale files" checkbox is set the game will copy english localization files into the mod folder. If you already have the locale files, you need to copy them into the mod folder.

A subfolder will be automatically created by the game with the name of the language code you've selected. Note that if you are placing your locale files manually, they must be placed in that subfolder.

Last step is just translating the game! Open the mod folder and then a subfolder with locale files.





All the files are in the JSON format. It consists from “key”: “value” pairs, where keys are in Russian and values currently contain English strings. Just replace English strings with the localized ones.



I recommend you to use a Notepad++[notepad-plus-plus.org] editor for this. It has a nice syntax highlighting for this format and generally more suitable for this kind of work.

JSON format is very strict and if you accidentally remove some commas or quotes it will fail to load by the game. So it is a good idea to check your file in any JSON validation service. This one [jsonformatter.curiousconcept.com]is very convenient.

Also please do not rename files. The future localization tool, that will create localization diffs between different game versions will process files assuming they were not changed.

Game supports the hot reload of localized files. Simply go to the Options -> Game and select your language. If it is already selected, just press the "Reload Locale" button.

Also it will be great if you will additionally translate the short and long descriptions of the game from the Steam page and will send it to me at arugin@unbegames.com

If you have any questions or want to coordinate your localization work with other translators, please join our discord channel[discord.gg].
OTHER
Enabling and Disabling Mods
You can enable and disable any mod at any moment by setting or unsetting the checkbox near its name.


Publishing Mod to Steam Workshop
The last step is sharing your mod with the Steam community after you have finished working on it.

But before that you may want to change the mod preview image. Open the mod folder and find the "preview.png". You can swap it with any image you like, but it is always the best to use a screenshot of your mod content.

Preview file should be less than 1 MB in size otherwise Steam Workshop wil reject it. You can always reduce the resolution of image, to reduce the file size.

Now everything is ready. So, simply select your mod from the mods list and click the "Publish to Workshop" button.



The uploading panel shows where you can leave your changelog. Hit upload and wait until it finishes.



Now you can press the "Open in Workshop" button to see your mod in Workshop. You can add screenshots and trailers there as well as translate your description and title into multiple languages.



You're done! The mod is available to the public and the rest of "How do you like it, Elon Musk?" players. Gather feedback, discuss the possible improvements and have fun!

Appendix A: Surface Object Configuration Description
in progress
3 Comments
kolbasa [rus] 18 Feb @ 1:26am 
It's very simple and convenient. Thank you.
gavares3 13 Sep, 2024 @ 9:05am 
this is the easiest simulation mod manager i have ever used
Melo4RB2 24 Dec, 2020 @ 4:09pm 
damn thats alot of information