Datapacks
FFEntityDirt has no datapack file format of its own. Instead, tags let you tweak which blocks and mobs take part, and which wound each weapon or mob leaves, without touching the config. Add entries with "replace": false to extend them, and use /reload after changing a datapack.
| Tag | Type | What it does | Ships with |
|---|---|---|---|
ffentitydirt:dirty_surfaces |
block | Extra natural blocks that leave dirt, on top of the vanilla ground tags in the dirt whitelist | Gravel, clay, farmland, dirt paths, soul sand and soil, calcite, dripstone, sculk and sculk catalysts, moss carpet, magma and end stone |
ffentitydirt:sticky_surfaces |
block | Blocks that smear the feet in their color, faster than walking and even standing still (used by the sticky.blocks setting) |
Honey and slime blocks |
ffentitydirt:mining_blocks |
block | Extra blocks that fling specks when broken, on top of overworld stone and #minecraft:dirt |
Farmland, dirt paths, short and tall grass, and ferns |
ffentitydirt:clean_surfaces |
block | Blocks that never leave dirt | Ice, wool, carpets and glass |
ffentitydirt:never_dirty |
entity type | Mobs that never get dirty (or snowy) | Empty |
ffentitydirt:never_damaged |
entity type | Mobs that never get damage marks | Empty |
Files live at data/ffentitydirt/tags/block/<name>.json and data/ffentitydirt/tags/entity_type/<name>.json.
Wound tags
Each wound has an item tag and an entity type tag, both named ffentitydirt:wounds/<wound>. A melee weapon in the item tag leaves that wound. A projectile in the entity type tag leaves it, and so does a mob that hits with an empty hand (or an item no tag matched). When something is in several wound tags, the trident's three holes beat everything, then the crush, then the rest. Weapons in no tag fall back to Better Combat's weapon type, then words in the item's ID, then a slash for anything with attack damage and a bruise for anything without (all in the damage.wounds settings).
| Wound | Looks like | Items that ship in it | Mobs and projectiles that ship in it |
|---|---|---|---|
slash | One long cut | #minecraft:swords | None |
gash | A short, thick, ragged cut with a few drops | #minecraft:axes | None |
cleave | A long, heavy cut | None (claymores and friends come from Better Combat or their names) | None |
stab | A deep hole with a drip running down | #minecraft:spears (1.21.11), #c:tools/spear, #c:tools/knife, #c:tools/knives | None |
puncture | A round hole | #minecraft:pickaxes | #minecraft:arrows |
triple_puncture | Three holes side by side | Trident | Thrown trident |
bruise | A wide, soft, purplish mark | #minecraft:shovels | Goat |
crush | A dark crater with spatter | Mace, #c:tools/mace | Iron golem, warden, ravager |
scratch | Two thin parallel lines | #minecraft:hoes, shears, #c:tools/shear | None |
claw | Three parallel rakes | None | Cat, ocelot, polar bear, panda |
bite | Two rows of tooth marks | None | #minecraft:zombies, wolf, spider, cave spider, phantom, fox, silverfish, endermite, axolotl, dolphin |
gore | Two tusk tears | None | Hoglin, zoglin |
lash | One long, thin welt | None (whips come from their names) | None |
sting | A tiny dot in a swollen patch | None | Bee |
splatter | A splat with droplets | None | Llama spit, slime, magma cube |
Mods can add their own wounds with the API; theirs use <their namespace>:wounds/<wound> tags the same way.
Example: a modded weapon
Make a mod's war fork leave three holes like a trident, in data/ffentitydirt/tags/item/wounds/triple_puncture.json:
{
"replace": false,
"values": [
{ "id": "somemod:war_fork", "required": false }
]
}
"required": false keeps the datapack loading when that mod is not installed.
Example: spotless mobs
Keep armor stands and iron golems spotless:
{
"replace": false,
"values": [
"minecraft:armor_stand",
"minecraft:iron_golem"
]
}
Save it as data/ffentitydirt/tags/entity_type/never_dirty.json in your datapack.
Notes
never_dirtyalso keeps drips off those mobs, unless a player changes theirparticlePaint.entityBlacklistclient setting.- Snow follows the dirt entity lists and the
never_dirtytag. - Every config list also accepts any block or entity tag, so your own tags work there too. For example, put
#c:glass_blocksinmining.blacklistto keep glass from leaving specks. - Wound shapes themselves come from code (the modding API); datapacks pick which wound things leave.
- There is no datapack support for rain, snow, powder snow, lava, cauldrons, explosions or drips beyond these tags and the config. Which particles paint is a client setting, since drips are painted on each player's own game.