// 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
| Plugin | Mod | Datapack | |
|---|---|---|---|
| Runs on | Server only (Spigot, Paper, Purpur) | Client and/or server (Forge, Fabric, NeoForge) | Any world, vanilla server included |
| Players need to install | Nothing — vanilla client joins fine | Usually yes — matching mods + loader | Nothing |
| Written in | Java (Spigot/Paper API) | Java (loader APIs) | JSON + mcfunction commands |
| Can add new blocks/items with new textures | No — only re-uses vanilla visuals (creative renaming/models via resource packs) | Yes — true new content | Partially — via vanilla mechanics tricks |
| Typical use | Server gameplay: economies, ranks, minigames, protection, crates | New content: dimensions, machinery, creatures | Light tweaks: recipes, loot tables, small mechanics |
| Survives Minecraft updates | Usually minor fixes | Often breaks, needs porting | Mostly 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.
