Classic Reskin Workflow

This workflow assumes you are creating an editor pack under Editor/<Pack Name> and using the three standalone editors: Level Editor, Character Editor, and Audio Editor.

1. Create Or Open A Pack

Create a pack from the mod selector, or copy the Editor/Mod Name template and rename the folder. The folder name becomes the pack name used by scripts, audio replacement JSON, palette paths, and dependencies. A pack created from the mod selector also gets an id, its permanent identity; if you copy a folder, give the copy a new id or remove it (see Mod identity).

For a Classic reskin, config.json should keep Classic as a dependency:

{
  "isChronicle": true,
  "description": "A Classic visual and audio reskin.",
  "dependencies": ["Classic"],
  "dependenciesChecksums": [""],
  "settings": {}
}

Most editor-created packs already include a complete settings block. Keep it unless you intentionally want to change lives, difficulty, player count, or game-mode behavior.

2. Decide Which Editor Owns Each Change

Use the Level Editor for screens and level visuals:

  • Level Replacements/Classic/title.json
  • Level Replacements/Classic/presentation.json
  • Level Replacements/Classic/ending.json
  • Level Replacements/Classic/level <n> - art.json
  • Level Replacements/Classic/level <n> - cutscenes.json
  • images in Levels/Art/

Use the Character Editor for entity art and animation data:

  • Entity Replacements/Classic/<Classic Entity>/
  • replacement sprites, spriteSettings.json, animations.json, logic.json, and dependencies.json

Use the Audio Editor for sounds, music, loop points, and Classic replacement maps:

  • Sounds/*
  • Musics/*
  • Musics/<music>.json
  • Audio Replacements/Classic/music-replacements.json
  • Audio Replacements/Classic/sound-replacements.json

Use the palette workflow for extra playable-character color choices:

  • Palettes/Classic/<Playable Character>/palette <n>.png

3. Work In Small Passes

The safest rhythm is:

  1. Replace one area.
  2. Launch the pack in game.
  3. Check the log or visible result.
  4. Commit or back up the pack folder.
  5. Move to the next area.

This matters because Classic reskins often reuse original data. A broken filename, missing dependency, or mismatched scene count can make a whole screen fall back to the original or fail to load.

4. Keep Names Stable

The runtime resolves most mod content by folder and base filename:

  • A sound file named kick.wav is referenced as kick.
  • A music file named stage1.ogg is referenced as stage1.
  • A replacement folder named Axel targets Classic Axel.
  • A palette folder named Axel targets Classic Axel palettes.

Avoid renaming pack folders, entity folders, or audio base filenames late in a project. If you do rename them, update JSON references at the same time.

5. Keep Reskin Data In Level Replacements/Classic

Classic reskin level art belongs under Level Replacements/Classic, not next to the normal level files. The normal level files describe custom levels. The replacement files describe visual replacements for the original Classic levels.

When the Level Editor opens a pack in Classic Reskin mode, it loads the original SOR2 reference data and saves your replacement art to Level Replacements/Classic. This lets you line up new art against the original while keeping original walls, spawns, and scene flow intact.

6. Test The Actual Target

Preview panels are useful, but the game is the final test. Open the pack in the in-game editor menu and choose Test: the reskin is applied on top of the original content for that session, so you can play it without exporting and without changing your own skin options. Check:

  • title screen transitions
  • character select visibility
  • stage start music
  • scene boundaries and parallax
  • cutscene timing
  • boss or enemy palettes
  • player palette selection
  • audio volume and loop points

If something looks correct in an editor but not in game, check the file format reference and troubleshooting.