What is the forge implementation of the Sponge API?

If you go on the sponge github page, you see that there is the Sponge API, but there also is this thing called Sponge, which says: A forge implementation of the Sponge API.

So. What exactly is this? My first guess is that it is a mod that you put in a forge server to run plugins, but I am not sure.

Its FML coremod, which uses ASM to patch Minecraft. And it also requires Forge.

So, what exactly is the purpose of that?

Yes, that’s essentially right that the forge server loads sponge (the coremod like ben said, not mod) which in turn loads sponge plugins. I’m going to refer you to the architecture overview thread which should clear up some confusion (see the google doc FAQ in that thread too):

I think the architecture overview is a bit confusing.

  • Their is no MC-API yet.
  • I never tried glowstone but so far ik its not (completely) functional yet.

Conclusion: The forge implementation of Sponge will be the first sponge we will see.
(correct me if I am wrong).

SpongeAPI is just the API, which is intended for developers to compile and require in their projects, whereas Sponge is actually the mod that will run on Forge, if I recall correctly.

1 Like

Pretty much, I believe.

The API, like you say is purely there to compile projects against. It serves as a description for all the accessible methods that a plugin can access. These methods don’t actually do anything in the API on their own until they are included in an implementation of the API.

Again, like you say Sponge is a Forge mod which implements the Sponge API and makes those methods actually do stuff. In the same way, a Sponge mod could be made for any other server implementation, having different code to accomplish each method in the API. In this way, a mod compiled against the Sponge API could run on any implementation of Sponge as a mod, without any changes. And, indeed, you could think about each new version of Minecraft as a new platform, giving an explanation as to why Sponge API plugins won’t break with each new release of Minecraft.

1 Like

So in otherwords, Sponge is just an over-glorified Forge mod? sigh T_T

So I guess Sponge will eventually be consumed by Curse as well huh… And with two of CurseForge’s own PR managers now running Bukkit, I can now understand why rouge api’s such as Rainbow, Granite and Husk exist.

Perhaps someone can put me at ease?

Yes, and no. It’s a Forge mod, but it’s a mod that essentially acts like Bukkit did. It’s something that should allow for Vanilla clients to connect alleviating issues with people not wanting to mod for technical or other reasons. It’s also an API that allows for implementation of certain features easier than would be possible with Forge, like Bukkit did.

So then what’s the point in using Sponge if half of the core Forge team is already working on Bukkit?

And to think, I was so ****ing happy when I found out that people and developers where leaving Bukkit to work on a completely new project, only to find out that it’s only going to be sucked into the communist party known as Forge.

Bukkit is now dead due to legal issues. Not sure what you mean here. Some of the Forge team are liaising with the Sponge team to get features into Forge that will allow Sponge to have an expansive API, like Bukkit did.

Again, not sure what you have against Bukkit or Forge, but the Sponge API is written to be platform independent. Indeed its first implementation will likely be on top Forge, but Sponge will just as easily be made for the official modding API once it is released, without breaking things.

Also, last time I checked, Forge was an open source project not a political party. If you have a problem with Forge, I am at a loss as to why.

Forge may as well be closed source as they do not support “unofficial versions” that are not compiled by the core team, which is understandable, however, only the official version has whats called “code signing”, which prevents unofficial mods from being able to load. This was introduced by Pahimar in order to thwart unofficial builds of Equivalent Exchange 2 & 3 from being able to run in 1.6.4 BUT, only if other mods where detected, in other words, you can’t use an unofficial mod in an official modpack.

FYI EE 2&3 are both open source…

But you may wonder what this has to do with sponge right?

Lets take my good buddy Bob for example (ok so he’s not really a good buddy, but just roll with it ok).

So bob here decide’s to make a Sponge plugin that lets you modify the size of mobs in the game, this plugin is is not open source, as Bob want’s to keep his code under his control. At this time, moderators of Forges side see’s that Bob’s sponge plugin is not opensource and thus, does not support it. Later Bob starts up his splugin only to see that his splug didn’t load.

Bob is a very skilled programmer so lets just assume that there’s nothing wrong with his code.

Sponge wouldn’t have this issue as far as I’m aware. Sponge plugins would be loaded by Sponge itself, which other than being run atop Forge has nothing to do with it.