TechnicFlux by Zandercraft
A feature-rich and easy-to-use implementation of Technic's Solder API using Node.js.
Explore the Docs
.
Report Bug
.
Request Feature
NOTE: TechnicFlux is still under active development! Many of the features listed here are not implemented and are simply planned for inclusion. We cannot guarantee that everything listed here will eventually be implemented, although we will try our best.
-- Zander 🙂
Table Of Contents
- About the Project
- Built With
- Getting Started
- Usage
- Roadmap
- Contributing
- License
- Authors
- Extra Thanks
About The Project
TechnicFlux is a feature-rich and easy-to-use implementation of the TechnicSolder API (+ download manager) with a modern, interactive dashboard. Our aim is to make your job as a modpack developer easy and pain-free while providing you with some of the best tools to get the job done (such as group-based build access, drag 'n drop mod uploads, and more - see How does TechnicFlux compare with TechnicSolder?).
What TechnicFlux Is Not
TechnicFlux is quite a few things, but it's important to understand what it is not:
- It is not a drag-and-drop replacement for TheGameSpider/TechnicSolder or vanilla TechnicSolder
- Explanation: While we support migration from both vanilla and TheGameSpider's TechnicSolder to aid you in moving to TechnicFlux, that's where the support ends. We hope to make your migration as smooth as possible, but do not want to constrain ourselves in any way to the feature-set or individual quirks of these applications. (See MIGRATION.md for a detailed migration guide).
- It is not a PHP application.
- Explanation: TechnicFlux is a Node.js Express application. This means that the way you will deploy it is quite different. This has its benefits, but also some drawbacks. For instance, it can be deployed much cheaper and has a lot less overhead. It does not, however, run on web servers like Apache or NGINX. You will have to use reverse-proxy for a use-case like this.
Why is TechnicFlux Needed?
After putting days of work into trying to maintain, clean up, and add new features to TheGameSpider/TechnicSolder, I have
come to the realization that it either needs a full re-write or a replacement. Don't get me wrong, I love his version,
have used it for over 5 years now, was a dedicated tester, and finally a major contributor to the project, but with it being
effectively abandoned for the past 3 years, something needs to happen.
The aim of TechnicFlux is to fill this gap by providing a modern, fast, and easy-to-use project with active, forward-looking
development and support. We hope to maintain this project in a way that the community can actively contribute, get issues
fixed quickly, and have their feedback on new features taken seriously (in much the same way that TheGameSpider handled his
repository in the early stages of the project).
That said, we would just like to thank TheGameSpider for his amazing contributions to the TechnicSolder community, advancing the technology so much beyond what was available at the time by constantly pioneering new features and making us feel that our patronage, issues, and feedback really mattered!
What is TechnicSolder?
TechnicSolder is an API that sits between a modpack repository and the Technic Launcher. It allows you to easily manage multiple modpacks in one single location.
Using Solder also means your packs will download each mod individually. This means the launcher can check MD5's against each version of a mod and if it hasn't changed, use the cached version of the mod instead. What does this mean? Small incremental updates to your modpack doesn't mean re-downloading the whole thing every time!
Solder also interfaces with the Technic Platform using an API key you can generate through your account there. When Solder has this key it can directly interact with your Platform account. When creating new modpacks you will be able to import any packs you have registered in your Solder install. It will also create detailed mod lists on your Platform page! (assuming you have the respective data filled out in Solder)
Source: TechnicPack/TechnicSolder
How does TechnicFlux compare with TechnicSolder?
Feature | TechnicFlux | TheGameSpider/TechnicSolder | Vanilla TechnicSolder |
---|---|---|---|
Multiple Accounts (with perms) | ✅ | ✅ | ✅ |
Web-based Mod Management | ✅ | ✅ |
|
Drag n' Drop Mod Upload | ✅ | ✅ | ❌ |
Drag n' Drop Config Upload | ✅ | ✅ | ❌ |
Forge Modloader Support | ✅ | ✅ |
|
Fabric Modloader Support | ✅ | ✅ |
|
Quilt Modloader Support | ✅ |
|
|
NeoForge Modloader Support | ✅ |
|
|
Private Modpack Builds | ✅ | ✅ | ❌ |
Client Groups (e.g. Dev, Testers) | ✅ | ❌ | ❌ |
Automatic Mod Info Loading | ✅ |
|
❌ |
Modrinth Support | ✅ | ❌ | ❌ |
Mod Update Tracking3 | ✅ | ❌ | ❌ |
Custom Modloader Support |
|
|
|
Migration from TechnicSolder5 | ✅ |
|
❌ |
1 Requires manual zip file construction and an FTP connection to package and upload mods.
2 Supported by manual zip construction, but not automatic fetch within the web interface.
3 Via Modrinth's API for mods downloaded from Modrinth only.
4 More support than the others (online configuration w/ mod compatibility).
5 TechnicFlux supports migration from both Vanilla and TheGameSpider's TechnicSolder.
6 TheGameSpider's TechnicSolder only supports migration from Vanilla TechnicSolder.
7 Complete support for this feature will only be available in a closed-source cloud offering of TechnicSolder.
Built With
TechnicFlux is built using:
Getting Started
To get a local copy up and running follow these simple example steps.
Prerequisites
You will need the following software to get started:
Installation
- Clone the repo
git clone https://github.com/Zandercraft/TechnicFlux.git
- Install the project dependencies
npm install
- Copy and rename the example configuration file
cp ./.env.example ./.env
-
Create a MongoDB database for TechnicFlux to use.
-
Change the values within your .env file to your desired configuration.
-
Run the server
npm start
Usage
Here are some examples of how you can use TechnicFlux:
(examples)
For more examples, please refer to the Documentation
Roadmap
See the open issues for a list of proposed features (and known issues).
Contributing
Contributions are what make the open source community such an amazing place to be, learn, inspire, and create. Any contributions you make are greatly appreciated. Our goal as a project is to be open to feedback and contributions, fostering an active community in which you can truly be involved in improving TechnicFlux and keeping it bug-free.
- If you have suggestions for adding or removing features, feel free to open an issue to discuss it, or directly create a pull request.
- Please make sure you check your spelling and grammar.
- Ensure that you update the README.md to match any changes your PR includes.
- Ensure that you update the latest Unreleased entry in CHANGELOG.md with your changes.
- Create individual PRs for each suggestion, bug-fix, or enhancement.
- Use new branches on your fork to separate different changes (see Creating A Pull Request).
Creating A Pull Request
When naming your forks, please prefix your fork names with the type of change they include:
Bug Fixes -bugfix/
New Features -feature/
Removed Features -removal/
Deprecations -deprecation/
Project-Related Changes -project/
includes grammar, document changes, GitHub actions, etc.
This makes it much easier to distinguish the purpose of a branch by its name.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes w/ Descriptive Message (
git commit -m 'Added AmazingFeature...'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a New Pull Request
License
Distributed under the MIT License. See LICENSE.txt for more information.
Authors
- Zander - (ZandercraftGames) - Project Developer
Extra Thanks
A special thanks to TheGameSpider and his TechnicSolder implementation for providing an easier way for me to hop into the Minecraft modpack scene. Your enthusiasm for developing it and your kindness toward your community really inspired me and showed me what OSS development was all about.
We are not affiliated with Mojang, AB or Syndicate LLC.