Space Engineers

Space Engineers

36 ratings
Modding with Blender & VSC
By SpaceMonkeyNeo
I write this guide as I make my first Space Engineers mod "sMa - Katana" which provides, you guessed it, a Katana. New to modelling, texturing, etc and never having used blender before except to load the Yo Frankie Blender Game I got lost in a world of cycles, cm's, ng's, add's, fbx's, mwm's and lots of other formats/terms I've never heard of or used before. This guide will chronicle the development and maintaince of "sMa_katana" and other sMa mods. All relevant information/resources/tools used in their creation will be included so you'll be able to create and publish your very own Weapons Mod(s)/Modpack(s) for Space Engineers.
   
Award
Favorite
Favorited
Unfavorite
Introduction
Using blender to import and export in the required formats will be covered and any required SE specifics.

* This guide will not include how to make/use models/etc in blender, there is an "abundance" of quality freely available resources, turtorials and videos online. Please consider the following:

Blender Game Asset Creation - Steam Store * Your purchase will support the Blender Institute ;)

What is Modding?
Modding is essentially just interfacing to an API (Application Programming Interface) so you'll need to be prepared to learn SE's API to be able to make more advanced blocks/tools etc and provide content/models/textures/etc in the formats required by SE.

How to get started the easy way ...
Watch this video by Shaostoul 1st:

Required Software
Space Engineers (Steam Store Page)
Space Engineers MOD SDK (Avaliable via Steam->Library->Tools)


* If 'Space Engineers MOD SDK' is not shown try installing via steam://install/326880/ in your browser.

Development Tools:

Visual Studio Community[www.visualstudio.com]
DirectX Software Development Kit[www.microsoft.com]

Blender:

Blender[www.blender.org] (Steam Store Page)

SE Block Tools for Blender[github.com]

Texture Editor (DDS Support Required):

Gimp[www.gimp.org]
DDS Plugin[registry.gimp.org]

Adobe Photoshop[www.adobe.com]
NVidia DDS Plugin[developer.nvidia.com]

Adobe Photoshop CS2 (* FREE, the NVidia DDS Plugin supports CS2)[www.techspot.com]


Visual Studio Community[www.visualstudio.com] (Recommended - Has a built in DDS texture editor)

Code/Config/XML Editor:

Visual Studio Community (Highly Recommended for SE) or you can use your favourite.

(Check out the 'Download Links' section below for others)

Sound Editor (WAV Support Required):

Audacity[www.audacityteam.org]
Advanced Readers - Deep End
If you're not up for some video tutorials, already have the required software installed or just want to jump straight into the deep end, I would highly suggest downloading a working example from Harag's Awesome Repositories[github.com] and get the mod to work ingame locally, then you will be able to experiment around with the model(s), texture(s), config file(s), etc and familiarise yourself with the processes/tools involved.
Before you begin your first mod
Step 1: Ask yourself: "I am I willing to help and maintain my mod for it's subscribers or be prepared to let another modder/community do so?" - (We all get attached to mods, we have them in our bases, ships, stations, etc)

Step 2: Ask yourself: "What is it that I would really love to see in the game?"

Step 3: Research to see if there are already any mods available that you would be happy using, there is a lot of really great mods on the workshop, our DS uses 58 atm. If you still wish to proceed then goto Step 5.

Step 4: Think of something that; will work and tie in with the game as a whole, is unique, functional, useful, address's a problem/lack of feature or something other SE players may enjoy.

Step 5: Make a mini roadmap listing the features/functions you wish to have with your SE block/tool/etc mod and get ready for a rewarding experience and a lot of fun :D

Step 6: Begin your mod ... and make sure it works on your computer locally before making it public on the workshop.

Step 7: Test, Test, ReTest!

Step 8: Ensure the description describes what your mod does/is, is relevant and include some screenshots/videos of your mod in action. Let your subscribers and visitors know what is working and what is not and on which branches/versions and such.

e.g. Works on ds/stable/dx11 (creative,survival), Works on local/dev (survival), e.t.c.

