Skip to content

Abloom API Datapack Guide

MagicalAlexey edited this page Jul 5, 2026 · 3 revisions

Abloom API Datapack Guide

Overview

This guide explains how to create datapacks for the Abloom API mod. Datapacks allow you to configure elemental weapons, armor resistances, and mob elemental properties without modifying code.

Directory Structure

your_datapack.zip
└── data
    └── abloom
        ├── damage_type/           # Custom damage types (optional)
        ├── elemental_weapons/     # Elemental weapon configurations
        ├── armor_resistances/     # Armor resistance configurations
        └── tags
            └── entity_type
                └── element_resistance/  # Mob elemental properties

Elemental Weapons Configuration

Elemental weapons are defined in data/abloom/elemental_weapons/.

File Format

Each weapon configuration is a JSON file with the following structure:

{
  "item": "modid:item_name",
  "element": "ELEMENT_NAME",
  "accumulation_multiplier": 1.0
}

Parameters

Parameter Type Required Description
item string Yes Registry name of the item (e.g., minecraft:iron_sword)
element string Yes One of the 13 element types (see below)
accumulation_multiplier float No Multiplier for accumulation points (default: 1.0)

Element Types

Available elements:

  • FIRE - Fire damage
  • PHYSICAL - Physical damage
  • WIND - Wind damage
  • EARTH - Earth damage
  • WATER - Water damage
  • ICE - Ice damage
  • ELECTRIC - Electric damage
  • ENERGY - Energy damage
  • NATURAL - Natural damage
  • QUANTUM - Quantum damage
  • ETHER - Ether damage
  • LIGHT - Light damage
  • SHADOW - Shadow damage

Example Files

data/abloom/elemental_weapons/iron_sword_fire.json

{
  "item": "minecraft:iron_sword",
  "element": "FIRE",
  "accumulation_multiplier": 3.0
}

This makes iron swords deal fire damage and accumulate resonance 3x faster.

data/abloom/elemental_weapons/diamond_axe_wind.json

{
  "item": "minecraft:diamond_axe",
  "element": "WIND",
  "accumulation_multiplier": 5.0
}

This makes diamond axes deal wind damage and accumulate resonance 5x faster.


Armor Resistances Configuration

Armor resistances are defined in data/abloom/armor_resistances/.

File Format

{
  "item": "modid:armor_name",
  "resistances": {
    "ELEMENT_NAME": 0.0,
    "ANOTHER_ELEMENT": 0.1
  }
}

Parameters

Parameter Type Required Description
item string Yes Registry name of the armor piece
resistances object Yes Map of element → resistance value

Resistance Values

  • 0.0 - No resistance (default)
  • 0.5 - 50% resistance (half damage)
  • -0.5 - 50% weakness (double damage)
  • Range: -0.99 to 0.99

Example Files

data/abloom/armor_resistances/leather_helmet.json

{
  "item": "minecraft:leather_helmet",
  "resistances": {
    "ELECTRIC": 0.02,
    "ICE": 0.01
  }
}

This gives leather helmets slight resistance to electric and ice damage.

data/abloom/armor_resistances/chainmail_chestplate.json

{
  "item": "minecraft:chainmail_chestplate",
  "resistances": {
    "WIND": 0.04
  }
}

This gives chainmail chestplates resistance to wind damage.


Mob Elemental Properties

Mob elemental properties are defined using entity type tags in data/abloom/tags/entity_type/element_resistance/.

Directory Structure

data/abloom/tags/entity_type/element_resistance/
├── fire/
│   ├── resistance.json    # Mobs resistant to fire
│   └── weakness.json      # Mobs weak to fire
├── water/
│   ├── resistance.json
│   └── weakness.json
└── [other elements]/
    ├── resistance.json
    └── weakness.json

File Format

{
  "replace": false,
  "values": [
    "minecraft:entity_type_1",
    "minecraft:entity_type_2"
  ]
}

Parameters

Parameter Type Required Description
replace boolean No Whether to replace existing values (default: false)
values array Yes Array of entity type registry names

Example Files

data/abloom/tags/entity_type/element_resistance/fire/resistance.json

{
  "replace": false,
  "values": [
    "minecraft:blaze",
    "minecraft:magma_cube",
    "minecraft:wither",
    "minecraft:ender_dragon",
    "minecraft:strider",
    "minecraft:zombified_piglin",
    "minecraft:wither_skeleton",
    "minecraft:ghast",
    "minecraft:warden",
    "minecraft:hoglin",
    "minecraft:piglin",
    "minecraft:piglin_brute",
    "minecraft:zoglin",
    "minecraft:husk",
    "minecraft:camel"
  ]
}

This makes all listed mobs resistant to fire damage (50% reduction).

data/abloom/tags/entity_type/element_resistance/fire/weakness.json

{
  "replace": false,
  "values": [
    "minecraft:snow_golem",
    "minecraft:dolphin",
    "minecraft:zombie",
    "minecraft:zombie_villager",
    "minecraft:drowned",
    "minecraft:stray",
    "minecraft:bogged"
  ]
}

This makes all listed mobs weak to fire damage (50% increase).


Loading Datapacks

  1. Place your datapack in .minecraft/saves/[worldname]/datapacks/
  2. Reload with /reload command
  3. Check logs for confirmation messages:
    • Loaded X elemental weapon configurations from datapacks
    • Loaded X armor resistance configurations from datapacks

Common Issues

Weapon not dealing elemental damage

  • Check that the item registry name is correct
  • Verify the element value is one of the 13 supported types
  • Ensure the datapack is loaded (check /reload logs)

Armor not providing resistance

  • Verify the item registry name matches the exact armor piece
  • Check that resistances values are within -0.99 to 0.99
  • Ensure resistance values are positive for resistance, negative for weakness

Mobs not having elemental properties

  • Verify entity type registry names are correct
  • Check that tag files are in the correct subdirectory (element_resistance/[element]/)
  • Ensure values array contains valid entity type IDs

Advanced Usage

Multiple Elements on One Item

You can create multiple datapack files for the same item with different elements:

// fire_sword.json
{
  "item": "minecraft:iron_sword",
  "element": "FIRE",
  "accumulation_multiplier": 3.0
}

// physical_sword.json
{
  "item": "minecraft:iron_sword",
  "element": "PHYSICAL",
  "accumulation_multiplier": 5.0
}

Custom Mod Integration

To make items from your own mod elemental:

{
  "item": "mymod:dragon_sword",
  "element": "FIRE",
  "accumulation_multiplier": 4.0
}

Negative Resistance (Weakness)

To make mobs take more damage from specific elements:

{
  "item": "minecraft:iron_chestplate",
  "resistances": {
    "FIRE": -0.2
  }
}

This makes the chestplate take 20% more fire damage (weakness).


Clone this wiki locally