Skip to content

Complete Keyframe Reference

ActionEffect timelines use keyframes to define attack sequences. Titan supports 23 Cobblemon core keyframes and 8 Titan-specific keyframes.

KeyframeCategoryPurposePriority
add_holdsControlLock titan⭐⭐⭐
remove_holdsControlUnlock titan⭐⭐⭐
stop_movementTitanFreeze titan⭐⭐⭐
define_obbTitan OBBCreate hitbox⭐⭐⭐
telegraph_obbTitan OBBShow warning⭐⭐⭐
damage_obbTitan OBBDeal damage⭐⭐⭐
pauseTimingWait⭐⭐⭐
animationVisualPlay animation⭐⭐
entity_particlesVisualSpawn particles⭐⭐
soundAudioPlay sound⭐⭐
set_vulnerableTitanSet vulnerability⭐⭐
sequenced_damageTitanMulti-hit damage
repeating_damage_obbTitanDamage over time
delayed_damage_obbTitanDelayed damage

Priority:

  • ⭐⭐⭐ Essential (used in most attacks)
  • ⭐⭐ Common (used frequently)
  • ⭐ Situational (used for specific mechanics)

Creates oriented bounding box for damage/telegraph.

Required Properties:

  • name - Unique OBB identifier
  • shape - OBB shape: SPHERE, CONE, CYLINDER, ARC, BOX, CAPSULE
  • positioning - Placement mode: IN_FRONT, AT_TARGET, AT_USER
  • halfExtents - Size: {x, y, z}

Optional Properties:

  • distance - Distance in front (only for IN_FRONT)
  • includePitch - Include vertical rotation (default: false)

Example:

{
"type": "define_obb",
"name": "fireball",
"shape": "SPHERE",
"positioning": "IN_FRONT",
"distance": "5.0",
"halfExtents": {"x": "3.0", "y": "3.0", "z": "3.0"},
"includePitch": true
}

See: OBB System →


Shows ground warning markers for defined OBB.

Required Properties:

  • name - OBB name (must be defined first)
  • telegraphType - Warning level: WARNING, DANGER, CRITICAL

Optional Properties:

  • duration - Override auto-calculated duration (milliseconds)

Example:

{
"type": "telegraph_obb",
"name": "fireball",
"telegraphType": "DANGER"
}

Duration: Auto-calculated based on OBB size (1.0-4.0 seconds)

See: Telegraph System →


Applies damage to entities inside defined OBB.

Required Properties:

  • name - OBB name (must be defined first)
  • damage - Damage amount

Optional Properties:

  • damageType - Type: PHYSICAL, FIRE, ELECTRIC, WATER, EXPLOSION, MAGIC
  • knockback - Knockback strength (default: 0.0)
  • condition - MoLang condition for execution

Example:

{
"type": "damage_obb",
"name": "fireball",
"damage": "20.0",
"damageType": "FIRE",
"knockback": "1.5"
}

Freezes titan in place for specified duration.

Required Properties:

  • duration - Duration in milliseconds

Example:

{
"type": "stop_movement",
"duration": "2500"
}

Use Cases:

  • Lock titan during attack
  • Prevent movement during windup
  • Create vulnerability window

Note: Always use with add_holds to prevent other actions.


Sets titan’s vulnerability state.

Required Properties:

  • vulnerabilityState - State: NORMAL, RECOVERING, EXHAUSTED
  • duration - Duration in milliseconds

Example:

{
"type": "set_vulnerable",
"vulnerabilityState": "EXHAUSTED",
"duration": "6000"
}

Damage Multipliers:

  • NORMAL - 1.0x (default)
  • RECOVERING - 1.3x
  • EXHAUSTED - 1.8x

See: Vulnerability System →


Deals damage in multiple pulses.

Required Properties:

  • damage - Damage per pulse
  • pulses - Number of pulses
  • interval - Interval between pulses (milliseconds)

Optional Properties:

  • damageType - Damage type
  • radius - Damage radius (default: target only)

Example:

{
"type": "sequenced_damage",
"damage": "5.0",
"pulses": 4,
"interval": "500",
"radius": "6.0"
}

Total: 5 damage × 4 pulses = 20 damage over 1.5 seconds


Creates damage-over-time field using OBB.

Required Properties:

  • name - OBB name
  • damage - Damage per tick
  • interval - Damage interval (milliseconds)
  • duration - Total duration (milliseconds)

Optional Properties:

  • damageType - Damage type

Example:

{
"type": "repeating_damage_obb",
"name": "fire_field",
"damage": "3.0",
"interval": "1000",
"duration": "8000",
"damageType": "FIRE"
}

Total: 3 damage/second × 8 seconds = 24 damage


Applies OBB damage after delay.

Required Properties:

  • name - OBB name
  • damage - Damage amount
  • delay - Delay before damage (milliseconds)

