Question about Sponge use and its limits

Hi everyone,

I didn’t really know where to put my question. I asked IRC and someone told me to put it in SpongeDocs subforum, but it seems that SpongeDocs is dedicated to Documentations work & stuff, anyway.

I would apologize about my english grammar & stuff, not native.


My thoughts about Sponge aren’t clear. By that, I mean I don’t fully understand the role of Sponge in Minecraft, so I documented myself.

What can’t I do with Sponge? / Limitations of Sponge?

Sponge can’t be used to create new blocks, textures, mobs on the clientside or any other content which would need clientside modifications. The Sponge API wont support sending mods or plugins to the client for now due to security concerns. However you can make use of the ForgeAPI for clients and create Sponge plugins for the serverside. It is even possible to use Sponge on the client-side, but for several tasks mods are still required.

Correct me if i’m wrong, but it says that - to open a server with modded clients/server - I’ll need to do my client stuff on Forge and server stuff on SpongeForge ? Because I don’t understand the “sending mods to the client” part. Forge didn’t use to do that, right ? What’s the difference - clientsided talking - with Forge system ?

Alongside, a new post popped four days ago (yassss !), saying that Sponge is now SpongeForge. Does it confirm what I was saying above ?

And last but not least, where could I find the hierarchy of Sponge ? There was a beautiful diagram on Docs with different parts of Minecraft teams such as Cauldron, Forge, Craftbukkit etc …

Thank you for your time, hoping an answer that will open my mind ! :slight_smile: Have a great day.

SpongeAPI (at least for now) is server-side only. But there’s not a single implementation of SpongeAPI:

  • SpongeForge is an implementation that runs on Forge - that means it should integrate with mods well
  • SpongeVanilla is built directly on top of MC - no mod compatibility, but for some that doesn’t matter
  • Other implementations can easily be made using an API, perhaps not even built on vanilla MC

Regardless of what implementation is run, there should be no requirement for a client to be modded. From the viewpoint of the client, SpongeForge or SpongeVanilla are just normal servers.

However, you can use things such as plugin channels which communicate between Server and Client to talk to a client mod if you wish. For now that mod will be separate from SpongeAPI - but can still talk to the server to coordinate functions.

That is what they mean by ForgeAPI for the clients - extra functionality for those who want it, but it’s not at all required.

1 Like

In reference to sending mods - Forge have said that they do not want to allow sending of mods in any form. It’s a security risk to have clients download mods that a server tells them, whether that’s automatic or manual. It would make it stupidly easy to infect a client’s computer with a malicious mod.

1 Like

Thanks @ZephireNZ for your reply. :smile:

Does that mean I will be able to create a server using Forge for modding clients (blocks, items) and SpongeForge for plugins and server stuff such as Packets, Mobs … ?

Yes, sort of. SpongeAPI does not plan to support packing changing whatsoever - I believe their rationale was that in all but a few cases its a sign of a poorly designed API.

But you can definitely use Sponge to interact with a mod’s items, while having the version stability that SpongeAPI brings. Know that both the server and client need to know about a block/item/entity type - so to create a new one you’ll need a forge mod on the server too.


You can use a combined Sponge+forge mod+Plugin on the server and a client mod to add the New content for players. This gives you the most possible version compatibility while maintaining awesome forge features.

Its even possible to access Forge from within a Sponge plugin. However this will limit you to the usage of SpongeForge, as SpongeVanilla obviously won’t run forge features.

1 Like

Thank you guys for your answers. :slight_smile: