Datapacks vs Mods vs Plugins: What Is the Difference?
A datapack modifies vanilla Minecraft using JSON files and functions: it lives inside your world folder, needs no extra software, and players install nothing. A plugin runs purely server-side on Bukkit, Spigot, Paper or Purpur and adds commands, ranks, claims and an economy, while the world itself stays mechanically vanilla. A mod is loaded by a mod loader (Forge, NeoForge, Fabric or Quilt) and is the only one of the three that can add genuinely new blocks, items, mobs and dimensions, though server and client then have to run the same mods at the same version.
That distinction is the single most common source of confusion in support: someone wants a server with Create and with /home, or asks whether a datapack can add a new ore. Below is what each type can and cannot do.
What exactly is a datapack?
A datapack is a folder or zip file in world/datapacks containing JSON files and .mcfunction scripts. With those you rewrite parts of the game Minecraft already knows about: recipes, loot tables, advancements, tags, world generation and biomes. The server reads it in whether you run vanilla or Paper.
What often surprises people: you can define your own biomes and even your own dimension. What you cannot do is extend the engine. Every block, item and mob is an existing vanilla object; you can rename it, give it a custom model through a resource pack and build behaviour around it with functions, but a genuinely new block with its own logic does not exist in datapack territory.
The upside is that nobody has to install anything. The downside is version sensitivity: every datapack carries a pack format number, and after a big jump such as the 1.21 series to 26.1 "Tiny Takeover" or 26.2 "Chaos Cubed" an old pack simply refuses to load. Watch out too for functions that iterate over lots of entities every tick; that is a classic source of lag.
What is a plugin, and why does the world stay vanilla?
A plugin is a .jar in the plugins folder of a server that speaks the Bukkit API. Paper is the default choice for most servers: hundreds of performance patches on top of Spigot, steadier TPS (ticks per second) and better chunk loading, and full compatibility with Bukkit and Spigot plugins. Purpur is a fork of Paper with extra configuration options such as rideable mobs, and it runs the same plugins. Pufferfish sits somewhere between the two in purpose. Folia is experimental multithreaded Paper for very high player counts; it breaks most existing plugins.
Plugins cover everything to do with administration, rules and the social layer. EssentialsX supplies the core commands (/home, /tpa, /warp, /kit, /spawn), LuckPerms is the standard for permissions and ranks, CoreProtect logs and rolls back griefing, WorldGuard protects regions and GriefPrevention lets players claim land themselves. Around those sit WorldEdit, spark, Geyser with Floodgate for Bedrock players, DiscordSRV, ViaVersion, and Vault and PlaceholderAPI as glue layers. Our overview of the best Minecraft plugins explains what each one solves.
The boundary is hard: a plugin talks to an otherwise vanilla server, so underneath it all everything is still a vanilla block or item. A custom sword is a netherite sword with a different name and perhaps a different model. Plenty for survival, skyblock and minigames, but it will never produce a dimension with its own ore.
What do mods do differently?
Mods are loaded by a mod loader into the game itself and really do add new blocks, items, mobs, dimensions and machine systems. Fabric is lightweight, follows new versions quickly and is home to Sodium and Lithium; Quilt is a fork of it. NeoForge is the modernised Forge fork and leads the field on 1.20.2 and newer, and the big content packs live on Forge or NeoForge.
The price is that every player has to install exactly the same mods at the same version. All the Mods 10 runs on NeoForge and Minecraft 1.21.1, has over 18 million downloads on CurseForge and contains 400 to 500 mods; without that pack you will not get in. RLCraft is still on Forge and Minecraft 1.12.2. How to set something like that up on the server side is covered in our explanation of modpacks and how you install them.
Datapacks, plugins and mods side by side
| Feature | Datapack | Plugin | Mod |
|---|---|---|---|
| Runs on | Vanilla, Paper/Purpur and modded | Bukkit, Spigot, Paper, Purpur | Forge, NeoForge, Fabric, Quilt |
| Player must install it | No | No | Yes, at exactly the same version |
| New blocks and items | No, reuses vanilla | No, reuses vanilla | Yes |
| New dimensions | Yes, from existing building blocks | No | Yes, with its own content |
| Economy, ranks, claims | Very limited | Yes, this is its home turf | Less ready-made |
| Bedrock via Geyser | Yes | Yes | Not in practice |
| Weight | Negligible | Light to moderate | Heavy with large packs |
| Example | Custom recipe or loot table | EssentialsX, LuckPerms | All the Mods 10, Cobblemon |
Which choice suits your goal?
- I want an economy with shops and a balance per player. Plugins. Vault as the connecting layer, an economy plugin on top and LuckPerms for ranks. Mods can do it too, but then you are rebuilding something that already exists.
- I want new dimensions, machines and ores. Mods. The only type that adds genuinely new content. Expect players to need a launcher with the right pack, and expect your server to want far more memory.
- I want a custom recipe, a different loot table or my own advancement line. A datapack. Quick to build, nobody downloads anything, and it works alongside your plugins.
- I want claims, anti-grief and a rollback after a raid. Plugins: GriefPrevention or WorldGuard for protection, CoreProtect for undoing damage.
- I want friends on Bedrock to join in. Plugins, using Geyser and Floodgate. On a heavy modded server that is not a realistic route; run a separate Bedrock server instead.
Can you combine plugins and mods?
Not just like that. A mod loader and a Bukkit-style server are two different ways of starting Minecraft; you run one or the other. Hybrid builds exist that reimplement the Bukkit API on top of Forge or NeoForge, but they lag behind on versions and plugins behave unpredictably on them. For a server people actually build on, that is rarely a sensible foundation.
There are two clean solutions. Stay inside the mod world: permissions, claims and basic commands also exist as mods on Fabric and NeoForge, there is simply less choice and thinner documentation. Or build a network: a proxy at the front door, with a modded world behind it and a Paper server carrying your plugins. Such a proxy costs very little; with us a 512 MB BungeeCord proxy starts at EUR 0.50 per month.
Datapacks are the exception: they work alongside plugins and alongside mods, because they belong to the world.
How do you install them on your server?
Adding a datapack:
- Check which Minecraft version the pack was built for.
- Stop the server and upload the zip file to
world/datapacks. - Start the server and confirm with
/datapack listthat it is enabled. - If nothing happens, check the logs for the pack format.
Adding a plugin:
- Check that the plugin supports your server version.
- Install dependencies such as Vault or PlaceholderAPI first.
- Upload the
.jarto thepluginsfolder. - Restart the server fully rather than using
/reload, and only then edit the config.
With a modpack you do not run the individual mods but the server version of the pack, and players use the same pack in their launcher. Make sure the Java version matches: All the Mods 10 requires Java 21 and will not start on Java 17.
How much RAM does each type cost?
A datapack costs virtually no memory at all. A Paper server with the usual core plugins is in a completely different class from a pack with 400 to 500 mods; how much you need there depends on player count, world size and the number of entities.
With large modpacks the figures are firmer. All the Mods 10 asks for at least 10 GB of RAM on the server side, 12 GB for a small group and 14 to 16 GB with five or more players or heavy automation. Storage counts too: on an HDD start-up takes a good 10 minutes, on an SSD 2 to 3 minutes. Optimisation mods make a real difference, FerriteCore being the best known (30 to 40 percent less RAM), plus Canary and ModernFix on NeoForge. On the plugin side you use spark; there is more on that in our article about optimising your Minecraft server.
Not every modded adventure is heavy. Cobblemon packs often run fine on 4 to 8 GB, whereas old Pixelmon servers usually needed 10 to 12 GB. With Minecraft hosting from MC-Node you scale the budget line per GB at EUR 1.10 per GB per month: 4 GB costs EUR 4.40 and 8 GB costs EUR 8.80.
Frequently asked questions
Can I run a datapack and a plugin at the same time? Yes. Paper and Purpur read the world/datapacks folder exactly as vanilla does, so a custom recipe from a datapack and EssentialsX as a plugin sit together happily. They simply know nothing about each other.
Do players have to install anything for plugins? No, plugins run entirely server-side on Bukkit, Spigot, Paper or Purpur. Even Bedrock players can join if you install Geyser with Floodgate. With mods it is the other way round: everyone needs the same mods at the same version, or the connection is refused.
Can I add new blocks with a datapack? No. You can reuse and rename existing vanilla blocks and items and give them a custom model through a resource pack, but a genuinely new block with its own behaviour requires a mod on Forge, NeoForge, Fabric or Quilt.
Which Java version do I need for a modpack? That depends on the pack. All the Mods 10 on Minecraft 1.21.1 requires Java 21 and will not start on Java 17, while an old pack like RLCraft on Minecraft 1.12.2 needs an older Java version instead.
Does a plugin built for Spigot also work on Paper or Purpur? Yes. Paper is fully compatible with Bukkit and Spigot plugins, and Purpur, being a fork of Paper, runs the same ones. The exception is Folia: that experimental multithreaded Paper breaks most existing plugins.