Optional Properties:

  • damageType - Damage type
  • knockback - Knockback strength

Example:

{
"type": "delayed_damage_obb",
"name": "time_bomb",
"damage": "35.0",
"delay": "3000",
"damageType": "EXPLOSION",
"knockback": "2.5"
}

Use Cases:

  • Time bombs
  • Delayed explosions
  • Trap mechanics

Prevents entity from performing actions.

Required Properties:

  • holds - Array of hold types: ["effects"], ["movement"], ["all"]

Example:

{
"type": "add_holds",
"holds": ["effects"]
}

Hold Types:

  • effects - Prevents using other ActionEffects
  • movement - Prevents movement
  • all - Prevents all actions

Always pair with remove_holds!


Removes previously added holds.

Required Properties:

  • holds - Array of hold types to remove

Example:

{
"type": "remove_holds",
"holds": ["effects"]
}

Waits for specified duration.

Required Properties:

  • pause - Duration in seconds (float)

Example:

{
"type": "pause",
"pause": 1.5
}

Use Cases:

  • Attack windup
  • Recovery lag
  • Timing control

Plays entity animation.

Required Properties:

  • animation - Animation name

Optional Properties:

  • speed - Playback speed (default: 1.0)

Example:

{
"type": "animation",
"animation": "special",
"speed": 1.2
}

Common Animations:

  • physical - Physical attack
  • special - Special attack
  • status - Status move
  • battle_idle - Return to idle

Stops current animation.

Example:

{
"type": "stop_animation"
}

Spawns particles at entity position.

Required Properties:

  • particleType - Minecraft particle ID

Optional Properties:

  • count - Number of particles (default: 10)
  • spread - Spread radius (default: 0.5)

Example:

{
"type": "entity_particles",
"particleType": "minecraft:flame",
"count": 30,
"spread": {"x": 1.5, "y": 1.0, "z": 1.5}
}

Spawns particles at world position.

Required Properties:

  • particleType - Particle ID
  • position - World coordinates: {x, y, z}

Optional Properties:

  • count - Particle count
  • spread - Spread amount

Example:

{
"type": "world_particles",
"particleType": "minecraft:explosion",
"position": {"x": 100, "y": 64, "z": 200},
"count": 50
}

Creates line of particles between two points.

Required Properties:

  • particleType - Particle ID
  • start - Start position
  • end - End position

Optional Properties:

  • count - Particles along line (default: 20)

Example:

{
"type": "particle_line",
"particleType": "minecraft:electric_spark",
"start": "q.user_position",
"end": "q.target_position",
"count": 50
}

Plays sound at entity position.

Required Properties:

  • sound - Minecraft sound ID

Optional Properties:

  • volume - Volume (0.0-2.0, default: 1.0)
  • pitch - Pitch (0.5-2.0, default: 1.0)

Example:

{
"type": "sound",
"sound": "entity.generic.explode",
"volume": 1.5,
"pitch": 0.8
}

Plays sound at world position.

Required Properties:

  • sound - Sound ID
  • position - World coordinates

Optional Properties:

  • volume - Volume
  • pitch - Pitch

Example:

{
"type": "world_sound",
"sound": "entity.lightning_bolt.thunder",
"position": {"x": 100, "y": 64, "z": 200},
"volume": 2.0
}

Applies status effect to target.

Required Properties:

  • effect - Potion effect ID
  • duration - Duration in ticks

Optional Properties:

  • amplifier - Effect level (default: 0)

Example:

{
"type": "apply_status",
"effect": "slowness",
"duration": 100,
"amplifier": 1
}

Removes status effect from target.

Required Properties:

  • effect - Effect ID to remove

Example:

{
"type": "remove_status",
"effect": "slowness"
}

Shakes target’s screen.

Required Properties:

  • intensity - Shake strength (0.0-1.0)
  • duration - Duration in ticks

Example:

{
"type": "screen_shake",
"intensity": 0.6,
"duration": 20
}

Flashes target’s screen.

Required Properties:

  • color - Hex color code
  • duration - Duration in ticks

Example:

{
"type": "flash_screen",
"color": "#FF0000",
"duration": 10
}

Executes custom MoLang code.

Required Properties:

  • script - MoLang expression/script

Example:

{
"type": "molang_script",
"script": "q.damage_all(15.0, 8.0, 'FIRE');"
}

See: MoLang Reference →


Sets MoLang variable.

Required Properties:

  • name - Variable name
  • value - Variable value

Example:

{
"type": "set_variable",
"name": "combo_count",
"value": 1
}

Conditional keyframe execution.

Required Properties:

  • condition - MoLang condition
  • timeline - Keyframes to execute if true

Optional Properties:

  • else_timeline - Keyframes if false

Example:

