OpenModInstaller is an innovative open-source application for universal Minecraft mod management.

Overview

OpenModInstaller

OpenModInstaller is an innovative open-source application for universal Minecraft mod management.

About

It combines three types of tools into a single app:

  1. Mod and modpack hosting (CurseForge, Modrinth) with Markdown pages (CommonMark3 standard)
  2. Automatic mod installing/updating/removing
  3. Launching Minecraft (Forge, Fabric and Quilt) with multiple profiles

The app is powered by the Kotlin language and JetPack Compose Desktop.

Development

This product is currently in a early alpha development stage.

Alpha releases are expected to be available in the middle of July 2021.

Features

Here's an exhaustive list of features coming into the 1.0 release and the status of their development:

  • Settings
  • JSON
    • Universal JSON format for developers
    • Manual URL discovery
    • Search from discovered
    • Reusable cache (coming soon)
    • Autocomplete discovery
  • Mod management
    • Mod downloading (coming soon)
    • Mod updating (coming soon)
    • Mod removing (coming soon)
  • Mod hosting
    • Markdown pages for mods
    • Metadata display for mods
    • Release display for mods
    • Integration of mod downloading, updating and removing (coming soon)
  • Mod suggestions
    • Calculating downloads for mods to display popularity
    • Recommending mods
    • Starring mods
    • Following mods
    • Advanced search
  • Modpacks
    • Creating modpacks
    • Viewing modpacks
    • Installing modpacks
  • Launching Minecraft
    • Launching via the GJMLC core
    • Multiple profiles
    • Multiple modloaders (Forge, Fabric and Quilt)
    • Launching modpacks

Download

Since the app is in early development, no downloads are available.

You can compile the app to a native binary following these simple steps:

  1. Clone the repository on your device
  2. Make sure that you have AdoptOpenJDK 11 HotSpot installed and added to the JAVA_PATH variable
  3. Open the command-line
  4. Run gradlew package and wait for a bit
  5. Go to the $CLONED_FOLDER_PATH/build/compose/binaries and the correct subfolder for your binary (msi folder for Windows, for instance) and run the installer

Team

The team consists of only me, the main developer.

Some anonymous people have been helping me indirectly with this project, but I would not like to reveal their names.

Contribute

Any contributions, help and support would be very welcome!

Email me at [email protected] for support. I may be slow to respond though.

Comments
  • Create a custom launcher core

    Create a custom launcher core

    The previous plan was to use GJMLC as a launcher core in this app, but it has some issues which have driven me to the conclusion of making our own launcher:

    • It is no longer supported. The repository hasn't been receiving any sort of updates since 2016
    • It is not on Maven Central. This makes depending on it hard (previously we just inlined the entire code into a new package)
    • It is outdated. Some parsing methods do not apply to the newest Mojang launcher formats, so a rework would be necessary anyway
    • It has bad code quality. The core would need some cleaning up before it's code becomes good
    • It is written in Java. As you may know, this project is fully in Kotlin, and adopting a Java library (especially a core component for the app to function correctly) is a bad idea, even though the interoperability works.
    • Most importantly, it only supports legacy launcher formats, which means that a huge rework for that would also be needed if we had decided to stick with GJMLC.

    I cannot give any estimates on when this will be ready, and there will likely be conflicts with design-phase-zero branch.

    opened by kanpov 3
  • Add support for running FabricMC

    Add support for running FabricMC

    Adds support to the loader in order for it to run mods made with Fabric.

    The backend for this is quite easy to implement, actually:

    • [x] Download the manifest for installer versions on https://meta.fabricmc.net
    • [x] Resolve the version
    • [x] Download the JAR from https://maven.fabricmc.net
    • [x] Run the JAR as a CLI process, so it setups the correct version info file
    • [x] Improve the LibraryManager and OpenLauncher to support inheritance because Fabric utilizes that
    • [x] Create a launcher plugin doing all the patching and modifying
    • [x] Add a few tweaks and changes for it to run properly
    opened by kanpov 2
  • Add GitHub Actions

    Add GitHub Actions

    • Allows to see when something broke especially good when working with multiple contributors or on older Java versions
    • optional deliver builds for each commit
    opened by lucsoft 2
  • Renovate Task architecture

    Renovate Task architecture

    The current Task architecture has a few flaws that really need to be fixed.

    • They aren't coroutines, which disables a lot of potential for the GUI
    • They aren't applied everywhere, for example, Manager classes in the launcher
    • They include 3 launch phases (prelaunch, launch and postlaunch), which aren't needed and increase complexity
    • They use contexts as parameters due to the limitations of implementing an interface

    This PR aims to fix all of these.

    opened by kanpov 1
  • Add support for running MinecraftForge

    Add support for running MinecraftForge

    Adds support for mods made with Forge. Even though I personally don't like it, the amount of mods made with it is huge and we need to support it.

    The core for modloader support has already been introduced by the Fabric support PR, so this will likely be easy to do.

    opened by kanpov 1
  • Create a custom launcher core

    Create a custom launcher core

    The previous plan was to use GJMLC as a launcher core in this app, but it has some issues which have driven me to the conclusion of making my own launcher:

    • It is no longer supported. The repository hasn't been receiving any sort of updates since 2016
    • It is not on Maven Central. This makes depending on it hard (previously we just inlined the entire code into a new package)
    • It is outdated. Some parsing methods do not apply to the newest Mojang launcher formats, so a rework would be necessary anyway
    • It has bad code quality. The core would need some cleaning up before it's code becomes good
    • It is written in Java. As you may know, this project is fully in Kotlin, and adopting a Java library (especially a core component for the app to function correctly) is a bad idea, even though the interoperability works.

    I cannot give any estimates on when this will be ready, and there will likely be conflicts with design-phase-zero branch.

    opened by kanpov 1
  • Add support for Fabric Minecraft

    Add support for Fabric Minecraft

    Expand the launcher core's functionality to support the environments and mods created by the Fabric Loader.

    This is a quite simple task, actually. Fabric has a functional installer that does most of the heavy lifting for us.

    The tasklist:

    • [ ] Port over ClientInstaller and other necessities for it if needed
    • [ ] Add support for it in the launcher
    • [ ] Make a few little tweaks to support launching the JAR
    opened by kanpov 0
