// voxen field notes

Minecraft Plugin vs Mod vs Datapack: What Actually Runs Where

· updated · 9 min read · [ EXPLAINER ] · by Matteo Orazietti

"I want custom stuff on my server" branches into three completely different technologies, and picking the wrong one wastes real time: plugins, mods and datapacks are not interchangeable, don't run in the same places, and don't require the same things from your players. Here's the five-minute version that prevents the classic mistakes.

The one-table answer

PluginModDatapack
Runs onServer only (Spigot, Paper, Purpur)Client and/or server (Forge, Fabric, NeoForge)Any world, vanilla server included
Players need to installNothing — vanilla client joins fineUsually yes — matching mods + loaderNothing
Written inJava (Spigot/Paper API)Java (loader APIs)JSON + mcfunction commands
Can add new blocks/items with new texturesNo — only re-uses vanilla visuals (creative renaming/models via resource packs)Yes — true new contentPartially — via vanilla mechanics tricks
Typical useServer gameplay: economies, ranks, minigames, protection, cratesNew content: dimensions, machinery, creaturesLight tweaks: recipes, loot tables, small mechanics
Survives Minecraft updatesUsually minor fixesOften breaks, needs portingMostly fine

Plugins: server-side power, zero player friction

A plugin is a .jar that runs inside a modified server — Spigot, Paper or Purpur — and uses its API to react to everything happening in the game: chat, movement, block breaks, inventories, combat. The decisive property: players connect with the normal, unmodified client. Nobody downloads anything. That's why essentially every public server you've played on — from 10-player SMPs to the giant networks — runs on plugins.

The limitation is symmetrical: since the client is vanilla, a plugin can't add genuinely new blocks, items or textures. Clever plugins fake a lot with renamed items, custom model data and resource packs, but a new ore with new visuals is mod territory.

Mods: new content, higher friction

Mods change the game itself through a loader like Forge, Fabric or NeoForge. They can add anything — dimensions, machines, creatures, physics — because they modify the client too. The price: every player must install the same loader and mod set, and mods break more with each Minecraft update. Perfect for a curated modpack community, wrong for a public server where you want anyone to join instantly.

Datapacks: vanilla's built-in customization

Datapacks live inside the world folder (world/datapacks/) and use vanilla's own data-driven systems: recipes, loot tables, advancements, functions. No server software needed, no client installs. For small tweaks they're the cheapest option there is. For real gameplay systems they get painful fast — command-block-style logic doesn't scale, and there's no API, no permissions, no economy hooks.

What the player has to install

For most server owners this single fact decides the whole question before anything else does. A plugin needs nothing from the player — they open the vanilla launcher, connect, and it just works. A mod needs the player to install the exact same loader (Forge, Fabric or NeoForge) and the exact same mod versions the server runs, or they can't join at all. A datapack needs nothing from the client either — it's server/world-side.

That's why the install requirement, not the feature list, is what filters out mods for public servers: every extra step between "I found a server" and "I'm playing" loses players, and a mismatched mod version doesn't give a friendly error, it just refuses to connect. The friction is worth paying in two cases: a private server between friends who'll happily spend ten minutes installing a modpack once, or a curated modpack community that's built around the mods themselves rather than around a server. Outside those, plugins win by default.

Can you run plugins and mods together?

Yes, through hybrid server software — Arclight, Mohist, Magma, and Fabric-side bridges that expose a Bukkit-compatible API. They genuinely let a plugin and a mod run on the same server.

The honest cost: hybrid servers are less stable than plain Paper or plain Forge, they lag behind on support for new Minecraft versions since they have to track two ecosystems at once, and most plugin and mod developers explicitly won't take bug reports from a hybrid setup — you're on your own when something breaks. Interactions between a mod and a plugin touching the same blocks or entities can behave in ways neither developer tested for. Use a hybrid server when you have a specific reason that plugins or mods alone can't cover, not as a default "get both worlds" choice.

Performance and maintenance cost

On performance: plugins only run server-side, so they generally cost less than mods, which add real content and therefore real load on both server and client. Datapacks are the lightest of the three since they're limited to what vanilla's data-driven systems already do — no extra code running, just configuration the game already knows how to interpret.

On maintenance: mods tend to break first when a new Minecraft version ships, because the loader itself needs an update and every mod built against the old loader API needs porting and recompiling. Plugins break less often but still can — the Bukkit/Spigot API changes across major versions, which is exactly what we cover in updating a plugin to a new version. Datapacks usually survive with minimal changes, since they lean on stable, documented vanilla mechanics rather than an evolving API surface.

Resource packs are the fourth thing people mean

When someone says "I want to customize my server," they sometimes actually mean a resource pack, which is a different thing entirely: it changes textures, sounds and models, not behavior. A resource pack can't add a new command, a new mechanic or a new mob — it only changes what the existing game looks and sounds like. Servers can force one on connect through server.properties. They're often paired with plugins to fake new items — a plugin assigns a custom model data value to a vanilla item, and the resource pack swaps in a custom texture for that value. A resource pack is a complement to a plugin, mod or datapack, not an alternative to any of them.

How to choose

  • Public server, custom gameplay, players join with vanilla clients → plugin.
  • Private community that will install a modpack, genuinely new content → mods.
  • Small recipe/loot tweaks, or you can't run modified server software → datapack.

FAQ

Can I combine them? Yes — plugins + datapacks on the same Paper server is common and safe. Running plugins and mods together (hybrid servers like Mohist/Arclight) exists but is notoriously fragile; avoid it unless you know why you need it.

Do plugins work on Bedrock? Not directly — this article is about Java Edition. Geyser lets Bedrock clients join a Java server with plugins, with some limitations.

I've decided I need a plugin — now what? Either learn the Spigot/Paper API, hire a developer, or describe it to an AI generator that compiles the result for you — we wrote an honest comparison of those paths in this post, and a no-code walkthrough here.

Can I convert a mod into a plugin? Not mechanically. There's no tool that turns mod code into plugin code, because they target different APIs and, in a mod's case, often the client too. If the feature is achievable server-side, you rewrite the logic against the Bukkit/Spigot API from scratch — that's a new plugin, not a converted mod.

Do plugins work on Realms? No. Official Minecraft Realms don't accept plugins — only datapacks and custom worlds are supported.

Which one do I need for a custom /kit command? A plugin. Custom commands with permissions, cooldowns and inventory logic are the textbook plugin use case.