Hello and welcome to the Fabric 1.16 Snapshot, (Pre-Release & Release once out) Discussion Thread!
Please use the snapshot and snapshot versions of mods for Fabric at your own risk!
This thread will cover:
-Fabric & Forge mod posts DAILY! (well, every 1-3 days at least)
-How to install Fabric (For Vanilla & MultiMC [Twitch unofficial method I'll skip due to Jumploader allowing Fabric Twitch support now])
-A modlist stating all mods for Fabric 1.16 snapshot, Pre-Release and Release.
-Major things required or useful in a Fabric environment (Fabric API, Mod Menu, REI, OptiFabric, etc.)
-Additional things for mods (Resource Packs)
-And maybe more additions, changes/improvements over time to the thread itself (like this point list your reading now. I like to change them up ever so slightly. From exclusive mod lists to compressing it into one spoiler compared to the two separate in the past, to adding a 'this thread will cover' section to make explaining easier. That and it makes creating these threads for fun instead of a copy paste job all the time and allows me to be more creative with them each time).
This Thread is currently in a WIP state as 1.16 is in a snapshot state.
If your unfamiliar with Fabric it is a modloader like Forge is. It's goal is to be lightweight for not only developers but players. It has the potential to work on snapshots and release versions and mods will be updated quickly.
There is also two Fabric terms to get used to, Fabric Loader/Installer & Fabric API:
-Fabric Loader/Installer is your method to install Fabric into the Vanilla or MultiMC launchers like you would Forge, Rift or Liteloader. You can find it here or under the Fabric requirements spoiler of this first post: https://fabricmc.net/use/
Fabric is not a competitor to Forge, it is another option for players and developers to use.
Fabric & Forge are not compatible yet (Patchwork is in the works as a way to make them compatible) so best to look out for a Fabric icon on mod pages or check the mod posts I post every 1-3 days to know the difference between if a mod is for Forge, Fabric or both (as it's 1.16 snapshots right now there is no Forge for 1.16 but in the future or in 1.13+ threads below you will notice this).
If you have any thing you want to see change about the forum (text colour, formatting, mod posting strategy, anything), have a question about Fabric (install assistance/mod conflicts, general about Fabric or something else) just comment below, I'm open to responding not just updating this main post and posting mod updates daily.
For a look at my past threads/works try the following below:
I'm curious as to how it is possible that a modloader, much less anything more than the most basic of mods, can possibly be updated within hours of the release of a snapshot, and for a new update at that (until 1.13 I used to maintain an "old caves" mod which reverted the changes to caves in 1.7 so they generated exactly the same as before and I could update it within 10 minutes but all I had to do was use JD-GUI to decompile the jar, then search for a particular string, then use a bytecode editor to change a couple values, then make a custom version (adding the modified class to the jar, no modloader) and test it).
@MasterCaver Sorry for the 2-3 hour late response, was updating the 1.15 thread for about an hour.
I have wondered that, I have seen an interview and looked at the Fabric Discord a few times but yeah it is surprising how they have done it so lightweight, and update friendly to snapshots within the hour or so. I've not properly made a Fabric mod, only looking at a few tutorials so I don't really know what goes into it besides hearing mixin (not using asm) and other things being thrown around. But I assume they just really made their tools/apis and more really flexible.
I'd recommend watching this interview here which is the best public response I find besides asking the devs and getting varying answers:
Updating actually takes minutes. The reason is that fabric only has 2 hooks into the game and doesn't need recompilation. It uses a framework that allows you to inject directly into the bytecode called mixins(https://github.com/SpongePowered/Mixin). The decompiled source is only there as a reference and will contain errors. Additionally, the mappings provided by yarn(https://github.com/FabricMC/yarn) are free of use and any community member can PR to it, making deobfuscation extremely fast.