Owner
OpenModInstaller
The organization behind the OSS OpenModInstaller project
OpenModInstaller
Minosoft is an open source minecraft client, written from scratch in kotlin (and java).

Minosoft Minosoft is an open source minecraft client, written from scratch in kotlin (and java). It aims to bring more functionality and stability. No

null 151 Dec 31, 2022
Thaumcraft 4 research table tweaks - This mod brings a reworked research table GUI.

Thaumcraft 4 research table tweaks This mod brings a reworked research table GUI. Features Tutorial and research pages where expanded to include expla

null 7 Dec 19, 2022
An experiment with cellular automata; Functional mod for Rem's Engine.

Cellular Automata This is an experiment with cellular automata. A functional mod for Rem's Engine. When experimenting, I found the Sierpinski Triangle

Antonio 1 Mar 21, 2022
WynnLib is a Fabric mod that aims to provide data-related functionalities for the server Wynncraft

WynnLib is a Fabric mod that aims to provide data-related functionalities for the server Wynncraft. The mod inherits from the mod WynnInvManager (WIM), but comes up with a better framework design and supports newer Minecraft versions. As an open-source project, the contribution is welcome.

Sihan 13 Nov 20, 2022
Application for downloading and installing mods for minecraft

Mods Rainbow Application for downloading and installing mods for minecraft. Also user can choose favourites mods. Table of Contents Screenshots Genera

Vladyslav 3 May 8, 2022
An easy open source Android Native Game FrameWork.

JustWeEngine - Android Game FrameWork An easy open source Android Native Game FrameWork. Engine Flow Chart How To Use? Import Engine's module as Libra

JustWe 767 Dec 8, 2022
Cocos2d-x is a suite of open-source, cross-platform, game-development tools used by millions of developers all over the world.

cocos2d-x Win32 Others cocos2d-x is a multi-platform framework for building 2d games, interactive books, demos and other graphical applications. It is

cocos2d 16.7k Dec 31, 2022
Cocos2d-x is a suite of open-source, cross-platform, game-development tools used by millions of developers all over the world.

cocos2d-x Win32 Others cocos2d-x is a multi-platform framework for building 2d games, interactive books, demos and other graphical applications. It is

cocos2d 16.7k Jan 7, 2023
Radio - a Minecraft Servers plugin for providing the best experience of interaction with broadcasting

Radio Radio is a Minecraft Servers plugin for providing the best experience of interaction with broadcasting. Installation Download required version f

Viktor 3 Dec 14, 2022
Item-Attribute Framework for Minecraft Server

Item-Attribute Framework for Minecraft Server

Rain 10 Dec 26, 2022
Sample source code for Android Pride Rainbow Bounding Box written in Kotlin and OpenGL 🏳️‍🌈

Sample Code for Animated Rainbow Bounding Box in OpenGL A sample app showing how to draw a rainbow bounding box on Android with OpenGL and Kotlin. Blo

Rebecca Franks 28 May 24, 2022
A Sudoku Application using Graph Data Structure(Directed Colored Graph).

Project Overview Graph Sudoku is an application which was created with three goals in mind: Teach myself Jetpack Compose Teach myself Graph Datastruct

null 3 Aug 10, 2022
Android-application used as an introduction to Android development and Android APIs.

Android-application used as an introduction to Android development and Android APIs. This application is an implementation of the game Thirty and written in Kotlin.

Oscar Johansson 0 Nov 6, 2021
Wordle-solver - This application supports in finding the correct answer to the daily word puzzle game Wordle

Wordle-solver - This application supports in finding the correct answer to the daily word puzzle game Wordle

Jiri Bakker 1 Jan 19, 2022
A tic-tac-toe application for foss-weekend.

TIC - TAC - TOE How to Setup? Fork the repository to your GitHub account. Clone the forked repository to your local machine. Add upstream to the clone

Ayush Kumar 6 Mar 14, 2022
Gameforma is a simple game list application where user could explore more than 350.000 games

Gameforma is a simple game list application where user could explore more than 350.000 games data provided from RAWG Video Games Database API. Built with MVVM repositoy pattern, clean architecture in order to finish Dicoding Menjadi Android Developer Expert's (MADE) class submission.

Naufal Aldy Pradana 3 Sep 22, 2022
This is an application that is about an X / O game. You can enter the names of the game, and there is also a screen for those who win and there is a button to continue playing and the game determines the result of each player

Game-X-O This is an application that is about an X / O game. You can enter the names of the game, and there is also a screen for those who win and the

Mohamed Rafat 2 Aug 20, 2022
Gestor is an innovative open-source application for universal Minecraft mod management.

Gestor Gestor is an innovative open-source application for universal Minecraft mod management. About It combines three types of tools into a single ap

GestorMC 11 Dec 9, 2021
The universal proxy toolchain for Android, written in Kotlin.

SagerNet for Android The universal proxy toolchain for Android, written in Kotlin.

Project S 4.6k Dec 30, 2022
A universal memory dumper using Frida

Fridump Fridump (v0.1) is an open source memory dumping tool, primarily aimed to penetration testers and developers. Fridump is using the Frida framew

null 547 Dec 22, 2022