Ending Cutscenes

Classic reskins can replace the ending presentation with Level Replacements/Classic/ending.json.

Create Or Replace The Ending

  1. Open the Level Editor.
  2. Choose Classic Reskin.
  3. In the cutscene list, add Ending if it does not already exist.
  4. Add scenes, layers, images, and animations.
  5. Set scene timing with cutsceneEndTimeInSeconds.
  6. Test by finishing a run or using the fastest available local route to the ending.

File Layout

Editor/<Pack Name>/
  Levels/
    Art/
      ending-bg.png
      ending-card-1.png
  Level Replacements/
    Classic/
      ending.json

ending.json uses the same LocalLevelBackgroundData format as title screens, presentation screens, and level cutscenes.

Scene Design

An ending can be a single scene or a sequence:

  • single scene: one screen with a long cutsceneEndTimeInSeconds
  • sequence: multiple scenes, each with its own timing and layer composition
  • music-driven ending: set musicPackName and musicName on the first scene

If your ending relies on music timing, use music loop metadata carefully. A bad loop point can be more noticeable in a quiet ending than during combat.

Practical Limits

Keep ending art easy to load:

  • prefer a few larger background images over dozens of tiny decorative pieces
  • reuse images from Levels/Art when possible
  • avoid very large transparent PNGs when a cropped image would work
  • test with the same display mode you expect players to use

Troubleshooting

If the original ending appears instead:

  • confirm the file is Level Replacements/Classic/ending.json
  • confirm the pack is loaded as a Classic reskin or has Classic as a dependency
  • confirm ending.json has a non-empty scenes array
  • confirm each visible scene has at least one layer with art