Steven's Visual Novel Engine


Links: Model | Demo Place | Support Server

Overview

SVNE is a simple, beginner-friendly engine for creating visual novels. The objective of SVNE is to allow anyone with experience in an art program or image editing software to be able to easily pick up and create their own visual novel engine, even without any prior programming experience!

Comes with features such as:

  • Basic saving and loading system
  • Automatic theme customization
  • Full RichText support for bold, italics, etc.
  • Backgrounds, covers, sprites and title cards
  • Simple, intuitive sound playing system for SFX and BGM

This is my first ever attempt at creating an engine of any sort, so I apologize if the code is a little rough around the edges. Please reply to this post if you have any questions or run into any issues.

View changelog
  • 5/13/2025 1.3.6: Cues are now cleared after every line of dialog.
  • 5/13/2025 1.3.5: Added skippable argument to dialog , fixed cue not triggering if the line begins with the cue.
  • 5/13/2025 1.3.4: titleCard now cancels current title card effect if one is running.
  • 5/13/2025 1.3.3: Fixed save data straight up not loading. Oops.
  • 5/13/2025 1.3.2: Option buttons now scale better on smaller devices.
  • 5/12/2025 1.3.1: SVNE can now be playtested without DataStore access, added error for attempting to create a sprite with the same name as an existing sprite.
  • 5/9/2025 1.3.0: Dialog and sprites can now be used in roaming mode, added append argument to dialog (allows addition of a new dialog line without clearing the previous line), added NVL mode (in NVL mode, the dialog box fills the entire screen).
  • 5/9/2025 1.2.2: Fixed setStoryVariable always passing nil.
  • 5/8/2025 1.2.1: Added portrait argument to dialog.
  • 5/6/2025 1.2.0: Added linkSubjectToPortrait. The portrait is a square image that appears in the dialog box, usually to display the face of the person talking.
  • 5/3/2025 1.1.0: Added promptTextInput, enterRoaming, and exitRoaming. Roaming mode hides all GUI elements and grants the player control of their character.
  • 4/28/2025 1.0.2: Starting a new game no longer clears story variables to allow for New Game+ type mechanics, added important note on sprite size behavior to lesson 3, added lesson 7 - Choices.
  • 4/26/2025 1.0.1: UI tweaks for readability, title card now closes current opened menu, client no longer yields when waiting for save data.
  • 4/26/2025 1.0.0: Initial release.

Getting Started

  1. Click here to get the SVNE free model from the creator store.
  2. Create a new experience.
  3. Insert the SVNE model from the toolbox.
  4. Locate the README script in the inserted folder and double click it to open it.
  5. The README script should be able to guide you from there!

Previews

SVNE was beta tested for stability and ease-of-use by a small team of artists, who all had zero prior experience in Luau. Here are some short previews of what they made using this system!

View previews

Credit: toyflyer

Credit: ncotic

Credit: j8ckfi

Support Server

Join the support server to interact with other users of SVNE, get help figuring out how to use the engine, and show off your creations!

47 Likes

Looks cool. An editable testing demo place would be nice to check out

4 Likes

Good point! I’ve added a demo place link to the top of the post.

3 Likes

Killer demo, and I like the smooth jazz…

  1. Can you put the X inside of the setting box and make it bigger and bolder ?

  1. What data is saved and loaded? (I guess it is what ‘novels’ you had looked at?)

Can this UI be made bigger to fit the screen? hard to read even on a big lap top monitor.

  1. Also can the font text that is typed out , be made bigger to be easier to read?

  2. Do you have info on how to change like the border frame image? can it be like a decal, that is like a frame so the boarder can be customized?

  1. Also what about changing the button images?

image

  1. Can a back ground image be done here?

  1. if you have Setting ui open, and click on new game , it stays open, … can clicking on new game close all open ui’s before they move on to new game?

4 Likes
  1. Sure, that’s fair.
  2. Save data saves from the start of the current scene, and saves all the current story variables (aka decisions the player made and the author chose to save). Because of the way SVNE’s stories are scripted, there’s no way to jump to an exact moment in the story- my state management expertise isn’t that great.
  3. Looks like I neglected to consider high resolution monitors :sweat_smile:. I’ll raise the max size for these UI windows.
  4. Yeah, that was a bit of a sloppy attempt at making sure text never overlapped no matter what font you were using. I’ll just toggle TextScaled instead.
  5. Customization of the base UI has to be done manually. For those who don’t know how: Add an ImageLabel to the save frame, set the Size to {1, 0}, {1, 0} and set the ZIndex to 0.
  6. Same thing here. Set the Text property of the button to be blank. Add an ImageLabel and scale it to {1, 0}, {1, 0}. Add a TextLabel, set the BackgroundTransparency to 1, set the Size to {1, 0}, {1, 0}, set the TextSize to 28, and set Text to whatever you want the button to say.
  7. See 5.
  8. Yep, that should be a quick fix!
2 Likes

this is an absolute banger, goated work

1 Like

This is pretty cool, we don’t usually have a lot of visual novel type games so this could help out certain devs a lot.

I was working on my own system not too long ago similar to the Ace Attorney games but I’ve put it on the side because I didn’t really know where to start. I’ll be sure to check this out because I’m curious to know how stuff like saving/loading data works.

1 Like

i think it’d be dope if there was a dedicated community server for this

1 Like

Good idea! I’ll throw something together and add it to the post.

1 Like

This is honestly huge, Thank you so much for making this. You just made an entire genre of game accessible to folk like us who don’t know a lick of coding! I played the demo and it was great, I’m 100% going to use this for something in the future, please keep up the awesome work. I’m looking forward to any other community resources you make! : )

2 Likes

this is so dang cool bro, :fire::fire::fire:

3 Likes

it’s really convenient when a really cool engine gets released JUST as i’m trying to make a game like this
transferring my stuff over from another engine is going to be a pain but it’s gonna be really worth it
good stuff man
(also just a suggestion, but maybe a ADV/NVL selector in the options? i know some people like NVL more than ADV)

2 Likes

what is ADV and NVL for us acronym liberates

1 Like

ADV (ADVenture)
NVL (NoVeL)

ADV mode is generally a text box that is at the bottom of the screen
NVL mode is a somewhat transparent text box that covers most of the screen with the sprites underneath the text box (think of visual novels like higurashi when they cry and how it lays out the text box)

2 Likes

I was not aware this distinction was a thing! I’ll definitely look into adding that as a feature.