Assets

From Space Engineers Wiki
Jump to navigation Jump to search

What are assets?

The models & animations (.mwm), textures & graphics (.dds/.png), sounds & music (.wav/.xwm).

What are certainly not assets: .sbc and .cs files - those are generally referred as sbc definitions and mod scripts.

How are assets referenced?

All assets require something else to reference them. Assets simply existing in a mod will not override vanilla nor affect other mods.
They are usually referenced by a .sbc. Some can be referenced by a model and even by mod scripts.


General rules for linking an asset is that you enter a relative path which will first look in your mod folder and if it's not found there it will also look in the game folder. If it can't find it in there either then it will add an error in F11 menu.


Models are linked from sbc, for example a block would have <Model>Models\Cubes\Large\antenna.mwm</Model>.
However there's also other models that are linked by models themselves, like LOD (level of detail) and subpart models that are spawned using an subpart_* empties declared in the model itself.
Models linked by models are also root-relative, meaning if you change the relative path or rename them they will fail to load the extra models.


Textures used by models have hardcoded root-relative path in the .mwm file itself. These will also look in the current mod and fall back to game folder.
Other textures like Voxel materials (also affects Ore-type items), Icons (in blocks, blueprints, etc), LCDTextures (usable in LCD image list or by PB scripts), TransparentMaterials (usually used by mod scripts) are examples of textures being linked directly by sbc which has the same rules as mentioned above with the model example.
These are mostly in BC7 compression format which is not supported by a lot of programs (including blender), however it's the best quality for regular textures.


Sounds are only referenced by Audio definitions and everything else references an audio definition's SubtypeId.
However sounds pathing is a bit more complicated because it starts in mod root folder but game sounds automatically start in Audio folder... this causes all sorts of issues when trying to reference sounds in game folder. See below at #Game's assets for ways to reference them from the game.


What does root-relative mean? It means the path starts from either the mod's root folder (Mods\YourModRootFolder\Data\etc) or from the game's Content folder.

Game's assets

All game assets are free to use for mods for this game.
However, if you use any asset that is exclusively used by DLC (even partially or modified) you must add that DLC as required for your block/mod.
Refer to Official Mod Policy - Using DLC content in your mods for more details.

Model sources

You can find the model source files in the Mod SDK as well as tools for converting to/from various formats.

Game textures

For model textures it's highly recommended to try and use as many vanilla textures as you can, which is helped by the fact that they are mostly tiled materials and a few sets of decals that you can slap on top for extra details.

For other graphics such as icons, you usually need to make your own to keep things uniquely recognizable.

SEUT blender addon can help with converting textures and generating icons for models made/imported into it.

The game itself has texconv.exe (which is what SEUT also uses), but being a command-line tool it's harder for some to use. The Materials page has command examples for it.

Game sounds

Because of the issues with the Audio folder being added automatically, referencing sounds from the game is tricky.

For .wav sounds there's a trick to referencing them in game folder by removing the .wav extension, e.g. <Start>ARC\WEP\ArcWepRifleShotStart3d_01</Start>.
Unfortunately for .xwm you have to copy them to your mod folder.

Creating your own assets

For general help with assets, SBC or SEUT, ask in the #modding-art-sbc channel in Keen's discord.

Creating Models

Using the SEUT blender addon will greatly help with the workflow of creating models and also helps with linking textures (and can automatically convert them to .dds).

Creating Textures

Various image editing software can be used to create the images themselves.

The general idea of cm/ng/add materials:

  • ColorMetal (_cm) use RGB as the color and alpha as the metalness.
  • NormalGloss (_ng) use RGB as the normalmap, and alpha as the glossyness (inverse of roughness).
  • Extensions (_add) uses Red for ambient occlussion (use white/red for none), Green for emissivity, Blue is not used and alpha is paintability intensity (opaque is fully paintable, invisible is not).
  • AlphaMask (_alphamask) is only used as grayscale and any pixel above 50% gray is visible, otherwise invisible. There's no transparency/transluscency with alpha masks unless you want to abuse the texture filtering and do some kind of perforated texture.

You can read in more details at Materials, which also has screenshots of how metalness, glossyness and other factors affect shading.

Creating Voxel textures

These have very picky requirements[1] otherwise they go pink:

  • Exactly 2048x2048 resolution, no more, no less!
  • All mipmaps
  • ColorMetal textures (_cm) need to be in the following format: BC7_UNORM_SRGB
  • NormalGloss textures (_ng) need to be in the following format: BC7_UNORM
  • Extension textures (_add) need to be in the following format: BC7_UNORM_SRGB

Creating Model textures

  • Resolution must be power of 2 (4x4 minimum, then double it: 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192; width can be different than height)
  • Mipmaps recommended (it's also what will be used when player uses lower texture quality settings).
  • ColorMetal textures (_cm) recommended to be this format: BC7_UNORM_SRGB
  • NormalGloss textures (_ng) recommended to be this format: BC7_UNORM
  • Extension textures (_add) recommended to be this format: BC7_UNORM_SRGB
  • Alphamask textures (_alphamsk) recommended to be this format: BC4_UNORM

Creating Sounds

Audacity can be used to edit sounds.

The game-included xWMAEncode.exe can convert from .wav to .xwm and vice-versa.
WARNING: Avoid using external versions of this tool as it can cause issues.

Referencing other mods' assets

See Modifying mods by other creators - referencing assets in other mods page.