Data packs in Horizon: what works and what doesn't yet

Horizon runs data pack functions, function tags, predicates and item modifiers, but not yet custom recipes, loot tables, advancements or world generation.

By: MC Horizon editors · Published · Updated

Data packs work in Horizon in part. Put them in a world’s datapacks folder as usual, and functions (macros and line continuation included), function tags like minecraft:load and minecraft:tick, predicates and item modifiers run in single player and open-to-LAN worlds, along with /function, /datapack and /reload. What isn’t applied from data packs yet: custom recipes, loot tables, advancements and world generation. For those, Horizon still reads the vanilla data it prepared, plus content mods.

So command-driven packs (minigames, utility functions, tick loops) have a good chance of working, while packs that mostly rewrite recipes or terrain don’t yet.

How to add a data pack

Exactly as in vanilla:

  1. Open the world’s folder: the game folder (~/.local/share/horizon, ~/Library/Application Support/horizon or %APPDATA%\horizon), then saves/<world>/.
  2. Put the pack in datapacks/, either as a folder or a .zip, with pack.mcmeta at its root.
  3. In the world, run /reload, then /datapack list to see it enabled.

Which packs are on is saved with the world. As always, back up a world before adding packs you haven’t tried.

datapacks/my-pack Works todayNot applied yet functions (.mcfunction, macros)function tags: load, tickpredicates · item modifiers/function /datapack /reloadcustom recipesloot tablesadvancementsworld generation
What Horizon reads from a world's data pack today, per its docs. Vanilla's own data is always on either way.

What works, in detail

Part of a data pack In Horizon today
Functions (.mcfunction), macros, line continuation Works
Function tags (minecraft:load, minecraft:tick) Works
Predicates Works
Item modifiers Works
/function, /datapack, /reload Works; pack choice kept with the world
Custom recipes Not applied yet
Loot tables Not applied yet
Advancements Not applied yet
World generation (dimensions, biomes, structures) Not applied yet

Commands themselves are a strong point. In the project’s first audit, every command ran as vanilla over 758 commands and 39,685 parsed inputs, and scoreboards and teams matched over 81,000 operations. Functions sit on top of that, so a function-heavy pack mostly needs the commands it calls to behave, and they’re among the best-tested parts of Horizon. How those comparisons are made is in differential harnesses.

Workarounds for recipes, loot and structures

Horizon’s content mods use vanilla 26.3’s own formats for recipes, loot tables and tags, and can also carry structures, template pools and structure sets, including adding pieces to vanilla’s villages. If your data pack is mostly recipes or loot, it can be rebuilt as a content mod with little more than a manifest and the right folder layout. The structure is in how to make a Horizon mod, and installing one is in how to install mods. One limit: content mods work in single player today; playing them together on a server is planned.

Testing a pack in five minutes

Before you build a world around a pack, check it on a throwaway copy:

  1. Copy the world, or create a new creative world for testing.
  2. Drop the pack in datapacks/, open the world and run /reload.
  3. Run /datapack list to confirm it’s enabled, then /function <namespace>:<name> for its entry points.
  4. If the pack relies on minecraft:load or minecraft:tick, watch for its welcome message or tick behaviour.
  5. Read logs/latest.log in the game folder for errors.

If commands run but nothing visible changes, check whether the pack’s real payload is recipes, loot tables or advancements: those parts are skipped for now. If it worked in vanilla 26.3 and fails in Horizon on functions or commands, that’s a bug worth reporting; Horizon launch errors shows what to include.

Data packs inside modpacks

Some Java “mods” are really a data pack in a jar. Horizon’s modpack porting tool handles those separately according to the GitHub docs: a 26.2 or 26.3 data pack found in a jar is upgraded to 26.3’s format and placed in a new-world-datapacks folder of the pack’s profile, and new worlds created there get it pre-selected. The Hub also lists work in progress on modpack world generation, including data-pack biomes and taller worlds, and says 26.2 data packs are upgraded to 26.3’s format.

On servers

The docs list single player and open-to-LAN worlds as what works today, and say nothing more for dedicated servers. If you host with horizon-server, test your pack there first and keep a backup handy. The hosting basics are in how to host a Horizon server.

Data packs vs resource packs

Don’t confuse the two: resource packs change how things look and sound, and Horizon supports most of what they can do. Data packs change rules and content. If you came here for textures, you want resource packs in Horizon or our resource pack list.

Sources

FAQ

Do data pack recipes work in Horizon?

Not yet. The docs list custom recipes, loot tables, advancements and world generation as not applied from data packs; Horizon reads those from the vanilla data it prepared and from content mods.

Does /reload work in Horizon?

Yes. The /function, /datapack and /reload commands work, and the choice of which packs are on is kept with the world.

Can I use data packs on a Horizon server?

The docs only list single player and open-to-LAN worlds as working today. If you run a server, test your pack there before relying on it.

Comments

Comments load when you scroll down to them.