question, new to PC Minecraft but not Java (i don't get to do any web app stuff at work though). I'd like to ask some clarifying questions about how MC and mods run at a high level view before diving in as I haven't modded anything before. I am looking to start playing/modding since I want a new project to work on here and there. Thanks to anyone who can help answer my questions / correct my understanding of the backend.
After reading docs, it seems that servers are just fat jars distributed from Mojang. Mods / plugins are distributed from users as jars. You can install Minecraft Forge using their installer. Does the MC Forge installer just give you a repackaged Mojang server jar that includes their API?
After MC Forge is installed, you can include users jars into their mod directory that is now on your server, then you need to have the JRE restart the app to load the new dependencies. From what I can see, it seems like it is working like a glorified Maven build tool behind the scenes, as it is seems to be in charge of managing all the dependencies gracefully.
How are users creating their mods from scratch, are users decompiling mojangs servers fat jars and starting there for their mods? As in, if I wanted to create a mod that introduced a new custom mob, wouldn't I need to somehow look at how actual mobs are being built by decompiling then make a similar model and repackage the jar and rerun the app?
If I didn't want to make it from scratch, I use MC Forge MDK and an API like https://maven.thiakil.com/forge-1.12-javadoc/net/minecraft/item/Item.html to create new item as an asset, register it, and upload jar to the MC Forge directory in the server and it should handle it all nicely between client/server, is that right? I am still going through the docs and just taking a browse before I buy the game and try to setup their hello world program they have for creating your first mod.