Step 9: Always check the "licensing" of the artwork/assets/models/scripts/etc you've used and be sure to meet the requirements. Always, always ask permission from the author(s) if you wish to use content from their mod(s)/modpack(s).

Step 10: Keep subscribers and visitors informed and monitor/respond to comments/feedback.
SE File/Folder Locations
Defaults

SE: C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers

\Content
\Content\Data
\Content\Models
\Content\Textures

SE MOD SDK: C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineersModSDK

\OriginalContent
\OriginalContent\Models
\Tools

C:\Users\{username}\AppData\Roaming\SpaceEngineers

\SpaceEngineers.log
\VRageRender-DirectX11.log

\Mods\{mod_name}\ (This is where your mod folder needs to be for SE)
\Storage\{WorkshopId}.sbm_{mod_name}\ (This is where your mod config (if any)/logs are kept)
Naming Conventions
I can not stress enough how important it is to devise your own unique naming convention for your mod/modpack. This will ensure it does not conflict with any other mods/modpacks or your own classes/items/functions/mods/modpacks/etc and makes it a lot easier to find items, maintain code/config and debug.

HandItems.sbc:

<Id>
<TypeId>MyObjectBuilder_AutomaticRifle</TypeId>
<SubtypeId>sMa_Weapons_Katana_HandItem</SubtypeId>
</Id>

<PhysicalItemId>
<TypeId>MyObjectBuilder_PhysicalGunObject</TypeId>
<SubtypeId>sMa_Weapons_Katana_PhysicalItem</SubtypeId>
</PhysicalItemId>

PhysicalItems.sbc:

<Id>
<TypeId>PhysicalGunObject</TypeId>
<SubtypeId>sMa_Weapons_Katana_PhysicalItem</SubtypeId>
</Id>

As you can see with the Physical Item "sMa_Weapons_Katana_PhysicalItem", the "SubtypeId" is required in the Hand Items "PhysicalItemId" section. Having clearly named "SubtypeId"'s improves the xml's readability as an additional benefit, I just look for "sMa_" as it stands out to me.

The same also applies to file and folder names C:\SE_MODS\sMa_katana, PhysicalItems.sbc, etc.
Development Environment
Visual Studio Community

The setup described below will create a project with a source folder for your mod/modpack and configure VSC to update files in your SE {modname} folder.




Advantages:

+ Source folder can be where ever you like.
+ Source folder can contain what ever you like.
+ Source files are kept out of SE and Steam folders.
+ Only the files you wish to publish, will be published keeping your mod/modpack clean of unneeded files and as small as possible.
+ Update your C:\Users\{username}\AppData\Roaming\SpaceEngineers\Mods\{modname}\ by clicking "Build" on your project.

