MCInstance Loader

MCInstance Loader

Mod

A small mod that allows to install mcinstance files, a modpack format that can include overrides and download files.

Client or server Utility

63.2k downloads
14 followers
Created2 years ago
Updated3 months ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

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.

Will you port this mod to other versions too?

I'm not working on porting this mod yet, but this is planned. The goal is to provide the mcinstance format for as much people as possible.

I'm just starting with 1.7.10 for now, might port it when i feel the mod is ready.

You can also help port the mod by looking at the Github. After all, this is a MIT-licensed mod, so feel free to try and make a pull request to port it to any version you'd like (be it 1.3.2, 1.18, Forge, Fabric etc)

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.

External resources



Project members

hrudyplayz

Owner


Technical information

License
MIT
Client side
optional
Server side
optional
Project ID