
LioLoader is a global datapack loader as well as a global resource pack loader that loads your packs in-game on world load.
This is useful for keeping packs outside of individual worlds and applying them consistently across worlds and servers you run locally.
Folder Layout
LioLoader uses a lioloader folder inside your instance:
- Datapacks
instance/lioloader/data/
- Resource packs
instance/lioloader/resourcepacks/
Anything placed in these folders will be discovered and added to Minecraft’s pack repositories.
Note: This mod is only needed server-side and needs Architectury API
CurseForge App Compatibility
For compatibility with the CurseForge app and standard modpack workflows, LioLoader also supports the default instance datapacks folder:
instance/datapacks/
Any datapacks placed in this folder are automatically discovered and loaded, just like packs in lioloader/data and is still affected by loading order defined in the loading order json file.
instance/lioloader/datapack_load_order.json
What Counts as a Pack?
Supported formats (both datapacks and resource packs)
LioLoader supports:
- Zip packs
- Any
*.zipinside the folder is treated as a pack.
- Any
- Normal pack folders
- A folder is treated as a pack if it contains:
pack.mcmeta- and the proper content folder:
- Datapacks:
data/ - Resource packs:
assets/
- Datapacks:
- A folder is treated as a pack if it contains:
- Datapacks inside nested folders
Datapacks can be stored inside other folders, as long as the folder you want treated as the pack root contains:
pack.mcmetadata/
Example (nested datapack structure):
instance/lioloader/data/somefolder/pack.mcmetainstance/lioloader/data/somefolder/data/...
This lets you organize datapacks however you want while still being detected.
Load Order / Priority
LioLoader supports explicit pack ordering using JSON files generated in your lioloader folder.
These files are automatically created if missing:
instance/lioloader/datapack_load_order.jsoninstance/lioloader/resourcepack_load_order.json
Format
Each file contains an order array:
{
"order": [
"highest_priority_example",
"second_priority_example",
"lowest_priority_example"
]
}
How ordering works
- Packs listed first are treated as higher priority.
- Packs not listed still load normally (Minecraft defaults).
- Packs with lower priority overwrite packs with higher priority that get read first.
Pack ID notes
- For zip packs, you can write the name with or without
.zip:my_pack.zipormy_pack
- For folder packs, use the folder name:
my_pack_folder
Quick Example
Put a datapack here:
instance/lioloader/data/MyGlobalPack/pack.mcmetainstance/lioloader/data/MyGlobalPack/data/<namespace>/...
Put a resource pack here:
instance/lioloader/resourcepacks/MyGlobalRP/pack.mcmetainstance/lioloader/resourcepacks/MyGlobalRP/assets/<namespace>/...
Then set priority:
instance/lioloader/datapack_load_order.jsoninstance/lioloader/resourcepack_load_order.json
![]()
Feel free to include LioLoader in any pack of your choosing!
External resources
Project members

Liopyu
Member

