Animation Names

Animation names are editor labels stored with animation logic entries. The runtime primarily uses animation IDs, so names are for humans, tooling, and documentation.

Where Names Appear

Names commonly appear in logic.json:

{
  "animationsLogic": [
    {
      "name": "Standing",
      "duration": 266
    },
    {
      "name": "Walk",
      "duration": 40
    }
  ]
}

The array index is the animation ID used by scripts, events, and animation behaviour. Renaming "Standing" does not change animation ID 0.

Suggested Naming Style

Use short action labels:

  • Standing
  • Walk
  • Run
  • Jump
  • Land from jump
  • Attack 1
  • Attack 2
  • Blitz
  • Defensive special
  • Offensive special
  • Grab front
  • Grab back
  • Throw
  • Being hit
  • Knocked down
  • Lying down
  • Stand up
  • Death

Keep capitalization consistent within one entity. The editor and runtime do not require a particular case, but consistent names make debugging much easier.

IDs Are The Contract

Scripts and events use IDs:

character.set_animation(30)
{
  "$type": "Sor2NewEra.Gameplay.JumpToAnimationEvent, Sor2NewEra",
  "frame": 8,
  "animationId": 30,
  "animationFrame": 0
}

If you reorder animations, every ID reference can change. Avoid reordering established animations in Classic replacements unless you are ready to update scripts, events, hitboxes, and animation behaviour.

Classic Replacement Guidance

When replacing a Classic character, enemy, or item:

  • keep original animation IDs when possible
  • rename labels only to clarify, not to imply the ID changed
  • keep common state animations near their original indexes
  • update behaviour modes and events if you move an animation
  • test every transition that jumps by ID

Using Names In Documentation

When documenting a move, include both:

Animation 30: Close shuriken slash

That lets another modder find the animation even if their local label differs.