Skip to main content

Presets

Presets are convenience bundles that configure multiple settings at once to replicate vanilla mob behaviors. They support all modules and use intelligent deep-merging so you only need to specify what you want to change.

Basic Usage

my_skeleton:
Model: bone_knight
Preset: skeleton

That's it! The preset handles AnimationStyle, Hitbox, Traits, AIGoals, AITargets, Equipment, and more automatically.

Deep-Merge System

Presets use intelligent merging so you can override just the parts you need:

Scalars (Health, Damage, etc.)

Entity values override preset values.

tank_zombie:
Model: armored_zombie
Preset: zombie
Health: 100 # Override: 100 instead of preset's 20
# Damage stays at preset's 3

Maps (Hitbox, Equipment, etc.)

Maps are deep-merged - your values override specific keys while keeping others.

tall_zombie:
Model: tall_zombie
Preset: zombie
Hitbox:
height: 2.5 # Override height
# copy: minecraft:zombie still applies from preset

Lists (AIGoals, Traits, etc.)

Lists replace by default - if you define AIGoals, the preset's goals are ignored.

melee_skeleton:
Model: bone_warrior
Preset: skeleton
AIGoals: # Replace preset's ranged goals
- float
- meleeattack
- randomstroll

Appending to Lists

Use Key+: to append to a preset's list instead of replacing:

fire_zombie:
Model: fire_zombie
Preset: zombie
Traits+: # Append to preset's traits
- fireimmune # Result: [sunburn, fireimmune]

Merge Behavior Summary

TypeBehaviorExample
ScalarOverrideHealth: 100 replaces preset's health
MapDeep-mergeHitbox.height overrides, Hitbox.copy kept
ListReplaceAIGoals: replaces preset's goals entirely
List with +AppendTraits+: adds to preset's traits

Built-in Presets

All built-in presets include proper Hitbox.copy to match vanilla mob dimensions.

skeleton

Ranged bow attack, burns in sun.

Preset: skeleton

Includes:

  • AnimationStyle: Skeleton
  • Health: 20, Damage: 2
  • Hitbox: copy from minecraft:skeleton
  • Traits: sunburn
  • AIGoals: rangedbowattack, fleesun, restrictsun, etc.
  • Equipment: bow in main hand

zombie

Melee attack, burns in sun, breaks doors.

Preset: zombie

Includes:

  • AnimationStyle: Zombie
  • Health: 20, Damage: 3
  • Hitbox: copy from minecraft:zombie
  • Traits: sunburn
  • AIGoals: breakdoor, meleeattack, fleesun, restrictsun, etc.

creeper

Swells and explodes near players.

Preset: creeper

Includes:

  • AnimationStyle: Creeper
  • Health: 20
  • Hitbox: copy from minecraft:creeper
  • AIGoals: swell (radius=3, fuse=30), meleeattack, etc.

spider

Climbs walls, leaps at targets.

Preset: spider

Includes:

  • AnimationStyle: Spider
  • Health: 16, Damage: 2
  • Hitbox: copy from minecraft:spider
  • Traits: climbing
  • AIGoals: leapattarget, meleeattack, etc.

cow

Passive, temptable with wheat.

Preset: cow

Includes:

  • AnimationStyle: Cow
  • Health: 10
  • Hitbox: copy from minecraft:cow
  • AIGoals: panic, tempt (wheat), etc.
  • No attack targets

pig

Passive, temptable with carrot.

Preset: pig

Includes:

  • AnimationStyle: Pig
  • Health: 10
  • Hitbox: copy from minecraft:pig
  • AIGoals: panic, tempt (carrot), etc.

chicken

Passive, temptable with seeds.

Preset: chicken

Includes:

  • AnimationStyle: Chicken
  • Health: 4
  • Hitbox: copy from minecraft:chicken
  • AIGoals: panic, tempt (wheat_seeds), etc.

wolf

Tameable, attacks skeletons.

Preset: wolf

