Global Datapacks & Distribution
Install one DAI game globally, layer reusable addon datapacks around it, keep vanilla world-local datapack semantics, and ship companion resource packs without manual save assembly.
The Global Library
Minecraft Instance ├─ mods/ ├─ resourcepacks/ ├─ datapacks/ ← DAI 3.0 game/addon + update library └─ saves/
DAI creates and scans <gameDir>/datapacks/. It distinguishes the single game-owning main experience from reusable addon modules and leaves non-DAI packs unmanaged.
One Main Experience + Unlimited Addons
/datapacks/MyGame.zip MAIN
/datapacks/DamageIndicators.zip ADDON
/datapacks/ComicEffects.zip ADDON
↓
Launch MyGame
↓
Resolve owned save
↓
Copy/update main + enabled addons
↓
Disable conflicting DAI main packs
↓
One combined Minecraft resource reloadDAI does not impose an addon count limit. Addons can provide reusable systems without pretending to be a second game.
Declaring a Pack Role
{
"pack": { ... },
"dai": { "role": "main" }
}{
"pack": { ... },
"dai": { "role": "addon" }
}dai_experiences or dai_title_screens is treated as main; other undeclared DAI content is treated as addon. Packs without DAI content are unmanaged.3.0 Stable Identity + Automatic World Replacement
The global <gameDir>/datapacks/ directory is now an update source for DAI-managed packs already present in a save. DAI groups global and world copies by stable identity, chooses the current global winner, copies it into the world and removes stale versioned filenames.
{
"pack": {
"description": "AutoCraft MineShaft",
"min_format": [107, 1],
"max_format": 107
},
"dai": {
"role": "main",
"pack_id": "autocraft_mineshaft",
"version": "0.5.3"
}
}dai.pack_idStable logical identity. Keep it unchanged when the ZIP filename/version changes.dai.versionPreferred version ordering for multiple global copies of the same identity.DAI also accepts legacy identity aliases such as identity, id, companion_id and project_id; version aliases include pack_version and packVersion. For new datapacks, use pack_id + version.
data/ namespaces. If explicit version metadata is absent, a filename segment such as _v0.5.3_ is recognized; modification time and filename are only fallback tie-breakers.Global: AutoCraft_v0.5.3.zip
World: AutoCraft_v0.5.2.zip
↓ stable identity match
copy current global pack first
↓
remove / deselect stale world copy
↓
World: AutoCraft_v0.5.3.zipUnrelated world datapacks are never managed by this replacement pass. If Windows temporarily locks an old ZIP, DAI keeps the new copy available and deselects the stale one rather than failing the whole startup.
3.0 DAI Data Inside Other Mods
DAI content can also be distributed inside an installed mod JAR. The JAR uses ordinary Minecraft data paths, and DAI scans it early enough for native registry shells, MAIN-experience discovery, title screens and worldgen preparation.
mods/MyDAIGame.jar └─ data/my_dai_game/ ├─ dai_experiences/ ├─ dai_title_screens/ ├─ dai_items/ ├─ dai_entities/ └─ dai_worldgen/
Companion Resource Packs
Keep presentation separate. A complete DAI experience commonly ships as two ordinary Minecraft artifacts:
Experience_Datapack.zipLogic, functions, objectives, worldgen, state and authoritative gameplay.Experience_ResourcePack.zipTextures, models, sounds, sprites, UI art and presentation assets.DAI 3.0 can automatically select companion resource packs from the normal <gameDir>/resourcepacks/ directory. A pack is recognized when its asset namespace matches a namespace in DAI's global datapack library, or when the resource pack opts in explicitly.
{
"pack": {
"pack_format": 48,
"description": "My Experience Resource Pack"
},
"dai": {
"auto_enable": true,
"companion_id": "my_experience"
}
}MyExperience_Resource_v1.zip becomes MyExperience_Resource_v2.zip, DAI can replace the old owned file/... selection with the newest matching companion instead of asking the player to open the Resource Packs screen again.If several files claim the same companion identity, DAI selects the newest modified candidate. It also reconciles Minecraft's saved and live resource-pack selections and leaves unrelated user-selected packs untouched.
Official / Managed Resource Packs
Resource-pack components installed through DAI's Official Packs system use stable managed repository IDs and are registered as required packs. DAI persists those same identities into Minecraft's enabled resource-pack preferences so install/update cycles remain enabled without visiting the vanilla pack screen.
file/filename.zip.Official Combo Packs
The website's live /dai/api/packs.json is consumed by DAI's in-game Official Packs browser. A combo entry can present the datapack and resource pack as one install action while keeping them as separate downloadable components.
/dai/api/packs.pending.json
Once both public file IDs exist, copy the completed entry into packs.json. This prevents the in-game installer from exposing a button that cannot download anything.
TamaCrafti Example
TamaCrafti demonstrates the complete model: a datapack for persistent virtual-pet rules, care systems, farming, home construction and experience UI lifecycle, plus an HD resource pack for the pet, bedroom and interface presentation.
Datapack
Resource Pack
Website Card
Creator Workflow
- Choose whether the datapack is a main experience, standalone addon, or legacy/auto-detected pack.
- Set a stable
dai.pack_idanddai.versionfor version-safe updates. - Build and export a standard Minecraft datapack ZIP, or package the same
data/tree inside a mod JAR. - For standalone ZIP distribution, place it in DAI’s global
/datapackslibrary. - For a MAIN experience, test clean save creation, addon layering and resume.
- For a standalone ADDON, test it in a normal world and beside compatible MAIN experiences when practical.
- For a companion resource pack, set
dai.auto_enableand a stabledai.companion_idin the Creator Pack Setup screen. - Publish the datapack and any companion resource pack.
- Only add official installer metadata after public downloadable files exist.
Branding Assets Are Companion Assets
Application/window branding, FML early-loading assets and Minecraft/world-loading textures belong in the MAIN companion resource pack. Keep dai.companion_id stable across filenames so an updated version remains the same logical companion.