Questioning and Interrogation
Be Readin’ This
What be Sponge?
This ‘ere Sponge be a new versatile Minecraft API. She be made to enrich yer Minecraft experience (and maybe yer pockets), by letting plugins ‘ave their wicked way with the game. There be loads more babbling o’ Sponge here: Here Be The Start Of It All and the ancient history of the freebooting founders of Sponge be found here: The History of Sponge
What be needed to launch the ship o’ Sponge?
Ye Sponge (and Minecraft) be needing ye olde Java Runtime Environment to fare properly at sea. What ye will be needing is a “computer”, whatever that be. But ye can find more tattle about what sort of Java to be drinkin’ here: Installing Java
Where can I seize some Sponge for myself?
Vessels may load up with SpongeForge and SpongeVanilla at the Sponge Docks (not the ones ye be reading, lubbers).
What Kinds o’ Sponge Vessels be Available?
Ye Sponge Project be making two seaworthy vessels built using the SpongeAPI:
SpongeForge, she be a coremod for the famed Minecraft Forge, what be an existing shipyard for Minecraft, well known to seasoned pirates. But she lacks a cross-ocean API, and ye Sponge fills this gap. Sponge be letting server captains to deploy their plugins right easy like, leaving more time for important drinkin’. (Ye good ship SpongeForge were once known as Sponge, until it were renamed to confuse scallywags).
SpongeVanilla be the stand-alone vessel o’ the Sponge fleet, to hell with Forge, it be sailing alone upon the seas of Minecraft. (She was birthed as Granite, but she docked in Sponge’s ports and we commandeered her, and her crew).
Other mutinous scallywags also be meddlin’ with the API - as be their right - and makin’ their own ships to sail the Spongy Seas:
LanternServer, an open source and compatible Minecraft: Java Edition server that implements SpongeAPI. It does not rely on the vanilla codebase at all, allowing for it be more configurable, open, and performant. While still a work in progress, their project is quite promising and may one day be the choice for servers not looking to run Forge mods. You can find more information on their website as well as on GitHub.
Where be these Sponge Plugins buried?
You can find plugins on our official plugin repository, called Ore.
What dastardly disaster overtook Bukkit?
Ye olde Bukkit Project stopped development at their shipyards when the docks caught fire, the ships were devoured by a giant squid in the harbour, and they were overrun by cannibals. Also one of their surviving engineers filed a DMCA takedown black-spot, that be ending further distribution o’ their shipwrights blueprints. That be his right as a pirate, and there ‘aint be no taking down o’ that. If ye be nosey, ye can find more rumours and grist in the annals of The History of Sponge
Can ye be plying Bukkit ships in a Sponge harbour?
No, and enabling this capability is not a goal of ours. Sponge is using its own API (SpongeAPI), while Bukkit is using the Bukkit API. While third parties explored the idea of implementing the Bukkit API on top of Sponge, due to the design differences of the APIs, none of these projects have come to fruition. If you think a feature is missing in Sponge or you cannot find a plugin your server needs, consider posting on the forums, and someone may be able to help you.
Rants for Ship Owners
I be a Ship Owner! What damage be expected if I switch to this ‘ere Sponge?
For an existing Forge server, you will need to download SpongeForge and place it into the mods folder. The server can then be started like any other Forge server.
Non-Forge servers may elect to use SpongeVanilla instead, an implementation that does not rely on Forge. There are guides for migrating from Bukkit and/or Canary elsewhere on SpongeDocs. It is worth noting that many plugin developers from the Bukkit community have thrown their weight behind Sponge, and are planning to make their plugins available for Sponge-powered servers.
Worlds will be able to be ported over. It is up to plugin developers to create conversion processes that will allow you to keep plugin data, if any exists. Some plugin developers may not do this.
On a related note, we will not be providing support for Bukkit plugins on Sponge.
How Will Switching to Sponge Affect Players on My Server?
Switching to Sponge should not affect players on your server. If you (as a server owner) migrate correctly, players will be able to connect to your server the same way as they did before you migrated to Sponge. They will not need to have Forge installed - unless your server runs Forge mods, of course.
For Developers
What can I do with Sponge?
Sponge provides a Plugin API. This means that you can create new content and gamemodes on the go. Have a look at our plugin pages to get a quick-start: Creating a Plugin
What can’t I do with Sponge? / Limitations of Sponge?
Sponge can’t be used to create new blocks, textures, mobs on the client-side or any other content which would need client-side modifications. SpongeAPI won’t support sending mods or plugins to the client due to security concerns. However, you can make use of the ForgeAPI for clients and create Sponge plugins for the server-side. It is even possible to use Sponge on the client-side, but for several tasks mods are still required.
I’m a Bukkit Plugin Developer! Why Can’t Sponge Use Bukkit’s API?
Bukkit’s API contains code licensed under the GPL. This is a large reason why Bukkit met its demise in September 2014; by moving forward with a new API licensed under the MIT license, we can avoid some of the problems that fell upon Bukkit. While this does not free us from Mojang’s control, as their code is proprietary, it is our belief that Mojang supports modding and will continue to do so.
Will I Be Able to Access the Server Internals In My Plugins?
Accessing the server internals (known as “NMS” or “net.minecraft.server” in CraftBukkit) can be done through MCP, which has a large number of names de-obfuscated. However, be aware that accessing the server internals raises the risk of your plugin breaking - this is your prerogative.
See Implementation-dependent Plugins for an introduction about using MCP in your plugin.