Skip to content

A small Minecraft mod that allows to install modpacks packaged in the mcinstance format.

License

Notifications You must be signed in to change notification settings

HRudyPlayZ/MCInstanceLoader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

The mod logo.

GitHub Modrinth Curseforge Discord Ko-fi

A small mod to allow Minecraft to directly install a modpack in the .mcinstance format, a simplified distribution format for modpacks. It lets people download files, bundle overrides and much more. The game asks for a reboot after installation and disables the mcinstance file to let the game restart properly.

This is the main branch.

There won't be any code hosted here, only general info. You may want to look at this branch instead:

(others might come later on, feel free to help port the mod to any version you'd like. Forge, Fabric, 1.16, 1.3.2, anything, this mod is MIT licensed after all.)

So basically what is the .mcinstance format?

The MCInstance format (.mcinstance) consists of a repurposed ZIP file, with a specfic layout inside, and containing things like .packconfig files which are very similar to the INI format. This mod aims to allow its installation inside the game so it can be used as a cross-platform modpack format. Support for it could also be added inside 3rd-party launchers to directly allow people to double click the file and install the pack.

Features

Here are some features included in both this mod and the format:

  • Bundle any file inside the overrides folder, just like other formats. Files there get copied to the minecraft root directory (usually .minecraft).

  • A carryover folder for modpack players. That way players can put any file in it, and they will get merged as well, overwritting what the pack might have downloaded/bundled before.

  • Download files from the internet (any URL) and save them anywhere in the minecraft folder.

  • API support for both Modrinth and Curseforge (with multiple modes in place if something fails).

  • Hash checks for downloaded files (SHA-512, SHA-256, SHA-1, MD5 or CRC32 for now)

  • A cache system for hashed files (if the file is downloaded from an API, it tries to grab the hashes from the API too), to not have to redownload everything after an update.

  • StopModReposts checks, to discourage the use of repost websites. This can be toggled off if needed.

  • Sided files, so you can only download certain files on server or on the client. Useful for GUI mods and what not.

  • A very flexible optional files system, with a menu in place, grouping support, multiple menus and multi-choice GUIs with a configurable amount of togglable items. (Client side for now, will have an implementation for servers later on)

  • A complete log system in place so you can easily check issues specific to this mod. Combined with a verbose option for Forge logs.

  • A togglable update checker, to keep this mod up-to-date.

  • Forge progressbar integration, displays a new progress bar in the loading screen, so people can see how many mods are left to be downloaded.

  • A customisable Info GUI that replaces the main menu, to notify the user of errors or successs. This is to make sure that people restart the game and correctly load mods that might've been added. Supports an auto-quit timer, a custom success message or any mod that changes the menu (a list of classes can be set)

  • Automatic pack.mcinstance disabling after success, with the possibility to delete the file, or disable that feature instead. This is necessary to let people play the game after a succesful install.

So how do i use it?

Check out the wiki pages to learn more about this mod and the mcinstance format.

Credits & licensing

Licensing:

Even though this mod is distributed under MIT, this license doesn't apply to any file in the net.lingala.zip4j package, as this is the source code for the zip4j library, and only distributed here for ease of use. The zip4j library is licensed under the Apache License 2.0 and the version bundled here is the 2.9.1 release.

Credits:

  • Srikanth-lingala for creating the zip4j library, which this mod uses.
  • AstroTibs for making OptionsEnforcer which i got inspired by.
  • Janrupf and HansWasser for creating ModDirector which inspired this mod too.

About

A small Minecraft mod that allows to install modpacks packaged in the mcinstance format.

Resources

License

Stars

Watchers

Forks

Packages

No packages published