// voxen field notes

Minecraft Plugin vs Mod vs Datapack: What Actually Runs Where

2026-07-07 · 6 min read · [ EXPLAINER ]

"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.

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.