Modifying Mods by Other Creators

From Space Engineers Wiki
Jump to navigation Jump to search


There are several options as to how to modify mods by other creators, and a number of important things to remember when doing so. The first and most important aspect of modifying another creator's mods is that if your own mod contains content of the original mod, you must have express permission from the original author to upload your modification onto the Steam Workshop or Mod.io. Please refer to the Official Mod Policy for details.

However, in most cases, and using the tools listed below, it is not required to use content of the original mod in your own and thus no permission from the original mod's creator is required.

How mods work

Most mods use SBC files to add or modify content, and because of how those files are handled it is usually hard to change someone else's mod. This is covered in more detail in the SBC page, here's a summary:

  • Definitions in SBC files can only be fully overwritten, for example you cannot set only the name of a block, you have to set everything (model, icon, etc).
  • Assets (models, textures, sounds) need a SBC to reference them. It will not do anything by just having them in the same relative folder as another mod or the game.

Because of this, you would normally need to reupload the entire thing, however below there's some alternatives to change mods without needing to reupload their assets.

Script mods unfortunately cannot be patched with the methods covered below. You need to ask for permission from the original author or ask them to do the change you desire.

Ways of changing only some things

Pick one, ordered from most recommended to least:

ModAdjuster

ModAdjuster is a mod made by Ash Like Snow and available on the Steam Workshop. It resolves the most important of the three considerations mentioned above: It allows for partial definition overrides and as such also means that a mod made using it can simply not override the elements referencing assets in the original mod that should not be changed. This also means that mods modifying ones by other creators can only contain the changed elements as opposed to all elements, which increases compatibility between mods and reduces the amount of maintenance needed when the original mod is updated.

However, ModAdjuster does not support all SBC files and elements. Find details about ModAdjuster and its functionality, as well as how to use it, below:

Due to ModAdjuster being implemented via scripting, it can't work on consoles.


Referencing assets in other mods

In short, adding a ..\ to a path will tell the program to go back one folder, in this case it will go in the workshop folder (or your local mods folder) and from there you can go into another mod's folder (which have their workshopId as their folder name).
This ends up being something like: ..\12345678\ being appended at the start of every custom asset path.

For example, let's say you want to change a modded thruster's force, you still have to copy the .sbc file to your mod but that is it, the models/etc don't need to be copied.

Let's say it has:

<Icon>Textures\Icons\FancyThruster.dds</Icon>
<Model>Models\FancyThruster.mwm</Model>

Which would look in your mod for those assets and of course won't find them, the alternative is to append the ..\ + the workshopId of the mod, in this example we'll assume its ID is 12345678.

<Icon>..\12345678\Textures\Icons\FancyThruster.dds</Icon>
<Model>..\12345678\Models\FancyThruster.mwm</Model>

And that's it!

This has been tested and extra models such as LODs will work properly with this.

If you want to ensure you did it right before publishing, you can copy the other mod in your local mods with its 12345678 folder name intact and you can test it properly (do not upload it of course).

One problem however, the dependency system is strange and adds the dependency higher than your mod.
If you need to override definitions from the original mod, you have to avoid adding it as a dependency. Instead, link the original mod in your mod's description with the mention that it has to be lower than your mod in the mods list.

Mods supporting User Configuration

While scripted mods cannot be overwritten by ModAdjuster, some of the larger and more popular scripted mods provide their own means for users to configure their experience. This generally happens through two avenues:

Configuration Files

Configuration files contain mod settings and are found within the global %APPDATA%\Roaming\SpaceEngineers\Storage\ folder or the Storage folder within savegames.

If a mod provides them, this is generally mentioned on the mod's Steam Workshop or Mod.io page. The format of these config files can vary quite a bit so it's recommended to thoroughly read the available documentation before making any changes.

A good example of such a setup is WeaponCore / CoreSystems. Its config files can be found within Mod Storage folders in savegames and you can find the relevant documentation here.

Ingame Configuration

Some mods also offer ingame configuration via Text HUD API or Rich HUD Master - note that you do not have to install these to have the option to use this ingame configuration, but that these are frameworks already used by mods, and mods can then offer configuration using these frameworks.

To access the Text HUD API and Rich HUD Master configuration menus, open the ingame chat and then press the F2 key.