{
"type": "conditional",
"condition": "q.target_distance <= 5.0",
"timeline": [
{"type": "damage_obb", "name": "close", "damage": "25.0"}
],
"else_timeline": [
{"type": "damage_obb", "name": "far", "damage": "15.0"}
]
}

Teleports entity to position.

Required Properties:

  • position - Target position: {x, y, z}

Example:

{
"type": "teleport",
"position": {"x": 100, "y": 64, "z": 200}
}

Dashes entity in direction.

Required Properties:

  • direction - Direction vector or "FORWARD", "BACKWARD"
  • distance - Distance in blocks

Example:

{
"type": "dash",
"direction": "FORWARD",
"distance": 8.0
}

Leaps entity toward target.

Required Properties:

  • target - Target position or "TARGET_ENTITY"
  • height - Jump arc height

Example:

{
"type": "leap",
"target": "TARGET_ENTITY",
"height": 5.0
}

Spawns entity at position.

Required Properties:

  • entityType - Entity ID
  • position - Spawn position

Optional Properties:

  • count - Number to spawn (default: 1)

Example:

{
"type": "spawn_entity",
"entityType": "minecraft:zombie",
"position": "q.user_position",
"count": 3
}

Removes target entity.

Example:

{
"type": "remove_entity"
}

Broadcasts message to players.

Required Properties:

  • message - Message text

Example:

{
"type": "broadcast_message",
"message": "The titan grows enraged!"
}

{
"timeline": [
{"type": "add_holds", "holds": ["effects"]},
{"type": "animation", "animation": "physical"},
{"type": "pause", "pause": 0.3},
{"type": "define_obb", "name": "slash", "shape": "ARC", "positioning": "IN_FRONT", "distance": "2.0", "halfExtents": {"x": "3.0", "y": "2.0", "z": "3.0"}},
{"type": "telegraph_obb", "name": "slash", "telegraphType": "WARNING"},
{"type": "damage_obb", "name": "slash", "damage": "12.0"},
{"type": "remove_holds", "holds": ["effects"]},
{"type": "pause", "pause": 0.5}
]
}
{
"timeline": [
{"type": "add_holds", "holds": ["effects"]},
{"type": "stop_movement", "duration": "5000"},
{"type": "animation", "animation": "special"},
{"type": "sound", "sound": "entity.ender_dragon.growl", "volume": 2.0, "pitch": 0.6},
{"type": "pause", "pause": 1.5},
{"type": "entity_particles", "particleType": "minecraft:dragon_breath", "count": 100},
{"type": "define_obb", "name": "ultimate", "shape": "SPHERE", "positioning": "AT_USER", "halfExtents": {"x": "12.0", "y": "12.0", "z": "12.0"}},
{"type": "telegraph_obb", "name": "ultimate", "telegraphType": "CRITICAL"},
{"type": "sound", "sound": "entity.generic.explode", "volume": 2.0},
{"type": "screen_shake", "intensity": 0.8, "duration": 30},
{"type": "damage_obb", "name": "ultimate", "damage": "45.0", "damageType": "EXPLOSION", "knockback": "3.0"},
{"type": "set_vulnerable", "vulnerabilityState": "EXHAUSTED", "duration": "8000"},
{"type": "remove_holds", "holds": ["effects"]},
{"type": "pause", "pause": 3.0}
]
}

Keyframes execute one at a time in order:

[
{"type": "pause", "pause": 1.0}, // Executes first, waits 1s
{"type": "damage_obb", ...}, // Then executes
{"type": "set_vulnerable", ...} // Then executes
]

Instant Keyframes (execute immediately):

  • define_obb
  • damage_obb
  • set_vulnerable
  • add_holds / remove_holds
  • molang_script

Duration Keyframes (block timeline):

  • pause - Blocks for specified duration
  • stop_movement - Blocks for duration
  • telegraph_obb - Blocks for auto-calculated duration
  • animation - Blocks for animation length

Conditions evaluate when keyframe reaches execution:

{
"type": "damage_obb",
"name": "attack",
"damage": "20.0",
"condition": "q.target_distance <= 5.0"
// Checked when this keyframe executes
}
{"type": "add_holds", "holds": ["effects"]},
// ... attack keyframes ...
{"type": "remove_holds", "holds": ["effects"]}
{"type": "define_obb", ...},
{"type": "telegraph_obb", ...}, // Warning first
{"type": "damage_obb", ...} // Then damage
{"type": "pause", "pause": 0.5}, // Windup
{"type": "damage_obb", ...},
{"type": "pause", "pause": 1.0} // Recovery
{"type": "sound", ...}, // Sound
{"type": "entity_particles", ...}, // Particles
{"type": "damage_obb", ...} // Damage
// All happen in quick succession

Complete keyframe reference for building perfect attack sequences! 📚