Skip to content

A feature-rich and easy-to-use implementation of the TechnicSolder API using Node.js

License

Notifications You must be signed in to change notification settings

Zandercraft/TechnicFlux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Logo

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

Qodana CodeQL Contributors License js-standard-style

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

Screen Shot Placeholder

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 βœ… βœ… ⚠️ (Limited)1
Drag n' Drop Mod Upload βœ… βœ… ❌
Drag n' Drop Config Upload βœ… βœ… ❌
Forge Modloader Support βœ… βœ… ⚠️ (Limited)2
Fabric Modloader Support βœ… βœ… ⚠️ (Limited)2
Quilt Modloader Support βœ… βš οΈπŸ’² (Limited)2 & 7 ⚠️ (Limited)2
NeoForge Modloader Support βœ… βš οΈπŸ’² (Limited)2 & 7 ⚠️ (Limited)2
Private Modpack Builds βœ… βœ… βœ…
Client Groups (e.g. Dev, Testers) βœ… ❌ ❌
Automatic Mod Info Loading βœ… ⚠️ (Limited) ❌
Modrinth Support βœ… ❌ ❌
Mod Update Tracking3 βœ… ❌ ❌
Custom Modloader Support ⚠️ (Limited)2 & 4 ⚠️ (Limited)2 ⚠️ (Limited)2
Migration from TechnicSolder5 βœ… ⚠️ (Limited)6 ❌

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:

js-standard-style

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

  1. Clone the repo
git clone https://github.com/Zandercraft/TechnicFlux.git
  1. Install the project dependencies
npm install
  1. Copy and rename the example configuration file
cp ./.env.example ./.env
  1. Create a MongoDB database for TechnicFlux to use.

  2. Change the values within your .env file to your desired configuration.

  3. 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

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

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.

About

A feature-rich and easy-to-use implementation of the TechnicSolder API using Node.js

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published