7 unstable releases (3 breaking)

new 0.4.1 Oct 15, 2024
0.4.0 Oct 15, 2024
0.3.2 Oct 8, 2024
0.2.0 Sep 26, 2024
0.1.1 Sep 24, 2024

#79 in Games

Download history 378/week @ 2024-09-21 130/week @ 2024-09-28 158/week @ 2024-10-05 253/week @ 2024-10-12

919 downloads per month

Custom license

93KB
795 lines

                    .=./:)  ,===.   .==. ,===.  ,===.    ____     .=======.    
                    \8.-.') |8@8R\  |88| |@8Y/  |8@8|  .xX888b`.  |@8^Y^88B\   
                    /8`-'8\ |88,8R\ |@8| |88|   |@8Y' /x88'  \8b\ |8( ' )8@|   
                     `-'`"` |@8|\_Y\|88| |@8| _ |88|  |888|  /@8| |(_ o _)8/   
                     .===.  |8Y_( )Y\&8| |8&Y( )Y8@|     _.-`@88| |8(_,_).' __
                     |8@8|  |&(_ o _)8@| \Y(_ o._)Y/  .X@88^8888| |8&|\Y\  |@8|
                     |88&|  |8L(_,_)\88|  \Y(_,_)Y/   |88_( )_88| |X8| \Y`'@8Y/
                     |Y8R|  |8@|    |@8|   \Y@88Y/    \Y(_ o _)Y/ |8@|  \&88Y/
                     '==='  '=='    '=='    `===`      'Y(_,_)Y'  ''='   `'='  

Not sure how good this art is, but whatever (c) mxxntype.
Invar is currently hella WIP, barely anything is implemented, but I'm working on it.

Invar

Invar is a CLI management tool for modded (or not) Minecraft servers. This project has the following goals:

  • Allowing you to declaratively[^1] build and configure Minecraft modpacks, which includes managing mods, resourcepacks, shaderpacks and datapacks[^2], while treating their configuration files as first-class citizens. I aim to implement fetching component data from both the Modrinth and CurseForge APIs;
  • Providing an automated setup of a Docker container with your modded minecraft server, powered by itzg/minecraft-server and docker compose, with configurable automatic backups[^3] and maintenance;
  • Being as user-friendly and informative as possible and allowing you to organize and categorize your managed components, so you don't get lost in them while playing around with hundreds of mods at the same time.

[^1]: By "declaratively", I mean having everything built from plaintext metadata (like in packwiz) and being tightly integrated with the Git VCS. One of the design concepts of this tool is to treat modpacks and servers as software source code and deployments, respectively. [^2]: There still may or may not be a need for a datapack loader mod. I'll update this when I get to implementing server-side and client-side datapack handling. [^3]: It's unliky I will be hand-rolling some sophisticated backup system. This will probably be an equivalent of an automated cp -r ./server .backups/ before you start the server and after it shuts down.

Architecture

Dependencies

~24–41MB
~592K SLoC