Skip to content

Animation Playback Speed

Sleys edited this page Jul 31, 2026 · 3 revisions

Animation Playback Speed allows an animation to dynamically modify its playback speed while it is being played.

Unlike a fixed animation speed, playback speed modifiers are evaluated continuously during the animation, allowing the speed to react to gameplay conditions such as charging, airborne states, or custom logic.

This property can be applied to any animation operation that supports animation properties, including Registry, Virtualization, and Configuration.


📋 Property Name

"animation_playback_speed": {
    ...
}

📚 Core Parameters

Field Type Description
type String Playback speed modifier to use.
params Object Additional parameters required by the selected modifier. Some modifiers do not require parameters.

🎛️ Built-in Playback Modifiers

The following playback modifiers are included by default.

Type Description
epicfight_edp:constant Plays the animation at a constant speed.
epicfight_edp:charging Gradually increases playback speed while charging.
epicfight_edp:charging_linked Smoothly adjusts the speed of charging link animations.
epicfight_edp:air_loop Dynamically slows or pauses an airborne animation until the entity approaches the ground.

⚙️ Modifier Parameters

Constast

Uses a fixed playback speed during the entire animation.

Field Type Description
constant Float Playback speed multiplier.

Example

"animation_playback_speed": {
  "type": "constant",
  "params": {
    "epicfight_edp:constant": 0.5
  }
}

Charging

Changes playback speed according to the current charging progress.

This modifier is intended for charging skills and allows the animation to accelerate while the player continues charging.

Field Type Description
max_elapse Float Maximum animation time affected by the charging calculation.

Example

"animation_playback_speed": {
  "type": "epicfight_edp:charging",
  "params": {
    "max_elapse": 0.8
  }
}

Charging Linked

Automatically adjusts the playback speed of linked charging animations.

This modifier does not require any additional parameters.

Example

"animation_playback_speed": {
  "type": "epicfight_edp:charging_linked"
}

Air Loop

Designed for aerial animations.

While the entity is still high above the ground, the animation slows down and can temporarily pause portions of the animation, allowing it to naturally resume as the entity approaches the ground.

This modifier does not require any parameters.

"animation_playback_speed": {
  "type": "epicfight_edp:air_loop"
}

📄 Full Example

{
  "type": "air_attack",
  "transition_time": 0.2,
  "animation": "biped/combat/greatsword_dual_airslash",
  "armature": "epicfight:entity/biped",

  "basis_attack_speed": 0.75,
  "move_vertically": false,
  "cancellable_movement": false,

  "phases": [
    {
      "antic": 0.0,
      "pre_delay": 0.25,
      "contact": 0.5,
      "recovery": 1.25,
      "hand": "off_hand",
      "properties": {
        "damage": 1.75
      },
      "colliders": [
        { "joint": "Tool_L" },
        { "joint": "Tool_R" }
      ]
    }
  ],

  "play_speed_modifier": {
    "type": "air_loop"
  },

  "in_time_events": [
    {
      "type": "fracture_ground",
      "side": "client",
      "start": 0.45,
      "params": {
        "edge": [0.0, -0.2, -2.0],
        "joint": "Root",
        "radius": 1.6,
        "pose_time": 1.1
      }
    }
  ]
}

⚠️ NOTES

  • Playback modifiers are evaluated continuously while the animation is playing.
  • Different modifiers may require different parameter objects.
  • If a modifier does not require configuration, the params field may be omitted.
  • Custom playback modifiers can be added by other mods through the public Registry.
  • If the event used is standard and was not added by third parties, the namespace can be omitted, for example "epicfight_edp:air_loop" -> "air_loop"

EF: Extended Datapacks

📦 Data

🧰 Core

👁️ Visuals

⚔️ Combat

🗝️ Skill Builder

🛠️ Innate Builder

🗡️ Animation Operations

⚙️ Third-Party

Clone this wiki locally