Minecraft Datapacks vs Plugins Explained

Datapacks and plugins both customize your Minecraft server, but they work in fundamentally different ways. Choosing the wrong one for your use case leads to performance problems or unnecessary complexity. Here is when to use which.

What are datapacks?

Datapacks are built into vanilla Minecraft. They use JSON files and mcfunction commands to modify recipes, loot tables, advancements, world generation and game behavior. They work on any server type, including vanilla, and require no additional software.

Datapacks go into the world/datapacks/ folder and load when the world loads.

What are plugins?

Plugins are Java programs that hook into the server software (Paper, Spigot, Purpur). They can do anything Java can do: manage permissions, create custom GUIs, add economy systems, modify packets, interact with databases and more. They require a plugin-capable server jar.

Plugins go into the plugins/ folder and load at server startup.

Key differences

AspectDatapacksPlugins
Server softwareAny (vanilla, Paper, Fabric)Paper, Spigot, Purpur only
LanguageJSON + mcfunctionJava (or Kotlin)
CapabilitiesRecipes, loot, advancements, functionsAnything Java can do
PerformanceCommand-based, can lag with many per-tick functionsCompiled code, generally faster for complex logic
Version updatesUsually survive updatesOften need recompilation for new versions
InstallationDrop folder in world/datapacks/Drop jar in plugins/
Client requirementNoneNone

When to use datapacks

  • Custom recipes - adding, removing or modifying crafting recipes is what datapacks do best.
  • Custom loot tables - change what mobs drop, what generates in chests, fishing rewards.
  • Custom advancements - create achievement trees for your server.
  • World generation tweaks - modify biome distribution, ore generation, structure placement.
  • Simple game rules - one-player sleep, mob head drops, armor stand customization.
  • Vanilla servers - when you do not want to leave vanilla, datapacks are your only option.

When to use plugins

  • Permissions - LuckPerms and similar permission systems need plugin access to player data.
  • Economy - shop systems, virtual currency, player trading interfaces.
  • Anti-cheat - packet inspection and movement analysis require deep server access.
  • Database integration - storing player data in MySQL, managing cross-server inventories.
  • Custom GUIs - interactive menus, shops and configuration interfaces.
  • World protection - claim systems, grief prevention, region management.

Can you use both?

Yes. On Paper or Purpur, datapacks and plugins coexist. Use datapacks for recipes and loot, plugins for permissions and economy. They do not conflict as long as they do not modify the same thing (for example, two sources changing the same recipe).

Performance comparison

A datapack that runs a function every tick on every player (tick.json scheduled function) creates measurable overhead because it executes commands through the command parser. A plugin doing the same logic runs compiled Java and is 10 to 100 times faster.

For things that happen once (crafting, loot generation, advancement triggers), datapacks are fine. For things that happen every tick (player detection, area effects, scoreboards updating constantly), plugins are better.

Are datapacks safer than plugins?

Datapacks are sandboxed: they can only use Minecraft commands. Plugins have full system access and could theoretically be malicious. Only download plugins from trusted sources (Modrinth, SpigotMC, Hangar).

Do datapacks survive version updates?

Usually yes. The datapack format is stable between versions. Some functions using version-specific commands may break, but recipes and loot tables almost always carry over.

Can Fabric mods replace plugins?

For many use cases, yes. Fabric mods like LuckPerms, Chunky and BlueMap provide plugin-like functionality on Fabric servers. The ecosystem is smaller but growing.

Run datapacks and plugins together on HostValues Minecraft hosting with Paper or Purpur pre-installed.


Still stuck? Open a support ticket and our team will help you out.

Back to the blog