Skip to content

Concept Mapping

Use this page as a translation guide when rebuilding an SVNE story in VNC.

SVNE conceptVNC conceptNotes
vnm.registerChapter()Chapter entityVNC chapters use stable IDs and user-facing names.
scenes = { "intro", "choiceScene" }Chapter scene listVNC stores scene order in project data.
vnm.registerScene()Scene entityA VNC scene owns nodes and a start node.
Scene function bodyNode chainEach story action becomes a node.
story.playChapter(1)Runtime start / chapter start requestRuntime checks chapter availability.
SVNE API or patternVNC node or propertyNotes
vnm.dialog()Dialog nodeSpeaker, portrait, text, cues, scroll speed, skippable, and advance behavior are Properties fields.
waitForAdvanceInput = falseDialog node with no advance inputUse auto-advance delay for authored timing.
vnm.waitForAdvanceInput()Dialog, title card, or wait stateMost waits are represented by node properties instead of manual yields.
task.wait(seconds)Wait nodeUse a wait node for authored pacing.
vnm.titleCard()Title Card nodeProject-level chapter title cards are also supported.
vnm.scheduleCue()Dialog cuesCues are data on the dialog node.
SVNE API or patternVNC node or propertyNotes
vnm.promptChoice()Choice nodeEach option has text, optional condition, and a target node.
choicesUnlockedChoice option conditionLocked options are driven by variables and conditions.
variableName on a choiceChoice variableVNC stores selected option IDs in a string variable when configured.
Timed choice fallbackChoice timeout pathVNC can route to a timeout target and use default timeout values when fields are left unset.
if choice == 1 then ...Choice branchesConnect each option to its target node.
if vnm.getStoryVariable(...) then ...Condition nodeConditions are explicit and visible in the Story Map.
vnm.setStoryVariable()Set Variable nodeSupports typed variable operations.
SVNE API or patternVNC node or propertyNotes
vnm.setBackground()Background nodeSupports transition kind and duration.
vnm.addColorCover() / addImageCover()Overlay nodeUse overlay mode, color/image, transparency, and transition fields.
vnm.playSound()Audio or SFX nodeUse Audio for tracks and SFX for one-shots.
vnm.stopAudioTrack()Audio node with stop actionTrack IDs are explicit.
linkSubjectToScrollSoundSet()Subject defaults or Scroll Sound Link nodeUse subject configuration for stable defaults.
linkSubjectToPortrait()Subject defaults or Portrait Link nodeUse subject configuration when possible.
Color or image coverOverlay nodeUse image, color, or clear overlay mode.
SVNE API or patternVNC node or propertyNotes
vnm.createSprite()Sprite Enter nodeThe sprite asset is explicit; the node does not create missing assets automatically.
sprite:setImage()Sprite Update nodeUse pose fields for character sprite variations.
sprite:reposition() / resize()Sprite slot fields or Sprite Update position fieldsPrefer project sprite slots for repeatable layouts.
autoPositionSprite position mode: AutoVNC has deterministic auto positioning without copying SVNE’s source structure.
vnm.exitStage()Sprite Exit nodeSupports transition kind and duration.
vnm.emphasize() / deemphasize()Effect node or dialog auto-emphasisDialog can emphasize by speaker; effects can target sprites explicitly.
sprite.jump() / shake()Effect node or sprite transitionUse effect nodes for one-shot motion.
SVNE featureVNC equivalentNotes
Main menuRuntime menuTitle, subtitle, background, music, sounds, and colors are Properties fields.
Save/load UIRuntime save/loadUses authored names for display and stable IDs for consistency.
Settings UIRuntime settingsPersists player settings through the runtime.
Chapter selectRuntime chapter selectUses unlocked chapter IDs and authored chapter names.
LogRuntime logVNC stores runtime log entries as part of session/checkpoint state.
SVNE patternVNC approachNotes
Editing engine scriptsAvoid when possiblePrefer Properties fields and documented extension points.
Scene-local custom LuauFuture function nodes or runtime extensionsKeep custom code behind documented extension points.
vnm.logStoryConnection() cleanupRuntime-owned waits and world interactionsVNC should own cleanup for built-in node behavior.
Roaming modeRoaming and world interaction nodesUse explicit nodes for world transitions and waits.
Custom button behaviorRuntime button extensionUse ReplicatedStorage.VisualNovelCreatorExtensions.Client.Buttons with the documented button module shape.

Some SVNE scripts use arbitrary Luau side effects inside scene functions. VNC should not automatically import that kind of logic. Rebuild the story using native nodes first, then isolate truly custom behavior into an extension.