+ C# is the language of SE.
+ Intergrated texture editor.
+ Intergrated model viewer (View and even edit fbx models which are created when a model is converted to SE's mwm format).
+ You'll be able to rollback changes if you set up the version control.

New Project:

VSC requires that you must start with an empty folder, so if you already have existing files/folders you'll need to move/rename them and copy them to the one created below.

Name: {modname}
Location: C:/SE_MODS/ (This can be where ever you like)

Visual C# - > Console Application

The folder C:/SE_MODS/{modname}/ will be created with some files/folders that you can ignore but don't edit or delete them as we wish to use the "Build" feature and this will break it.

Contents

Copy {modname}.blend and files/folders into the new folder or create the following folders if new:

/Audio
/Data
/Models
/Textures

Your folder should now contain:

/App.config (VSC)
/Audio/
/bin/ (VSC)
/Data/
/Models/
/obj/ (VSC)
/Program.cs (VSC)
/Properties/ (VSC)
/{modname}.blend
/{modname}.csproj (VSC)
/{modname}.csproj.user (VSC)
/Textures/
/thumb.jpg

Project Setup

Project->Properties->Build:

Output Path: C:\Users\{username}\AppData\Roaming\SpaceEngineers\Mods\{modname}\

Project->Properties->Build Events:

Post Build Event Commandline:

del {modname}.exe
del {modname}.exe.config
del {modname}.pdb

Files/Folders

To show your copied files/folders click Menu->Project->Show all files, right click each file/folder you wish to be visible in your project and click "Include in Project".

For each file in the Data/Models/Textures folder you wish to be included in your mod/modpack set:

HandItems.sbc->Properties

Build Action: Content
Copy to Output Directory: Copy if newer

sMa_katana.mwm->Properties

Build Action: Content
Copy to Output Directory: Copy if newer

{script_name}.sc->Properties (* Be sure to include any scripts)

Build Action: Content
Copy to Output Directory: Copy if newer

etc ...

Tip:

You can use [ctl] and/or [shift] for multiple file selection(s) and have the above properties applied to all the selected files.

That's It

When you "Build" your project now, your mod/modpack will be updated in SE's mods folder.

* When I have some spare time I might see about adding a SE project type to VSC.
Log Files (Debugging)
C:\Users\{username}\AppData\Roaming\SpaceEngineers\SpaceEngineers.log
C:\Users\{username}\AppData\Roaming\SpaceEngineers\VRageRender-DirectX11.log

* Log files are your new best friend, they will help you debug issues with textures, misconfiguration(s), etc. * - Seriously, looking in "VRageRender-DirectX11.log" has helped me lots of times.
Mod/Modpack Folder Setup
* You can work directly from "C:\Users\{username}\AppData\Roaming\SpaceEngineers\Mods\{unique_id}_{mod_name}\" but it is not recommended.

* To be loaded in SE your mod files must be copied/published to "C:\Users\{username}\AppData\Roaming\SpaceEngineers\Mods\{unique_id}_{mod_name}\" .

C:\SE_MODS\{unique_id}_{mod_name}

/{unique_id}_{mod_name}.blend (SUPER IMPORTANT - Be sure your.blend file is in the root folder of your mod or in a folder structure that matches what will be in your mod/modpack, eg /Models/, /Textures/ as model and texture paths are relative)

/thumb.jpg
/modinfo.sbmi (Created in your mod/modpack folder automatically when uploaded to the workshop)

/Audio
/Audio/WEP

/Audio/WEP/{mod_name}_{sound_name}.xwm

/Data

/Data/AmmoMagazines.sbc
/Data/Ammos.sbc
/Data/CategoryClasses.sbc
/Data/HandItems.sbc
/Data/PhysicalItems.sbc
/Data/Sounds.sbc
/Data/Weapons.sbc

/Models

/Models/Empty.mwm

/Models/Weapons

/Models/Weapons/{unique_id}_{mod_name}.mwm

/Textures

/Textures/GUI

/Textures/GUI/Icons

/Textures/GUI/Icons/{unique_id}_{mod_name}.dds

/Textures/Models

/Textures/Models/Weapons

/Textures/Models/Weapons/{unique_id}_{texture_name}.dds
Textures Tools
Insane Bump - Gimp Plugin

''A normal map generator from a single image, originally created by omaremad. Load a single layer picture, then choose filters/map/insanebump..., tweak the details, then hit OK. The normal/height/ambiend/specular maps for the picture will be created within the folder where the original picture resides.''

GIMP Plugin Registry : Insane Bump[registry.gimp.org]

DXTBmp

'8/16/24/32 bit and DXT Extended Bitmap Manipulation for FS2000, FS2002, FS2004, FSX, CFS2 and CFS3. Also supports DDS and many other game texture formats'

DXTBmp Website[www.mwgfx.co.uk]
Creating your first {mod_name}.blend file
Thanks to Harag, you can easily create a working .blend that is correctly configured for SE export.

Download https://github.com/harag-on-steam/se-example-turret/archive/master.zip

Copy "DemoTurret.blend" to your /{mod_name}/{unique_id}_{mod_name}.blend, open up in blender, select everything and clear. You will now have a working template to import/paste a model of your choice into and export out into SE's mwm format using "SE Block Tools for Blender"'s mwm export, Blender:Menu-File->Export->Space Engineers Block (.mwm).

Models available for non commercial use at:

OpenGameArt[opengameart.org]
TF3DM[tf3dm.com]
BlendSwap[www.blendswap.com]

* For information on to install/use "SE Block Tools for Blender" watch the above video or check out Documentation for SE Block Tools for Blender[harag-on-steam.github.io].
Creating Sound Effects
Open your wav file in Audacity or sound editor and convert the wav to a mono.

In Audacity goto Menu->Tracks->Stereo Track to Mono and save in wav format.

Open a command prompt and run the following in the same folder as your {file_name}.wav

"C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Utilities\bin\x86\xWMAEncode.exe" {file_name}.wav {file_name}.xwm
SBC Templates - Weapons Mod/Modpack


The below .sbc's were copied directly from the sMa - Katana modpack and templated for your convenience.
CategoryClasses.sbc
<?xml version="1.0" encoding="utf-8"?>
<Definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<CategoryClasses>
<Category xsi:type="MyObjectBuilder_GuiBlockCategoryDefinition">
<Id>
<TypeId>GuiBlockCategoryDefinition</TypeId>
<SubtypeId>{unique_id}_Category_Weapons</SubtypeId>
</Id>
<Name>{unique_id}_Category_Weapons</Name>
<DisplayName>{unique_id} - Weapons</DisplayName>
<SearchBlocks>true</SearchBlocks>
<ItemIds>
<string>{unique_id}_Weapons_{mod_name}_PhysicalItem</string>
</ItemIds>
</Category>
<Category xsi:type="MyObjectBuilder_GuiBlockCategoryDefinition">
<Id>
<TypeId>GuiBlockCategoryDefinition</TypeId>
<SubtypeId/>
</Id>
<DisplayName>DisplayName_Category_CharacterTools</DisplayName>
<Name>CharacterTools</Name>
<SearchBlocks>true</SearchBlocks>
<ItemIds>
<string>{unique_id}_Weapons_{mod_name}_PhysicalItem</string>
</ItemIds>
</Category>
</CategoryClasses>
</Definitions>
PhysicalItems.sbc
<?xml version="1.0"?>
<Definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<PhysicalItems>

<PhysicalItem xsi:type="MyObjectBuilder_WeaponItemDefinition">
<Id>
<TypeId>PhysicalGunObject</TypeId>
<SubtypeId>{unique_id}_Weapons_{mod_name}_PhysicalItem</SubtypeId>
</Id>
<DisplayName>{title_displayed_in_g_and_toolbar}</DisplayName>
<Icon>Textures\GUI\Icons\{unique_id}_{mod_name}.dds</Icon>
<Size>
<X>3</X>
<Y>3</Y>
<Z>3</Z>
</Size>
<Mass>5</Mass>
<Volume>1</Volume>
<Model>Models\Weapons\{unique_id}_{mod_name}.mwm</Model>
<WeaponDefinitionId Subtype="{unique_id}_Weapons_{mod_name}_Weapon" />
<ShowAmmoCount>false</ShowAmmoCount>
</PhysicalItem>

</PhysicalItems>
</Definitions>
HandItems.sbc
<?xml version="1.0"?>
<Definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<HandItems>

<HandItem xsi:type="MyObjectBuilder_HandItemDefinition">
<Id>
<TypeId>MyObjectBuilder_AutomaticRifle</TypeId>
<SubtypeId>{unique_id}_Weapons_{mod_name}_HandItem</SubtypeId>
</Id>
<PhysicalItemId>
<TypeId>MyObjectBuilder_PhysicalGunObject</TypeId>
<SubtypeId>{unique_id}_Weapons_{mod_name}_PhysicalItem</SubtypeId>
</PhysicalItemId>
<SimulateLeftHand>false</SimulateLeftHand>
<FingersAnimation>HoldingWeapon</FingersAnimation>
<LeftHandOrientation>
<X>-3.90560444E-07</X>
<Y>0.707107961</Y>
<Z>0.7071055</Z>
<W>1.68587434E-07</W>
</LeftHandOrientation>
<LeftHandPosition>
<X>-0.08030445</X>
<Y>-0.114194907</Y>
<Z>-0.06793878</Z>
</LeftHandPosition>
<RightHandOrientation>
<X>0.5127417</X>
<Y>0.5127415</Y>
<Z>0.486925066</Z>
<W>-0.486925125</W>
</RightHandOrientation>
<RightHandPosition>
<X>0.016</X>
<Y>0.033</Y>
<Z>0.126</Z>
</RightHandPosition>
<ItemOrientation>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<W>1</W>
</ItemOrientation>
<ItemPosition>
<X>0.1</X>
<Y>-0.48</Y>
<Z>-0.22</Z>
</ItemPosition>
<ItemWalkingOrientation>
<X>0</X>
<Y>0</Y>
<Z>0.119599648</Z>
<W>0.99282223</W>
</ItemWalkingOrientation>
<ItemWalkingPosition>
<X>0</X>
<Y>-0.218271181</Y>
<Z>-0.310783446</Z>
</ItemWalkingPosition>
<BlendTime>1</BlendTime>
<XAmplitudeOffset>0</XAmplitudeOffset>
<YAmplitudeOffset>0</YAmplitudeOffset>
<ZAmplitudeOffset>0</ZAmplitudeOffset>
<XAmplitudeScale>0.450995952</XAmplitudeScale>
<YAmplitudeScale>0.6822766</YAmplitudeScale>
<ZAmplitudeScale>0</ZAmplitudeScale>
<RunMultiplier>2.47470331</RunMultiplier>
<ItemWalkingOrientation3rd>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<W>1</W>
</ItemWalkingOrientation3rd>
<ItemWalkingPosition3rd>
<X>0.186470717</X>
<Y>-0.48</Y>
<Z>-0.102630876</Z>
</ItemWalkingPosition3rd>
<AmplitudeMultiplier3rd>0.5634576</AmplitudeMultiplier3rd>
<ItemOrientation3rd>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
<W>1</W>
</ItemOrientation3rd>
<ItemPosition3rd>
<X>0.1</X>
<Y>-0.48</Y>
<Z>-0.22</Z>
</ItemPosition3rd>
<ItemShootOrientation>
<X>-0.119511753</X>
<Y>0</Y>
<Z>0</Z>
<W>0.4928328</W>
</ItemShootOrientation>
<ItemShootPosition>
<X>0.08</X>
<Y>-0.48</Y>
<Z>-0.280</Z>
</ItemShootPosition>
<ItemShootOrientation3rd>
<X>-0.180763185</X>
<Y>0</Y>
<Z>0</Z>
<W>0.483526647</W>
</ItemShootOrientation3rd>
<ItemShootPosition3rd>
<X>0.08</X>
<Y>-0.48</Y>
<Z>-0.28</Z>
</ItemShootPosition3rd>
<ShootBlend>0</ShootBlend>
<MuzzlePosition>
<X>0</X>
<Y>0.19</Y>
<Z>-0.16</Z>
</MuzzlePosition>
<ShootScatter>
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</ShootScatter>
<ScatterSpeed>0</ScatterSpeed>
<ShakeAmountTarget>0</ShakeAmountTarget>
<ShakeAmountNoTarget>0</ShakeAmountNoTarget>
<noToolSounds/>
</HandItem>

</HandItems>
</Definitions>
Weapons.sbc
<?xml version="1.0"?>
<Definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Weapons>

<Weapon>
<Id>
<TypeId>WeaponDefinition</TypeId>
<SubtypeId>{unique_id}_Weapons_{mod_name}_Weapon</SubtypeId>
</Id>
<ProjectileAmmoData RateOfFire="850" ShootSoundName="{unique_id}_Weapons_{mod_name}_Sfx_{sound_name}" />
<NoAmmoSoundName>WepPlayRifleNoAmmo</NoAmmoSoundName>
<DeviateShotAngle>1</DeviateShotAngle>
<ReleaseTimeAfterFire>100</ReleaseTimeAfterFire>
<MuzzleFlashLifeSpan>-1</MuzzleFlashLifeSpan>

<AmmoMagazines>
<AmmoMagazine Subtype="NATO_5p56x45mm" />
</AmmoMagazines>

</Weapon>

</Weapons>
</Definitions>
Sounds.sbc
<?xml version="1.0"?>
<Definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<Sounds>

<Sound>
<Id>
<TypeId>AudioDefinition</TypeId>
<SubtypeId>{unique_id}_Weapons_{mod_name}_Sfx_{sound_name}</SubtypeId>
</Id>
<Category>WEP_PLAY</Category>
<MaxDistance>50</MaxDistance>
<Volume>0.8</Volume>
<Loopable>false</Loopable>
<Waves>
<Wave Type="D3">
<start>Audio\WEP\{unique_id}_{sound_name}.xwm</start>
</Wave>
</Waves>
</Sound>

</Sounds>
</Definitions>
SBC Templates - Custom - Ammo
The below sbc's are a basic template for custom ammo.

In Weapons.sbc change:

<AmmoMagazines>
<AmmoMagazine Subtype="NATO_5p56x45mm" />
</AmmoMagazines>

to:

<AmmoMagazines>
<AmmoMagazine Subtype="{unique_id}_{mod_name}_AmmoMagazine" />
</AmmoMagazines>
AmmoMagazines.sbc
<?xml version="1.0"?>
<Definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<AmmoMagazines>
<AmmoMagazine>
<Id>
<TypeId>AmmoMagazine</TypeId>
<SubtypeId>{unique_id}_{mod_name}_AmmoMagazine</SubtypeId>
</Id>
<DisplayName>{Title to show in assember etc}</DisplayName>
<Description>description is not used</Description>
<Icon>Textures\GUI\Icons\ammo\{mod_name}_ammo.dds</Icon>
<Size>
<X>0.2</X>
<Y>0.05</Y>
<Z>0.02</Z>
</Size>
<Mass>0.45</Mass>
<Volume>0.2</Volume>
<Model>Models\Weapons\{mod_name}_{weapon_name}.mwm</Model>
<PhysicalMaterial>Ammo</PhysicalMaterial>
<Capacity>30</Capacity>
<AmmoDefinitionId Subtype="{unique_id}_{mod_name}_Ammo" />
</AmmoMagazine>
</AmmoMagazines>
</Definitions>
Ammos.sbc
<?xml version="1.0"?>
<Definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Ammos>

<Ammo xsi:type="MyObjectBuilder_ProjectileAmmoDefinition">
<Id>
<TypeId>AmmoDefinition</TypeId>
<SubtypeId>{unique_id}_{mod_name}_Ammo</SubtypeId>
</Id>
<BasicProperties>
<DesiredSpeed>500</DesiredSpeed>
<SpeedVariance>0</SpeedVariance>
<MaxTrajectory>900</MaxTrajectory>
<BackkickForce>4</BackkickForce>
<PhysicalMaterial>RifleBullet</PhysicalMaterial>
</BasicProperties>
<ProjectileProperties>
<ProjectileHitImpulse>2</ProjectileHitImpulse>
<ProjectileMassDamage>15</ProjectileMassDamage>
<ProjectileHealthDamage>15</ProjectileHealthDamage>
</ProjectileProperties>
</Ammo>

</Ammos>
</Definitions>
SBC Templates - Invisible - Ammo
The below sbc's are for the katana, it does damage through invisible ammo.
AmmoMagazines.sbc
<?xml version="1.0"?>
<Definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<AmmoMagazines>

<AmmoMagazine>
<Id>
<TypeId>AmmoMagazine</TypeId>
<SubtypeId>{unique_id}_Weapons_{mod_name}_AmmoMagazine</SubtypeId>
</Id>
<DisplayName>{named_displayed_in_assember} Magazine</DisplayName>
<Icon>Textures\GUI\Icons\{unique_id}_{mod_name}.dds</Icon>
<Size>
<X>0.0</X>
<Y>0.0</Y>
<Z>0.0</Z>
</Size>
<Mass>1</Mass>
<Volume>1.0</Volume>
<Model>Models\Empty.mwm</Model>
<Capacity>30</Capacity>
<AmmoDefinitionId Subtype="{unique_id}_Weapons_{mod_name}_Ammo" />
</AmmoMagazine>

</AmmoMagazines>

</Definitions>
Ammos.sbc
<?xml version="1.0"?>
<Definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<Ammos>

<Ammo xsi:type="MyObjectBuilder_ProjectileAmmoDefinition">
<Id>
<TypeId>AmmoDefinition</TypeId>
<SubtypeId>{unique_id}_Weapons_{mod_name}_Ammo</SubtypeId>
</Id>
<BasicProperties>
<DesiredSpeed>100</DesiredSpeed>
<SpeedVariance>0</SpeedVariance>
<MaxTrajectory>1.5</MaxTrajectory>
<BackkickForce>0.1</BackkickForce>
</BasicProperties>
<ProjectileProperties>
<ProjectileHitImpulse>125</ProjectileHitImpulse>
<ProjectileMassDamage>125</ProjectileMassDamage>
<ProjectileHealthDamage>125</ProjectileHealthDamage>
<ProjectileTrailScale>0</ProjectileTrailScale>
<ProjectileTrailColor x="0.0" y="0.0" z="0.0" />
<ProjectileTrailProbability>0</ProjectileTrailProbability>
</ProjectileProperties>
</Ammo>

</Ammos>

</Definitions>
Custom Astronaut/Model/Skin (WIP)
Blender Import Settings

[Guide] Importing the Astronaut into Blender - Harag[forum.keenswh.com]
Textures - Why are they still black?
Did you check in C:\Users\{username}\AppData\Roaming\SpaceEngineers\VRageRender-DirectX11.log for texture not found errors?

I've been using the GIMP ever since I can remember as I've only ever needed or wanted to do very basic image manipilations/logos/headers/tweaks/etc so I wasn't taunted about learning how to create textures until I tried to create a basic color texture for SE and get the said texture to show ingame ... black ... try these settings, install this ... black .... install that, you should be setting that to ..., reinstall, config. downloaded trial Photo CC, ... black ..., etc, I tried it all ... I was about to just use the ingame textures and revisit later until ...

I remembered reading somewhere out there on the NET (pun intended) that Visual Studio Community can edit DDS textures so I thought I try it out since I already had it installed on my computer, I opened up a texture that I couldn't previously open out of the SE game folder and "WOW", there they were, the layers, the rgb channels, the MIP levels, all the things I've been trying to learn about. I was indeed impressed how simply it now was for me to edit and create my own textures without the need even to understand the export settings like needed for Photoshop and the GIMP. You can open a SE DDS texture without errors or needing correct settings and save as mentioned without an unedited texture (opened/saved) becoming black in the game, it's now my recommended texture editor for Space Engineer Modders ;)

The answer btw to the question "Why are they still black?" is: it's most "likely" due to the layers (r/g/b/alpha/MIPs/?) being incorrectly opened/saved by photoshop and the gimp because of a combination of not knowing what the correct import/export layers/settings/other(?) are.

TIP: If you're new to textures like me, using Visual Studio Community[www.visualstudio.com]'s built in DDS editor will make experimenting with and understanding them so much easier, my shiny new glow effects for my sMa - LightSaber are proof of that.

Resources
Official: Space Engineers - Modding guide

Modding Guides and Tools | Keen Software House Forums[forum.keenswh.com]

Tutorials:

Shaostoul Corporation: Learning Center[forums.keenswh.com]

Shaostoul's Tutorial Video's

Example Turret by Harag[github.com]

Harag's Awesome Repositories[github.com]

Documentation:

Documentation for SE Block Tools for Blender[harag-on-steam.github.io]

Models, Textures, Other:

TF3DM[tf3dm.com]
OpenGameArt[opengameart.org]
BlendSwap[www.blendswap.com]

Texturelib[texturelib.com]

Spacescape[sourceforge.net] - (A skybox creator)
Download Links
Blender[www.blender.org] (Steam Store Page)

SE Block Tools for Blender[github.com]
Open 3D Model Viewer[www.open3mod.com]

Code Editors

Komodo Edit[komodoide.com] (Recommended)
A great all purpose editor with projects, it's available for linux/mac/win and is simply to use with pretty code/XML formatting

Notepad++[notepad-plus-plus.org]
The favourite code editor of many modders.

CodeLite ^[codelite.org]

A code editor with more advanced ide/features, it has workspaces/projects, usefull when referencing or working with multiple mod(s)/example(s), it's my personal editor of choice and is available for install on most of the Linux Distros. apt-get install codelite ;) (+1 for Debian, we all have our favourites)

^ When creating a new project for a SE mod, select "Other" - > "Non-code Project"

There are a lot of code editors out there, I personally use several for specific purposes/languages so be sure to check out the options for your OS, there may be one that suits you just right.
Glossary of Terms
Cycles Render

Cycles is Blender’s ray-tracing production render engine.

Textures

de, ns, cm, ng, add, alpha. Visit SE Block Tools for Blender - DirectX 11 Textures[harag-on-steam.github.io] for more information on textures.

.dds

The DirectDraw Surface container file format, is a Microsoft format for storing data compressed with the proprietary S3 Texture Compression algorithm, which can be decompressed in hardware by GPUs.

.fbx

FBX is a proprietary file format developed by Kaydara and owned by Autodesk .

.log

A text file containing information generated by an application, used for debugging and logging of crashes/etc.

.sbc

A XML text file used for configuration/definitions.

.sbmi

A XML text file containing "SteamIDOwner" and a "WorkshopId".

* /modinfo.sbmi is created in your mod/modpack folder automatically when uploaded to the workshop.

.mwm

3D model format used by Space Engineers.

.xml

Extensible Markup Language is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable.

.xwm

The Microsoft xWMA format is an audio container/codec format used by XAudio 2, based on the RIFF container format. It is very similar to the WAV format, sharing with it the infamous WAVEFORMATEX data structures.

10 Comments
konstantynopolitaneczka 2 Mar, 2019 @ 1:54am 
Hey! DirectX software is needed when I have Visual Studio?
SpaceMonkeyNeo  [author] 5 Oct, 2017 @ 2:46pm 
@Geo Hi, apologies for the late reply, In Blender be sure to apply scale before exporting.

[3D View Toolbar Menu]->[Object]->[Apply]->[Rotation and Scale]
Geo 2 Oct, 2017 @ 12:51pm 
Cheers! I need some help. I made a block. But when i open my block ingame is overscaled. Any idea why?
SpaceMonkeyNeo  [author] 24 Sep, 2016 @ 5:46am 
Confused as am I, my MOD SDK updates seperately, it may be a recent change thou. Thanks for the link, i'll change it above (I added for others) and remove from the comment.
Grim 24 Sep, 2016 @ 5:41am 
Thank you for your quick response.

Uhm, but the link points to a site that is neither steam nor ksh and I am a bit concerned about loading software from there.

I've found the advice to use steam://install/326880/
and others are saying that the sdk is now alyways included within the game so no separate insatall is needed ... I am confused.
Will investigate further.
Grim 24 Sep, 2016 @ 5:17am 
jup that is the one that is missing in my tools.:steamsad:
SpaceMonkeyNeo  [author] 24 Sep, 2016 @ 5:06am 
Hi Grim, I've added a screen shot above to the "Required Software" section. "Space Engineers" itself shouldn't affect it as it is a seperate install.
Grim 24 Sep, 2016 @ 4:59am 
There is no thing like a "Space Engineers MOD SDK" avaliable via Steam->Library->Tools.
Is my installation fucked up?
SpaceMonkeyNeo  [author] 12 Sep, 2016 @ 7:22pm 
Thanks
Vareska 12 Sep, 2016 @ 9:39am 
Nice guide :)