Plugins on the Bukkit API

Bukkit plugin generator for plugins that move between servers

The Bukkit API is the layer Spigot, Paper and their forks all share. Describe your plugin and Spaleforce writes it on that common base, compiles it and gives you a .jar you can carry from one server type to another.

Free to start · No credit card

Bukkit API plugin generated by AI on Spaleforce, portable across Spigot and Paper

One API, many servers

Code written on the Bukkit API is the part Spigot, Paper, Purpur, Pufferfish and Leaf all understand.

Version-aware code

The AI knows which Bukkit constants and methods exist in the version you chose, including the ones renamed along the way.

Actually compiled

Each project is compiled with Maven, and build errors are fixed automatically before you download.

From 1.16 to 26.3

Target any version the generator offers: 1.16 to 1.21.11, and the 26.x releases.

Bukkit, CraftBukkit, Spigot, Paper: who does what

Bukkit started as an API: a set of Java interfaces under org.bukkit describing players, worlds, blocks, events and commands. CraftBukkit was the server that implemented those interfaces on top of vanilla Minecraft. Spigot grew out of CraftBukkit and Paper out of Spigot, and each kept the Bukkit API while adding its own features.

That history is why people still search for a "CraftBukkit plugin" when they mean a plugin for Spigot or Paper. The plugin talks to the Bukkit API; the server software underneath decides how it runs.

When you pick Bukkit on Spaleforce, the plugin is compiled against the Spigot API artifact, which contains the complete Bukkit API, so everything the plugin needs from Bukkit is available at build time.

Why a Bukkit plugin creator favors portability

Server owners switch software more often than they rewrite plugins. A network may start on Spigot, move to Paper for performance, then try Purpur for its gameplay settings. A plugin built on the Bukkit API usually follows along untouched, because each of those servers still implements it.

Staying on the common API also keeps the code familiar to any Bukkit developer: commands through a CommandExecutor, events through a Listener with @EventHandler methods, settings through config.yml, data attached to items through the persistent data container.

  • Commands declared in plugin.yml, with tab completion
  • Listeners for players, blocks, entities and inventories
  • YAML configuration with defaults and a reload command
  • Permissions with default values for players and operators
  • Scheduled tasks for timers and delays

Portable is not frozen: the Bukkit API changes too

The Bukkit API is stable, not static. In 1.20.5, many EntityType constants were renamed: DROPPED_ITEM became ITEM and PRIMED_TNT became TNT. In 1.21.3, attributes lost their GENERIC_ prefix, so GENERIC_MAX_HEALTH became MAX_HEALTH. Code written for one side of those changes does not compile on the other.

The AI checks the version you selected before writing anything, so it uses the names that exist in that release and skips methods added later. If a mistake still gets through, the compiler catches it and the AI corrects the file.

The practical rule: generate for the version your server actually runs. When you upgrade the server, rebuild the plugin for the new version instead of assuming the old .jar still loads.

When plain Bukkit is not enough

Some features need more than the shared API. Rich chat with hover and click actions is simpler with Paper's text components. Purpur exposes extra options of its own. Folia replaces the Bukkit scheduler with region-based schedulers and refuses plugins that are not marked as compatible.

In those cases, pick the matching server type instead of Bukkit. The generator offers Paper, Purpur, Pufferfish, Leaf, Folia, Spigot and Bukkit, so you can trade a little portability for the features you need.

Make a Bukkit plugin, test it, share it

After generation, the project opens in an online editor where every file is visible. Ask for adjustments in plain language, and each change is kept in the version history.

From the editor you can start a real Minecraft test server on the version you want and join it. Once the plugin behaves, download the .jar or publish it on the Spaleforce marketplace for other server owners.

How it works

  1. 1

    Select Bukkit

    Choose Bukkit as the server type and the Minecraft version your server runs.

  2. 2

    Describe the plugin

    Write what players can do, which commands exist and who is allowed to use them.

  3. 3

    Get the .jar

    The AI writes, compiles and fixes the plugin. Try it on a test server, then download the .jar.

Bukkit plugin prompts to start from

Death chest
When a player dies, place a chest at the death location with their items. Only that player can open it for 10 minutes. Send them the coordinates in chat.
AFK marker
Mark a player as AFK after 5 minutes without moving or chatting, show [AFK] before their name in the tab list and remove it when they move again. The delay comes from config.yml.
Simple warps
/setwarp <name>, /warp <name>, /delwarp <name> and /warps. Warps are saved in warps.yml. Only players with warps.admin can create or delete them.
Night drop bonus
Double the drops of zombies, skeletons and creepers at night. The multiplier and the list of mobs are read from config.yml.
Sleep vote
Skip the night when half of the online players in the overworld are in bed. Broadcast how many players are sleeping and how many more are needed.

Frequently asked questions

Is there a free Bukkit plugin generator?

Spaleforce is free to start: sign in with Google, no credit card. You get 5 AI generations or edits per day, with 2 hours between two generations, and you download the compiled .jar.

Is a Bukkit plugin the same as a Spigot plugin?

Mostly. Spigot and Paper both implement the Bukkit API, so a plugin written on it runs on either. A plugin labeled "Spigot" may also use Spigot's own additions, which Bukkit alone does not provide.

Does it support old CraftBukkit versions like 1.8?

No. The generator covers Minecraft Java 1.16 through 1.21.11, plus 26.1.1, 26.1.2, 26.2 and 26.3. Versions 1.8 to 1.15 are not offered.

Do I need to know Java?

No. You describe the plugin in everyday language. The AI writes the Java, and the compiler checks it before you download anything.

Can the plugin use WorldEdit or Vault?

Yes. WorldEdit, Vault, PlaceholderAPI and PlotSquared are resolved automatically at build time. Those plugins must also be installed on your server.

Will a Bukkit plugin run on Folia?

Not by default. Folia disables the classic Bukkit scheduler and only loads plugins marked as Folia-compatible. Choose Folia as the server type to get a plugin written for it.

Where can I share my plugin?

You can publish it on the Spaleforce marketplace or upload the .jar to any plugin site. On the free plan, the embedded "Powered by Spaleforce" credit must stay in the plugin.

Write it once, on the Bukkit API

Describe your plugin, get a compiled .jar that runs on Spigot and Paper, and try it on a real test server. Free to start.

Generate a Bukkit plugin

Updated September 17, 2026