These two get mixed up constantly because both are "packs" you add to a world, but they do opposite jobs. A datapack changes the GAME - recipes, loot tables, advancements, functions, world generation - and runs on the server. A resource pack changes the LOOK - textures, sounds, models, the menu - and runs on each player’s client. Neither needs a mod loader; both are vanilla features that work on any server type.
Datapacks (server-side game changes)
- 1Find one that matches your exact Minecraft version - Modrinth and vanillatweaks.net are good sources. A mismatched datapack simply won’t load.
- 2In the Files tab, drop the datapack .zip into your world’s datapacks folder (world/datapacks/).
- 3Run /reload in the console, or /datapack list to confirm it’s enabled (and /datapack enable "file/<name>" if needed).
- 4Datapacks apply to the world they’re in, so put them in the right world folder. Take a backup first if a datapack changes world generation.
Resource packs (client-side visuals)
Because a resource pack runs on the client, the server doesn’t store it - it points players at a download URL and they fetch it on join. You set two lines in server.properties (Files tab, or the World tab): resource-pack with a DIRECT link to the .zip, and resource-pack-sha1 with the file’s SHA-1 hash (so the client caches it correctly). Add require-resource-pack=true to make it mandatory.
- 1Host the pack somewhere that serves a direct .zip download - the link must end at the file, not a preview page.
- 2Set resource-pack=<that URL> and resource-pack-sha1=<sha1 of the zip> in server.properties.
- 3Restart. Players are prompted (or required) to download it when they connect.
The gotchas
Datapacks: must match the MC version, and live inside a specific world. Resource packs: the URL has to be publicly reachable and a direct download, and a wrong or missing SHA-1 makes clients re-download every join. When in doubt, a backup before adding a datapack means a bad one is a one-click undo.