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
.
Discord Server
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
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:
- NodeJS
- Express
- HBS (Handlebars)
- Morgan
- Cookie Parser
- Multer
- dotenv
- bcryptjs
- zip.js
- mongoose
- MongoDB
- Bootstrap
Getting Started
To get a local instance of TechnicFlux up and running follow these simple 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
- (Optional) Fine with living on the edge and want the latest features? Switch to the
dev
branch.
WARNING: Our design philosophy for the
dev
branch is to move fast and break things. While this means that you will get all the latest in-development features, it also means that your TechnicFlux instance could break. You will have to get yourself out of any holes that you fall into. You've been warned. Here there be dragons.
git checkout dev
Usage
Here are some examples of how you can use TechnicFlux:
(examples)
For more examples, please refer to the Documentation
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.
See CONTRIBUTING.md for our Contribution Guidelines and more info.
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.