Includes:

  • AnimationStyle: Wolf
  • Health: 8, Damage: 4
  • Hitbox: copy from minecraft:wolf
  • AIGoals: sitwhenordered, followowner, leapattarget, meleeattack, etc.
  • AITargets: ownerhurtby, ownerhurt, skeleton

blaze

Fire immune, ranged attacks.

Preset: blaze

Includes:

  • AnimationStyle: Humanoid
  • Health: 20, Damage: 6
  • Hitbox: copy from minecraft:blaze
  • Traits: fireimmune
  • AIGoals: rangedattack, etc.

witch

Ranged potion attacks.

Preset: witch

Includes:

  • AnimationStyle: Villager
  • Health: 26
  • Hitbox: copy from minecraft:witch
  • AIGoals: rangedattack, etc.

slime

Bouncy melee attacker.

Preset: slime

Includes:

  • AnimationStyle: Slime
  • Health: 16, Damage: 4
  • Hitbox: copy from minecraft:slime
  • AIGoals: meleeattack, randomstroll, etc.

guardian

Water creature with ranged attack.

Preset: guardian

Includes:

  • AnimationStyle: Humanoid
  • Health: 30
  • Hitbox: copy from minecraft:guardian
  • Traits: waterbreathing
  • AIGoals: rangedattack, randomswim, etc.

enderman

Tall hostile mob.

Preset: enderman

Includes:

  • AnimationStyle: Humanoid
  • Health: 40, Damage: 7
  • Hitbox: copy from minecraft:enderman
  • AIGoals: meleeattack, etc.

Examples

Quick Vanilla-like Mob

bone_warrior:
Model: skeleton_knight
Preset: skeleton

Override Just Health

tank_zombie:
Model: armored_zombie
Preset: zombie
Health: 100 # 100 HP instead of 20

Custom Hitbox Height

tall_skeleton:
Model: tall_skeleton
Preset: skeleton
Hitbox:
height: 2.8 # Taller, but keeps skeleton width

Add Traits (Append)

fire_spider:
Model: fire_spider
Preset: spider
Traits+: # Append to [climbing]
- fireimmune # Result: [climbing, fireimmune]

Replace AI Goals

melee_skeleton:
Model: bone_warrior
Preset: skeleton
AIGoals: # Replace bow with melee
- float
- meleeattack
- wateravoidingrandomstroll
- lookatplayer

Complex Override

elite_zombie:
Model: elite_zombie
Preset: zombie
Health: 80
Damage: 8
Hitbox:
height: 2.2 # Taller
Traits+: # Add to sunburn
- fireimmune
Equipment: # Replace equipment
mainhand: minecraft:iron_sword
head: minecraft:iron_helmet

Creating Custom Presets

Create custom presets by adding YAML files in the presets directory:

Location: config/modengine/entities/presets/

Example: config/modengine/entities/presets/custom.yml

# Custom preset supporting ALL modules
elite_guard:
description: "Heavily armored melee fighter"
AnimationStyle: Humanoid
Health: 50
Damage: 8
Hitbox:
copy: minecraft:iron_golem
AIGoals:
- float
- meleeattack{speed=1.2}
- movetowardstarget{speed=1.0}
- wateravoidingrandomstroll
- lookatplayer
AITargets:
- hurtbytarget
- nearestplayer
Equipment:
mainhand: minecraft:iron_sword
head: minecraft:iron_helmet
chest: minecraft:iron_chestplate

# Another preset
tank:
description: "Slow but tanky mob"
Health: 100
Damage: 10
Hitbox:
width: 1.2
height: 2.0
AIGoals:
- meleeattack{speed=0.6}
- wateravoidingrandomstroll{speed=0.4}

Then use them:

my_guard:
Model: guard_model
Preset: elite_guard

my_tank:
Model: tank_model
Preset: tank
Health: 200 # Override preset's 100

Preset Priority

When multiple sources define presets:

  1. User presets in config/modengine/entities/presets/ (highest priority)
  2. Built-in presets shipped with ModEngine

User presets with the same name as built-in presets will override them.