Skip to content

A small, near universal mod loader using Spongepowered's Mixin library

License

Notifications You must be signed in to change notification settings

OneDSix/MiniSponge

 
 

Repository files navigation

MiniSponge Loader

MiniSponge Loader is a near universal mod loader based off Minicraft+'s mod loader, MiniMods.
This project was originally built for only 1D6, but I though others might get some use out of it as well.

If you're interested about Minicraft+, go to the Minicraft GitHub repository,
I highly recommend the game, even if development is slow these days. Drop a PR or two if you can!

Setting up MSL

Adding MSL to a project

Prerequisites

Pre-Compile

TODO

tldr;

  • import MSL using jitpack+gradle
  • set your project's entrypoint to MSL's entrypoint
  • add an MSL config with the project's entrypoint class
  • build the project
  • assuming all goes well, it should work immediately

Post-Compile

TODO

tldr;

  • unzip the jar
  • add the MSL config with the project's entrypoint class, along with MSL's class files
  • change the entrypoint in META-INF/MANIFEST.mf to MSL's entrypoint
  • assuming all goes well, it should work immediately

MSL Config

TODO

tldr;

{
  "target": {
    "entrypoint": "onedsix.Entrypoint", // The entrypoint class of your project
    "version": "1.0.0", // The version of your project
    "side": "CLIENT" // The "side" of your project, either "CLIENT" or "SERVER"
  },
  "loader": {
    "dependencies": {
      "ignoreCyclicErrors": false, // If the loader should ignore CyclicDependencyErrors (dangerous!)
      "ignoreMissingErrors": false // If the loader should ignore MissingDependencyExceptions (dangerous!)
    },
    "target": {
      "passArgs": true // If the args passed to the loader should also be passed to the target (may cause conflicts)
    },
    "logging": {
      "enableDebug": false, // Enable Debug logging
      "enableLogging": true, // Enable Logging altogether
      "enablePassthroughLogging": true // Enable passthrough of the target's std::out
    }
  }
}

Writing mods for MSL

Quite a few things have changed between MML and MSL, everything from the mod.json file, originally based on Fabric Loader's *.mod.json, being turned into a mods.toml file based on NeoForge Loader's *.mods.toml instead.

TODO

Building

As there are several batch files in this project, it is recommended to use Windows.

To build this project, the most recommended way is to use the local batch file. Use .\build build for Windows.

Since there are some potential problem when executing general .\gradlew build. Please execute .\gradlew :build instead.

License

This repository is licensed with LGPL 2.1 and GPL 3,
you should be able to find the corresponding license documents in the same directory of this source code.
The overall license is named LICENSE in the project's root directory.

SPDX-License-Identifier: LGPL-2.1-only AND GPL-3-only

About

A small, near universal mod loader using Spongepowered's Mixin library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.3%
  • Python 0.7%