Space Engineers Mod Builder (SEMB) is a simple program and set of conventions that allow users to easily build, distribute, and release Space Engineers mods.
SEMB works with both normal mod content distributed through Steam as well as plugins distributed through Space Engineers Plugin Loader (SEPL).
SEMB provides tasks that:
- Place a git-based revision number in the assembly version (for SEPL)
- Build model
.mwm
files - Distribute steam assets to the SE mods folder.
- Start and stop SE processes (for SEPL)
These tasks can be easily attached to your Visual Studio build events.
-
Space Engineers
-
If you'd like to build SEPL plugins:
- Git - for releasing and versioning
- SE Plugin Loader -
ensure you've installed and configured it, including:
- set the Steam plugin flag
- provide a local git with oAuth
- create an appropriate config file within your project
-
If you'd like to build SEMB from source:
Simply download the latest release from the releases page. Extract the executable somewhere and add its folder to your path.
- Fork and clone the repo
- Run
conda env create
to create the environment - Run
conda activate se_mod_builder
to load the environment - Run
python se_mod_builder.py args
to use it via python - Run
pyinstaller se_mod_builder.spec
to generate the executable - Add the executable to your path
If you have non-standard paths to Git or SE, run
SEModBuilder example-global-config
to generate an example config.yml
global config file in its install dir.
Edit it to provide any changes specific to your project.
If you have non-standard paths to mod assets within your project, run
SEModBuilder example-project-config
from your project root
to generate an example build.yml
project config file there.
Edit it to provide any changes specific to your project.
SEMB provides many tasks to assist with building your project. Run
SEModBuilder --help
to see a list of all of them and what they do.
If you have issues with a particular command, try adding the --debug
flag.
For a full project with both Steam and SEPL assets, your build events might be:
SEModBuilder git-version
SEModBuilder kill-se
SEModBuilder build-models
SEModBuilder distribute-steam
if $(ConfigurationName) == release (
PluginManager ..\..\..\..\..\plugin.json publish=True
) else (
PluginManager ..\..\..\..\..\plugin.json
SEModBuilder start-se
)
Contributions are welcome!
Maintain your development branches on your own fork and submit PRs when ready.
Run tests and linting with pytest --pep8
.