This repository allows to create new mods for Factorio, based on a standard model
- Install Python (version 3 minimum) and pip
- Install Github cli
- Install all necessary requirements:
pip install -r ./scripts/requirements.txt
- Install Factorio and connect with your login/password (mandatory)
- In the directory %APPDATA%\Github CLI, create a new file .env
- In the file .env, add your API Token of Factorio, with the key FACTORIO_MOD_API_KEY
- Run the python file python .scripts/DuplicateFactorioModel.py
- Fill the name of the mod
Note: characters /,\,' and space are automatically replaced in the mod/repository name with a _. However, the title remain - Fill the description
- Fill the name of the branch to add (Optional)
- Validate
- In Info.json, update the factorio_version if necessary (Default:1.0)
ℹ️ This will create a repository with a branche Master. this one shall never be modified directly. A RREADME.md file is created, but empty. When publishing, its content is added as detailed description of the mod The info.json file is as well created, but only for development. Other than factorio_version,it is useless to fulfill it properly, as it will be overwritten during the publish process Other branches can be created, using Master as basis.
- Implement code
- If necessary, update the dependancies in the environment variable MOD_DEPENDANCIES, with format list json.
ℹ️ To add dependancy, simply add the name of the mod, with signs !,? or ~ if necessary. if sign !, it will simply be added. For other signs, the last release of the mod is automatically added, if compatible with current factorio version. If no mod is available for this version of Factorio, and the mod is mandatory, this generate an error
- Push the changes to the corresponding branch
- Create a pull request to the master
- Add issues with labels (mandatory)
Note:Issues are used to create changelog. The label of the issue is the type of change, while its title is the description of the change + the url of the issue - Merge
ℹ️ This will create a new release for the repo, which description is the changelog content. Then, the content as zip is downloaded, changelog and info.json file are automatically generated, included into the zip which is then sent to Factorio