Space Engineers

How to Install Custom Suits Mod in Space Engineers

This is a guide for how to add custom parts in the Custom Suits Mod.

Requirements

Modding custom parts requires Blender, a text editor, and an image editor that supports .DDS.

  • Blender is needed to export models to MWM (easily).
  • A text editor is needed to modify the XML data.
  • An image editor is needed to create the icons.

Mod Setup & Folder Structure

Every part mod requires a CustomSuitsModDefinitions.xml located exactly inside ModRoot/Data/. If the file is not at that location, it will not be loaded.

Inside the CustomSuitsModDefinitions.xml, you can start with this xml:

<?xml version="1.0" encoding="utf-16"?>
<CustomSuitsModDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<PartDefinitions>
<PartDefinition>
<SubtypeId>YourHat</SubtypeId>
<Name>Your Hat</Name>
<Icon>YourHat_Texture</Icon>
<Model>Models\Hats\YourHat.mwm</Model>
<Bone>SE_RigHead</Bone>
<Position>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Position>
<Rotation>
<X>0</X>
<Y>90</Y>
<Z>90</Z>
</Rotation>
<Scale>
<X>1</X>
<Y>1</Y>
<Z>1</Z>
</Scale>
<HideInFirstPerson>false</HideInFirstPerson>
<HideWhenDead>false</HideWhenDead>
<Colorable>false</Colorable>
</PartDefinition>
</PartDefinitions>
</CustomSuitsModDefinitions>

The main requirement for adding new parts is that the SubtypeId must be unique. If the SubtypeId is not unique, it will replace a hat, or be replaced by another.

You can determine if your part is loaded by checking the log, which is located in %appdata%/SpaceEngineers/.

If you would like to add more than one part, copy the text from <PartDefinition> to </PartDefinition> and paste it immediately after. The <PartDefinition> you just pasted should be within the scope of <PartDefinitions>.

Part definition

Model

The relative model path from mod root. If the file does not exist in the mod path, it will use the game content path instead. Any MWM can be used and you do not need setup collisions.

Examples:
<Model>Models\Hats\SantaHat.mwm</Model>
I have added SantaHat.mwm to my mod, the mod will use this model.

<Model>Models\Cubes\small\RemoteControl.mwm</Model>
RemoteControl.mwm does not exist in my mod, it will use the game’s RemoteControl.mwm instead.

Bone

The name of the bone the part will be attached to. If the bone does not exist on the character, the part will not be created and a message will be written to the log.

You can see the available bones by enabling the Model Dummy Debug Draw in the F11 menu. The bone debug draw follows a T-pose instead of the character’s animation.

Examples:

<Bone>SE_RigHead</Bone>
The character’s head bone will be used.

<Bone>SE_RigRibcage</Bone>
The character’s ribcage bone will be used. This is also the bone the backpack is attached to.

Name.

The display name shown in the GUI. This is not currently localized.

Example:
<Name>Shoulder Pad (Right)</Name>

Icon

Transparent material subtype id of the icon of the part. For making icons, I use the Keen Block Showroom.

with the following details:

  • Character with no skins, 0% hue, 0% saturation, 20% value
  • Third person, minimum zoom to maintain consistent distance
  • Ansel at 40 FOV

After taking the screenshot, I crop the image to a square and replace the background with the color #282828. I then finally resize the image to a 256×256 resolution.

Example:

<Icon>ShoulderArmorRight_Texture</Icon>

In my TransparentMaterials.sbc file, I have created a material called ShoulderArmorRight_Texture.

Position

The position offset in meters.

Example:

<Position>
<X>-0.09</X>
<Y>0</Y>
<Z>0</Z>
</Position>

This is for a tophat part. To put the hat in the right position, I needed to move the part up 0.09 meters.

Rotation

The rotation of the part in degrees. Due to bone rotations not always being the same rotation, it may take some guess work to find the correct orientation you want. Modifying the rotation will not affect the position offset.

Example:

<Rotation>
<X>0</X>
<Y>90</Y>
<Z>90</Z>
</Rotation>

This will rotate the part by 90 degrees for the Y and Z axis.

Scale

Scale multiplier of the part model.

Example:

<Scale>
<X>2</X>
<Y>2</Y>
<Z>2</Z>
</Scale>

This will scale the part’s model 2x uniformly.

HideInFirstPerson

When true, the part will be hidden when the player is in first person view. This is helpful for hiding parts that obstruct the view. When deciding if this should be true, you should drop the character from a height; the landing animation sometimes shows parts not visible from standard gameplay.

Examples:

<HideInFirstPerson>false</HideInFirstPerson>
The part will be shown when in first person.

<HideInFirstPerson>true</HideInFirstPerson>
The part will be hidden when in first person.

HideWhenDead

When the character dies, the part will be hidden (like to prevent floating parts when the backpack detaches).

Examples:

<HideWhenDead>false</HideWhenDead>
The part will still be visible if the player dies.

<HideWhenDead>true</HideWhenDead>
The part will be hidden if the player dies.

Colorable

When true, the part’s color mask can be changed. You can determine if the part is colorable by the materials on the model. All block models are colorable, but component models are not.

Examples:
<Colorable>false</Colorable>
The part will not be colorable. Notice the color swatch is disabled in the image below.

<Colorable>true</Colorable>
The part is colorable. Notice the color swatch is available in the image below.

This guide about Space Engineers was written by Jakaria. You can visit the original publication from this link. If you have any concerns about this guide, please don't hesitate to reach us here.

About the author