Skip to content

A compatibility tool to run (some) Fabric mods on Forge

Notifications You must be signed in to change notification settings

SteelwoolMC/Steelwool

Repository files navigation

Steelwool

A compatibility tool to run (some) Fabric mods on Forge.

Status

NOT READY TO BE USED. Don't try.
Currently targeting Minecraft 1.20.1.
Currently targeting Forge rather than NeoForge; migration is planned.
Development contributions are appreciated (refer to Issues, and the project board)

Building

  1. git clone --recursive (if you forgot to use --recursive, run git submodule update --init --recursive after)
  2. ./gradlew applyPatches (this will generate the patched version of fabric-loader that Steelwool uses)
  3. ./gradlew build

Built jar location: ./ModLocator/build/libs/

Running

Note that MixinTransmogrifier is a required dependency.
You'll also probably want Gambeson, our patched version of fabric-api.

Project structure

ModLocator

The main subproject, containing our implementation of IModLocator that finds Fabric mod jars in the mods folder and converts them to jars that can be loaded by Forge.

Mod

This subproject contains a Forge mod that is nested inside the main Steelwool jar, that handles some runtime behavior normally handled by FabricLoader (currently only entrypoints).
(It is also used to make Steelwool appear in the mods list, as IModLocators do not get displayed.)

loader-api

Contains a patched version of fabric-loader, used for both mod resolution and various loader APIs that Fabric mods may access.

  • fabric-loader - the upstream commit as a git submodule
  • loader-patches - patches applied to upstream, generated by gitpatcher
  • steelwool-loader - the patched version of fabric-loader
  • steelwool-hooks - hooks that can be used in the patched loader, to reduce diff size. Currently unused, but eventually implementations will go in ModLocator.

DummyProject

Forge allows for loading mod locators as dependencies in development environments, but does not support loading them directly in their own project.
Because of this, we use a dummy mod to load Steelwool in development environments. (TODO does this still work?)

Development

If you make changes to steelwool-loader, commit your changes, then run ./gradlew makePatches to regenerate the patch files in loader-patches.

About

A compatibility tool to run (some) Fabric mods on Forge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages