Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/paradigmmc/mc-modpack-kit

A template designed to streamline the release process of Minecraft modpacks.
https://github.com/paradigmmc/mc-modpack-kit

curseforge minecraft modrinth modrinth-modpack packwiz

Last synced: about 1 month ago
JSON representation

A template designed to streamline the release process of Minecraft modpacks.

Awesome Lists containing this project

README

        


Logo

Streamline the Minecraft Modpack Release Process with GitHub Actions!



Use this template

GitHub Actions Badge
Minecraft Badge

---

**mc-modpack-kit** is a GitHub Actions workflow template designed to simplify the release process of Minecraft modpacks using a structured monorepo approach. It automates essential tasks such as versioning, modpack building, and publishing on platforms like Modrinth and CurseForge.

It also includes an `nix flake` for you fellow nix enjoyers! The actions also use it!

### Key Features

1. **Monorepo Structure**

Embrace the power of organization with a monorepo-style architecture. Each subdirectory represents a different modpack version or loader type, streamlining your management of multiple modpack variations within a single repository.

Example subdirectories:
- `fabric/`: Fabric loader version.
- `forge/`: Forge loader version.

You can create more just by initializing packwiz in the said directory of your choosing.

2. **Automated Releases**

Experience effortless version control with Release Please, which generates changelogs and handles version releases automatically, in sync with your pull requests. Maintain clarity with Conventional Commit Messages.

Examples:
- `feat(modpack/): ` for adding new features, configurations or content.
- `chore(modpack/): ` for routine maintenance tasks or cleanups.
- `update(modpack/): update ` for updating mods to newer versions.
- `mod(modpack/): add ` for introducing new mods to the modpack.

4. **Mod Updates**

Update your mods effortlessly by utilizing the `update.yml` workflow located in `.github/workflows/update.yml`. This action efficiently updates all mods across all subdirectories.

### Getting Started

1. **Fork the Repository**

Start by forking this repository to your GitHub account.

2. **Set Up Secrets and Permissions**

- Navigate to "Settings" -> "Secrets" and add the following secrets:
- `MODRINTH_TOKEN`, `MODRINTH_ID` for Modrinth authentication.
- `CURSEFORGE_TOKEN`, `CURSEFORGE_ID` for CurseForge authentication.
- Enable "Allow GitHub Actions to create and approve pull requests" under "Settings" -> "Actions" -> "General" -> "Workflow permissions".

3. **Initialize Your Modpack**

- Generate a `pack.toml` file using `packwiz` (installation instructions [here](https://packwiz.infra.link/installation/)) within a modpack folder.
- Begin by running `packwiz init`, preferably within the `main` directory.

4. **Set a release channel**
- By default this template uses the `beta (0.1.0)` channel, you can switch it to `release (1.0.0)` when you are ready!
- This can be done via executing `.github/workflows/bump-version-release.yml`!

5. **You are good to go!**
- You can now merge the release PR that release please has made, sit back and enjoy a cup of coffee! ☕ ^-^

### Troubleshooting and Support

If you encounter any issues or need assistance, consult the [Issues](https://github.com/jh-devv/mc-modpack-kit/issues) page or reach out via my GitHub profile.

### License

This project is licensed under the [CC0 1.0 Universal License](LICENSE).

### Acknowledgments

- This project makes effective use of GitHub Actions and various tools to automate the modpack release process.
- A heartfelt ❤️ thank you to [Rafii](https://github.com/Rafii2198) for helping with this!
- Special thanks to the GitHub community for their contributions and support.

---

Contributions, feedback, and improvements are warmly welcomed! Let's propel this project forward together! 🚀