FabricMC / fabric-loader

Fabric's mostly-version-independent mod loader.
Apache License 2.0
634 stars 270 forks source link

Suggestion: Fabric and Forge compatibility #268

Open CTH999 opened 4 years ago

CTH999 commented 4 years ago

Feature request;

okay, I know you have gotten this before, and I know you will until you "fix" it, I just want to say my idea for making fabric compatible with forge.

So, fabrics goal is to give mods many tools. Cool! Great! But, what if, to get around the whole forge issue, you made it a forge mod!

Let me explain. Already there is a required mod on curseforge. What if, you take that mod and integrate it into this one. Then, to make things easier, it will have the features from both, and basicly be an API. So, mods can still use your features, it's just you now add features to forge! It might even make it easier for you, since you can use features from forge.

That is just by "2" cents, maybe this will encourge you to hurry up the change (If it's easier)...

But, ultimatly it's your choice!

liach commented 4 years ago

Oh, this is more like a feature request to allow installing the fabric loader on modlauncher/forge. Afaik fabric loader can be installed but the mappings at runtime etc would be a bit problematic. Also there is problems like forge blocking injection attempts or breaking vanilla parts that fabric mods use.

I suggest you to look at https://github.com/PatchworkMC for running forge mods instead.

liach commented 4 years ago

Shouldn't close this one, the flexible mapping at runtime is something fabric loader should do, though fabric loader cannot help with forge's change to vanilla that may break fabric mods.

CTH999 commented 4 years ago

A, so patchwork is basicly an attempt to integrate fabric and forge. Maybe one day you could add that into the base fabric. Also, is it downloadable? Finally, maybe it could help with forges change... you would have to somehow make it to where fabrick acts as, for lack of a better word, and ambasador, and forge does the change to fabric, and fabric does the loading there. The benifit of that is it could work indepentent of forge...

I am literally just throwing out concepts (:

oh yeah, talk about a fast response!

i509VCB commented 4 years ago

Patchwork is definitely out of scope of fabric's api itself, but the maintainers seem to be pretty well set in

CTH999 commented 4 years ago

Patchwork is definitely out of scope of fabric's api itself, but the maintainers seem to be pretty well set in

Well... they want to integrate the two, I just think it should be built in. Also, it's a challenge for them!

jamierocks commented 4 years ago

If the intent here is a Forge runtime for Fabric, sadly it won't ever be possible - unless (realistically) someone ports fabric-api to use Forge APIs, and less mods rely on Mixin (or at least are built with a Forge environment in mind too).

liach commented 4 years ago

Notice this is the loader repo. Loader running on forge shouldn't be problematic, but notice that loaded mods are highly environment dependent and may break in any circumstance.

jamierocks commented 4 years ago

Notice this is the loader repo. Loader running on forge shouldn't be problematic, but notice that loaded mods are highly environment dependent and may break in any circumstance.

Yeah, it's not problematic - I've done it. Recent changes by cpw make it easier too.

modmuss50 commented 4 years ago

Yes, I dont think its worth closing this issue, mod launcher support for fabric loader on its own isnt too hard based of the quick glaces ive seen at ML.

Like @jamierocks said the hard work comes in getting mods (including fabric api) mixin's to apply ontop of forge's patches. After that there will be a miraid of compablity issues between forge mods and fabric. (Differentcommon tag names is a simple example.).

I can see a possible soluion to this by providing a good toolset to developers to create a cross loader mod that sets up a dev env with options to run forge or fabric. As well as providing APIs or a way to structure the mod to work on the 2 loaders.

Finding someone who knows how and who is willing to go through and make this, as well as dealing with all the issues that will come up is hard. It wont be me.

jamierocks commented 4 years ago

As well as providing APIs or a way to structure the mod to work on the 2 loaders.

Beyond just re-implementing fabric APIs on Forge, one solution coule be supporting some new entrypoint targets -> forge-common, forge-client, forge-client, vanilla-common, vanilla-client, and vanilla-server for example (where existing common, client, and server work on both target environments).

liach commented 4 years ago

Imo those entrypoints will not be builtin to fabric loader. it will be provided by 3rd party like your fabric forge.