Skip to content

Migration Checklist

Migrate in small slices. The best first target is one complete chapter with one or two branches.

  1. Inventory the original SVNE project.
  2. Create the VNC project shell.
  3. Import assets.
  4. Rebuild scenes as node chains.
  5. Rebuild choices and conditions.
  6. Match the runtime UI.
  7. Handle custom logic last.
  8. Check and test.

Record:

  • chapter indexes and names,
  • scene names and order,
  • backgrounds,
  • sprite images and poses,
  • portraits,
  • BGM, SFX, GUI sounds, and scroll sound sets,
  • story variables,
  • choices and locked-choice rules,
  • title cards and visual effects,
  • custom code that changes the Roblox world.

Do this before creating nodes. It prevents you from mixing asset cleanup, story redesign, and migration work at the same time.

In VNC, use Project Structure as the reference for stories, chapters, scenes, and stable IDs:

  1. Create a new project.
  2. Set the story title.
  3. Create chapters matching the SVNE chapter list.
  4. Create scenes matching the SVNE scene list.
  5. Set the story entry chapter.
  6. Set each chapter’s scene order.

Keep names player-facing. VNC stable IDs do not need to match SVNE names.

Add assets before building node flow. Use Assets & Importing when you need the exact categories:

  • backgrounds,
  • character sprite assets and poses,
  • portraits,
  • BGM and SFX,
  • menu background and menu music,
  • GUI hover/click sounds,
  • scroll sound sets.

If a sprite has several expressions in SVNE, model it as one sprite asset with multiple poses where possible.

For each SVNE scene function, rebuild the visible path with the Node Reference nearby:

  1. Add the first node.
  2. Set the scene start node.
  3. Add dialog, background, sprite, audio, wait, and effect nodes in order.
  4. Connect each node’s next target.
  5. Preview the scene before adding complex branches.

Avoid making nodes create missing dependencies automatically. If a sprite or asset is missing, create it explicitly and clear the warning.

For each promptChoice, use a Choice node:

  1. Add a Choice node.
  2. Add one option per SVNE choice.
  3. Connect each option to the correct branch.
  4. If SVNE saved the selected choice, assign a Text variable to the choice node.
  5. Convert locked choices into option conditions.
  6. Merge branches back into a shared continuation when the story does that.

For each scripted if statement based on variables, use a Condition node.

Match the player-facing feel before modernizing it. Use Visual Styling and Runtime Overview for the VNC-side controls:

  • menu title and optional subtitle,
  • menu background image,
  • menu music,
  • hover/click sounds,
  • dialog UI preset,
  • dialog colors and text settings,
  • sprite slots,
  • chapter title-card behavior.

Once parity feels right, make project-specific improvements.

Mark custom code as one of these categories:

Use existing nodes

If built-in nodes can express the behavior, prefer them. This keeps the story visible in the editor.

Use runtime extensions

If the behavior is custom presentation or button logic, put it behind a supported extension point.

Use Run Function nodes

If the behavior is trusted story-triggered server code, isolate it behind a Run Function node.

Keep game logic outside

If the behavior belongs to the Roblox experience rather than the VN runtime, keep it in the game layer.

This keeps the migration from turning into a hidden rewrite.

Before calling the migration done, use Testing Runtime for the installed-runtime checks:

  • Resolve Properties warnings.
  • Run preview from the first scene and from later scenes.
  • Test each choice path.
  • Install or update the runtime into a test place before checking runtime menu and save behavior.
  • Test save, load, autosave, continue, return to menu, settings, log, and chapter select.
  • Test published-place save persistence if save data matters.

Use the original SVNE project as a visual and behavioral reference, not as the architecture target. VNC should recreate the player experience while using a cleaner, more maintainable model.