Starbound Mod Builder is a command-line tool that simplifies the process of building mods for Starbound. It generates patch files for modified configuration files, making it easier for modders to create and distribute their custom content.
- Automatically generate patch files for modified config files.
- Pack the mod into a packed mod file for distribution.
- Unpack assets from the packed.pak file for easy access and modification.
You can install Starbound Mod Builder using Poetry:
poetry add starbound-patch-gen
Or you can install the wheel package with pip
- Download latest package here https://github.com/FakeApate/starbound_patch_gen/releases/latest/
- install with
pip install builder-X.X.X-py3-none-any.whl
For ease of use add an .env
file
BUILDER_STARBOUND="PathToStarbound"
BUILDER_MODNAME="ModName"
BUILDER_BUILD_DIR="PathToBuildDir"
Before building your mod, you need to unpack the original assets from the packed.pak file. Use the prepare
command to do this:
builder prepare --destination /path/to/unpack/assets
To build your mod, place your modified assets in the _modAssets
folder and use the build
command:
builder build --source /path/to/unpacked/assets --mod _modAssets/
The tool will generate patch files for the modified configuration files and copy other assets to the build directory.
Once your mod is built, you can pack it into a single mod file using the pack
command:
builder pack -o /path/to/output/modfile.pak
Use the --overwrite
flag to overwrite an existing output file.
The Starbound Mod Builder uses the config.py
module to store the OS-specific paths for the Starbound asset unpacker and packer. If the paths change in the future, you can update them in the config.py
file.
I have included unit tests to ensure the correctness of the code. To run the tests, use the following command:
poetry run python -m unittest
I welcome contributions to the Starbound Mod Builder project. If you have any ideas, bug reports, or feature requests, please open an issue or submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
If you have any questions or need further assistance, you can create an issue in this repo.