Skip to content

Instantly share code, notes, and snippets.

@The-Fireplace
Last active September 15, 2023 04:36
Show Gist options
  • Star 18 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save The-Fireplace/d092f25e892a46902ecdec68dee2b938 to your computer and use it in GitHub Desktop.
Save The-Fireplace/d092f25e892a46902ecdec68dee2b938 to your computer and use it in GitHub Desktop.
A brief summary of why I am not currently supporting Forge

So, as I update mods and switch more of them over to Fabric, I'm sure I'll frequently get asked "Will you port to Forge" or "Why not Forge," so I figured I'd make a document explaining why and link to it instead of typing up the explanation every time.

The Short Version

Maintaining mods for two different mod loaders is time consuming, and when choosing between them, Fabric is the clear choice to me. If I ever get to the point where my mods are all updated, I will consider porting mods to Forge on a case-by-case basis, but it will not be a priority. The lead developer of Forge, LexManos, has essentially told me he will not support features that allow me to update at least one of my mods past 1.12.2, and on top of that, he did so very rudely while treating me like a complete idiot for trying to make it possible to continue using Forge for that mod. I am not the only person he has treated in this manner, and I do not support this kind of toxic behavior.

But how does Fabric compare to Forge?

I've considered this too, and it is generally more flexible in terms of what I can do with it, and more lightweight. In addition, it has several performance mods which make it so larger packs will generally be able to perform better on Fabric than on Forge. It has all the features I'd expect from a modern mod loader, including a mod menu, a robust configuration library and config GUI (both of which work work better than Forge's), the ability to load mods and hook in to Minecraft where necessary to run code, and the ability to help ensure that mods don't conflict with each other.

Why can't you just support Forge anyways?

As I mentioned, I'd have been forced to abandon a mod. Forge has since added Mixin support, but very reluctantly and only after a very popular modder told them it was needed, despite the reasoning being the same as when requests for it from others were previously shut down and denied. This brings me to my next point, getting fixes or necessary features into Forge is more difficult because it usually requires a lot of argument with LexManos about why it should be added, and his unwillingness to have a reasonable conversation about issues makes that more difficult. If you wish to see the specifics of numerous incidents with LexManos, hop on my Discord and check out the channel dedicated to talking about toxic behavior in the modding community, #lexposting. I've pinned a few good examples, but there are others there too. Another good post is this one by jellysquid3, who has encountered similar issues with LexManos and the Forge community and decided on the same solution.

But what if I really want one of your mods on Forge right now?

All of my mods are openly licensed. I do not plan to release any more updates to my mods on Forge, but you are allowed to do so. I'd appreciate getting a split of the CurseForge rewards if you do port any of my mods. Not a modder but still want to give it a shot? I recommend starting off by learning Java. Once you have that down, there are plenty of modding tutorials out there for Fabric and Forge, you'll want to look at both so you can understand what the code is doing before you port it and what you need to do to get it to do the same thing after porting it.

@SFort
Copy link

SFort commented Sep 18, 2020

As someone who's mostly worked with mixins in fabric I'm very curious of the actuall benefits of each.
For example I have spent a stupid amount of time trying to get the camera roll to sync with elytra movment in fabric
while glancing at a forge camera capture mod that seemed to do it with ease

(On second thought this rly does not belong here, i might of forgetten that after reading all of that)

@The-Fireplace
Copy link
Author

As someone who's mostly worked with mixins in fabric I'm very curious of the actuall benefits of each.
For example I have spent a stupid amount of time trying to get the camera roll to sync with elytra movment in fabric
while glancing at a forge camera capture mod that seemed to do it with ease

In my experience, Mixins have allowed me to more precisely target where I want my code to run than using Forge's events, and allow me to use code in places that Forge refuses to allow hooks into. This has multiple benefits, including more flexibility and potentially better performance because the Mixin is targeting your specific usage scenario. The downside is that you may have to Mixin to multiple places to replicate some events' full functionality, since some Forge events are called from multiple spots in the Minecraft code. As for that scenario you mentioned, if the Forge mod does it with ease using a Forge event, find where the Forge event hooks into Minecraft's code, then in your Fabric mod you can Mixin to the same spot or potentially a more performance effective spot in that code and do what you need.

All of that said, I hear Forge has added Mixin support, grudgingly, because it was needed for the Thermal Expansion set of mods. Of course, others had requested it before, but until they heard from a prominent modder that it really would be useful, they didn't want to add it. LexManos has set up a special channel on the Forge Discord for discussion of coremods and Mixins and blocked himself from it so he can continue to ban anyone he sees discussing using Mixin.

One final comment on the comparisons, and your edited-out comment about Forge working to be more lightweight: I believe Fabric still outperforms Forge, and it is consistently faster to support new Minecraft versions, including snapshots, which Forge doesn't support. I don't have exact performance metrics to cite right now, but I plan to do some testing at some point so I know for sure.

@andrewathalye
Copy link

andrewathalye commented Sep 25, 2020

I guess another benefit, at least for mod creators, would be that Fabric's source mappings can be freely distributed and updated, which makes it a lot easier to make involved and comprehensively-integrated mods, while although MCP is really-well made and the Forge team have been trying to reduce dependence on reflection and core-mods for many years, its license and the lack of Mixins (without SpongePowered mods) makes it difficult to work in large teams :(

I'm just sad I guess that things got so strained between the forge and fabric communities. I understand that, in many respects, they are competitors, but even still progress made in one can be transported to other - I rather see them as the equivalent of something like xwayland and mesa x11 - they are both very different on the inside, but the teams who work on them work together when necessary to create a cohesive experience.

@Lordbaane
Copy link

Keep up the good work and thanks for keeping the faith.

@SylvKT
Copy link

SylvKT commented Sep 29, 2020

I agree! Although working with Mojang's spaghetti code is a difficult task at best, Fabric is still faster and more flexible in my honest opinion. There's no excuse for Lex to treat his userbase like this, nor is putting such a restrictive license on everything for control.

@YTG1234
Copy link

YTG1234 commented Oct 4, 2020

Can you make this gist not scret?

@The-Fireplace
Copy link
Author

Can you make this gist not scret?

Done

@EndangeredNayla
Copy link

I agree! Although working with Mojang's spaghetti code is a difficult task at best, Fabric is still faster and more flexible in my honest opinion. There's no excuse for Lex to treat his userbase like this, nor is putting such a restrictive license on everything for control.

Forge is 100% Open Source.

Fabric is 100% Open Source.

Yarn Mappings by the Fabric Team is 100% Open Source.

MCP Mappings not by the Forge Team and partially by some mojang empylee's (Searge) is NOT open source.

@Sto3IV
Copy link

Sto3IV commented Sep 3, 2023

NeoForge?

@SylvKT
Copy link

SylvKT commented Sep 15, 2023

someone should make one for fabric (for quilt devs)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment