I’m trying to understand how things work. Can anyone explain whether Sponge is really a mod itself, patching the original Minecraft by decompiling the original code and adding hooks for the Sponge API? I understand from what I have read about other Minecraft APIs like Forge that updating the APIs to new versions of Minecraft is a hassle. How is Sponge dealing with updates from Mojang?
Also can anyone explain how does the Sponge API differ from the Forge API? I understand that Forge is a bit more powerful as it allows to create new blocks and items but is more client centric whereas Sponge is a great server API.
Thanks for any explanations.
Here’s a good start: The Sponge Documentation, complete with FAQ.
Sponge is available as a Forge mod (SpongeForge), and also as a stand-alone server (SpongeVanilla).
Thanks for your reply. I have read the docs, but I am still curious about how the Sponge API is added into Minecraft. Is the original Minecraft code decompiled for the Sponge API to be included or how is it done?
It’s done using MCP (the Mod Coder Pack), much the same way as Forge is produced. It just inserts the SpongeAPI instead of Forge.
A more detailed explanation could be provided by one of the Sponge developers, if you need.
MCP Decompiles Minecraft and provides a workspace where Mixins can be developed.
It’s the Mixins (GitHub - SpongePowered/Mixin: Mixin is a trait/mixin and bytecode weaving framework for Java using ASM) inside the SpongeCommon / Sponge(Vanilla/Forge) that implement the API on top / within Minecraft and or Forge at runtime.
Forge is more of a Modding Framework, providing loading functionality for Core mods, as well as providing compatibility changes / patches that allow mods to work together more easily.