promotional bannermobile promotional banner
premium banner
Configure any mob to attack any other mob.

Description

This is a port of the original 1.12.2 CMT mod by ZeithComms (and me).

A lightweight, server-side mod that lets modpack makers and server owners configure any mob to target and attack any other living entity; including players, passive mobs, and modded entities.

Passive mobs can be given melee and ranged attacks to become able to attack.

Everything is controlled through simple JSON config files. No coding, no datapacks, no dependencies.

Features:

  • Any mob can target any mob — creepers vs sheep, zombies vs skeletons, cows vs chickens — you name it
  • Entity type tags — use #minecraft:raiders to target entire groups of mobs at once
  • Regex patterns — use ~minecraft:.*zombie.* to match mob IDs by pattern
  • Arrays — use ["minecraft:zombie", "#minecraft:skeletons"] to combine multiple matchers
  • Melee attacks for passive mobs — give sheep, cows, pigs, etc. a configurable melee attack
  • Ranged attacks with 10 projectile types — arrows, fireballs, wither skulls, shulker bullets, and more
  • Configurable damage for melee and ranged (arrow-type) attacks
  • Works with modded mobs out of the box — just use their registry ID (e.g. "modid:entity_name")
  • Multiple configs — use one file or split across many, single object or array format
  • Hot-reload — use the /cmt reload command to apply config changes without restarting the server
  • Zero dependencies — just drop it in and go (this mod does nothing without configuration, there is an example file included that will not do anything, but shows how to configure a target)

Getting Started

On first launch, the mod creates a config/CustomMobTargets/ folder containing:

  • targets.json — your config file (starts empty, add your entries here)
  • __examples.json — example configs for reference (NOT loaded — files starting with __ are ignored)
  • __README.txt — full documentation of every config field

Open targets.json and add your entries. Use /cmt reload in-game to apply changes instantly.


Entity Matching

The "entity" field supports 4 formats. These work for both the source mob and target mob fields, and can be freely combined.

Exact ID

Target one specific mob:

"entity": "minecraft:zombie"

Entity Type Tag

Target all mobs in a tag. Prefix with #:

"entity": "#minecraft:raiders"

This matches every mob in the minecraft:raiders tag (pillager, vindicator, evoker, ravager, witch, illusioner). See the tag list below for all available tags.

Regex Pattern

Match mob IDs by pattern. Prefix with ~:

"entity": "~minecraft:.*zombie.*"

This matches any entity whose ID contains "zombie" — zombie, zombie_villager, etc. The pattern is matched against the full registry ID.

Array

Match any of the above. Mix and match:

"entity": ["minecraft:zombie", "#minecraft:skeletons", "~modid:.*golem.*"]

Matches if the entity matches ANY element in the array. Each element can be an exact ID, tag, or regex.


Available Vanilla Entity Type Tags (1.20.1)

  • #minecraft:raiders — pillager, vindicator, evoker, ravager, witch, illusioner
  • #minecraft:skeletons — skeleton, stray, wither_skeleton
  • #minecraft:beehive_inhabitors — bee
  • #minecraft:axolotl_always_hostiles — drowned, guardian, elder_guardian
  • #minecraft:axolotl_hunt_targets — tropical_fish, pufferfish, salmon, cod, squid, glow_squid
  • #minecraft:frog_food — slime, magma_cube
  • #minecraft:freeze_hurts_extra_types — strider, blaze, magma_cube
  • #minecraft:freeze_immune_entity_types — stray, polar_bear, snow_golem, wither
  • #minecraft:powder_snow_walkable_mobs — rabbit, endermite, fox, etc.
  • #minecraft:fall_damage_immune — iron_golem, shulker, etc.
  • #minecraft:dismounts_underwater — all standard mounts
  • #minecraft:arrows — arrow, spectral_arrow
  • #minecraft:impact_projectiles — arrow, fireball, etc.
  • #forge:bosses — ender_dragon, wither

Mods can add their own entity type tags. You can also create custom tags via datapacks.


Config Examples

All raiders attack iron golems (tag example):

[
  {
    "entity": "#minecraft:raiders",
    "targets": [
      { "entity": "minecraft:iron_golem", "priority": 2, "check_sight": true }
    ]
  }
]

Any zombie variant attacks villagers (regex example):

[
  {
    "entity": "~minecraft:.*zombie.*",
    "targets": [
      { "entity": "minecraft:villager", "priority": 2, "check_sight": true }
    ]
  }
]

Zombies and skeletons both attack creepers (array example):

[
  {
    "entity": ["minecraft:zombie", "minecraft:skeleton"],
    "targets": [
      { "entity": "minecraft:creeper", "priority": 2, "check_sight": true }
    ]
  }
]

Sheep shoots arrows at cows (ranged attack example):

[
  {
    "entity": "minecraft:sheep",
    "ranged": { "enabled": true, "damage": 2.0, "projectile": "arrow" },
    "targets": [
      { "entity": "minecraft:cow", "priority": 2, "check_sight": true }
    ]
  }
]

Available Projectiles

  • arrow — Standard arrow (default, damage configurable)
  • spectral_arrow — Arrow that applies Glowing effect (damage configurable)
  • small_fireball — Blaze-style fireball (sets target on fire)
  • large_fireball — Ghast-style fireball (creates explosion, damage = explosion power)
  • snowball — Snowball (knockback only, 3 damage to Blazes)
  • egg — Thrown egg (knockback, may spawn chicken)
  • wither_skull — Wither skull (applies Wither effect)
  • dragon_fireball — Dragon fireball (creates area effect cloud)
  • shulker_bullet — Homing shulker bullet (applies Levitation effect)
  • llama_spit — Llama spit projectile

FAQ

Does this work with modded mobs? Yes. Use the mod's registry ID, e.g. "alexsmobs:grizzly_bear" or "twilightforest:naga". Tags and regex also work with modded entity IDs.

Can I make mobs target players? Yes. Use "minecraft:player" as the target entity.

Can I use multiple config files? Yes. Any .json file in the CustomMobTargets folder is loaded (except files starting with __). Each file can contain a single entry or an array of entries.

Can I target a whole group of mobs without listing them all? Yes. Use entity type tags (#minecraft:raiders) or regex patterns (~minecraft:.*zombie.*). You can also create custom tags with datapacks.

Server-side only? Yes. Only needs to be installed on the server. Clients don't need it. You can also use it for singleplayer just fine.

Link to original