Getting started

Please note that the program has had a name change since the free version was released. The original name was Ren'Py Maker.


To install Unity go to https://unity.com/unity-hub and install the Unity Hub.


From the Unity Hub you will need to select a version of Unity for your project. The Unity version used for this software was 2020.3.36f1, but newer versions should work fine.


Now you can create a Unity project. When choosing the type of Unity project to create remember to choose a 3D project.


Once you have a new Unity project, open the zip file that you downloaded from GitHub select the Assets, Packages and ProjectSettings folders and copy them into your new Unity project folder. Overwrite any files or folders when prompted.


Unity will update to include all of the new files and once complete everything should be installed correctly.

Before we can test the program we need to change the current scene. Within the Assets folder open the Scenes folder and double click on the RenPy Maker scene.

Now we need to open the graph window. Within the Assets folder open the RenPy Maker->Resources->Tutorial folder and then double click on the Ren'Py Maker Tutorial. The graph window will open up and you can dock it somewhere in your layout.
 
To ensure the project is configured properly it is recommended to restart Unity at this point.

Once restarted you can then test the program in Unity. At the top center in Unity click on the play button and you should be able to click within the Game window to advance the tutorial. You can also view the tutorial here at the bottom of this page to see how it looks in an embedded web player.


If you have any problems then check the following:

    

1.  Change to new Input System


    Open your player settings. (Edit->Project Settings->Player)

    Scroll down until you find Active Input Handling.

    Change to the new Input System Package, click Apply and then wait for Unity to restart.

    Once restarted check whether the new Input System Package is installed in the Package Manager. (Window->Package Manager)

    If the Input System package is not listed in your project then switch to the Unity Registry packages.

    Then select Input System from the list and then click on the Install button.

    

2.  Install TextMeshPro


    Check whether TextMeshPro is installed in the Package Manager. (Window->Package Manager)

    If TextMeshPro is not listed in your project then switch to the Unity Registry packages.

    Then select TextMeshPro from the list and then click on the Install button.


3.  Enter the project name


    Click on the RenPy Maker object in the Hierarchy window.

    In the Inspector window you will see the Node Parser script.

    Look for the Project Name field and enter the name Tutorial.


Selecting your resolution 


Ren'Py allows you to select between five resolutions. Namely 1066x600, 1280x720, 1920x1080, 2560x1440 and 3840x2160. To set up Ren'Py Maker to work with your chosen resolution start by selecting the RenPy Maker object in the scene hierarchy. Within the Node Parser script attached to this object there is a Resolution dropdown list near the top. Choose your preferred resolution and remember the height for when working with images.


Creating a new graph


Ren'Py Maker supports projects that utilize multiple graphs. To do this you need to select the RenPy Maker object in the scene hierarchy and within the Node Parser script, which is attached to this object, enter a name for your project in the Project Name field.  Once you have entered a name you need to create a folder to hold all of the graphs for your project. Do this by going to the Resources folder within the RenPy Maker folder and create a folder which matches the Project Name that you chose.


For each new graph that you want to create, right click on your project folder and choose Create->Renpy Maker. A new graph called New Renpy Maker will be added to the folder and you can rename this graph to whatever you want.


Switching between graphs


At any time you can switch between graphs by double clicking on one in the project folder you created. The program will automatically switch to each graph as your program runs so it might be necessary to switch back to your main graph, the one that contains a Start node, or the graph you are currently working on.


Adding images


Ren'Py Maker works with images which are in the PNG format. The scene background images should be the same height as the one selected in the Node Parser script. The side images (avatars) should be 200x200 pixels in size. The side images should also be named with the word "side_" at the start of the file name.


Image names should begin with a letter, and can only contain letters, numbers, and underscores.


Some examples:

"background.png"

"cindy_happy.png"

"side_cindy.png"


Place your images in the Images folder within the RenPy Maker folder.


Once you have added an image to Unity you need to create a sprite to work in the program.


This is done by selecting the image and then changing its Texture Type to Sprite in the inspector window. Remember to click on the Apply button as well.


Using the Graph window


Add nodes to your new graph by right clicking on the Graph window to bring up the context menu, and then hover over the Nodes item to select the node type you want to create.


To work correctly you will need a Character node to define your character. You will also need a Start node and a Return node and at least one Dialogue, Menu or Narrate node in between.


You need to connect the nodes by left clicking and dragging from the Exit port of one node to the Entry port of the one you want to connect.


To remove a connection you need to left click and drag the mouse from the Entry port of the one you want to disconnect.


Once you have the bare minimum of nodes set up you should bring up the context menu and choose Check For Errors. If all goes well you should see No Errors Found output to the console window in Unity.


After checking that there are no errors you can then play your graph in Unity. To do this click on the Play button which is located at the top center in Unity.


The graph will return to the Start nodes when it reaches the end, which is the Return node. This only happens in the Unity player though. In the Ren'Py version it will exit when it reaches the end.


You can also start the graph at a specific location to speed up debugging and testing. To do this just select a single node before clicking on the Play button in Unity. The program will try to start at that node or default to the start if there was a problem. Note that all nodes prior to the one you select will not have been acted upon so their changes will not be seen.


Only the colors from the Character node will be used in the final script. The colors are shown on the Dialogue, Menu and Narrate nodes are for a future update.


You can change the side images used in the Dialogue and Menu nodes and the attributes will be added to the final script.


Node types

 

Here is a list of the current node types used in Ren'Py Maker and a detailed description.


Call:

Calls a label in any graph and will continue execution after it returns.

Character:

Defines the characters that can be used in Dialogue, Menu and Narrate nodes.


If you change the name in a Character node the changes will be echoed to all of the Dialogue, Menu and Narrate nodes using that character.


I don't recommend deleting a Character node once you have made your graph. It can cause problems with the other characters. This will be fixed in a future update.


Comment:

This will add a comment to the final Ren'Py script file. Use a single line of text here as multiple lines will cause an error. To be fixed in a future update.


Dialogue:

Displays the character name and dialogue text to the reader. The color of the speaker is currently unused. By default the side image used in your Character node will be set, but you can change the side image used here.       


Hide:

Will hide an existing sprite image created using a Show node.


Jump:

Jumps to a Label node, as long as the label names are the same. I recommend using a single word label.


Label:

A label to add to the script file. Used in conjunction with a Jump node.

Menu:
The Menu node works the same as Dialogue nodes except that it has dynamic outputs.

Most of the node types are fairly easy to understand and use, but the Menu node is a special case. Using a Menu node allows you to set up a menu in Ren'Py and allows for multiple (up to 10) choices/buttons. You will notice that it doesn't have an output port when it is first created. This is because we haven't defined any outputs for it yet.


Start by clicking on the Button Settings foldout. Once open you will see two buttons at the top called Add Button and Delete Button. At first there are no buttons to delete so we need to stay on the Add Button page. To create a new button/output you need to enter the text to display on the button as well as the name of the output before clicking on the Create New Button. The output name should be a single word or number. And to delete an existing button simply choose the Delete Button page, select the button to delete from the dropdown list and click Delete Selected Button.
 

Music:

Plays an audio clip with an optional fade in and fade out value. The music clip will auto repeat until a MusicStop node is reached.


Narrate:

Works the same as a Dialogue node but is shown in italics without a side image.


Pause:

Will pause the novel for a set number of seconds. If you enter a zero value it will pause until a mouse click occurs.

 

QueueMusic:

Adds another audio clip and queues them to play sequentially.


Return:

The Return node is where the novel will end. Within Unity it will restart at the Start node instead.


Scene:

Clears the existing background and all sprites shown above it. Also clears all attributes from previous statements.


Show:

Shows a sprite/image over the top of the background with an option to position it to the Left, Right, Center or TrueCenter (middle of the screen) 


Sound:

Plays the same type of audio clip as the Music node except you cannot queue or stop the audio playback. It also only plays once and then stops.


Start:

This is where your story begins. In Unity if a single node on your graph is selected then the program will try to start at that node instead. This is helpful for debugging parts of your graph.

 

StopMusic:

This will stop the music audio playing when it is reached.


Transition:

Will switch between images with a transition of None, Dissolve and Fade. This is not implemented in the Unity editor playback.


Creating the Ren'Py script:


Right click on the background of the Graph window and choose Make Ren'Py Script from the context menu. A dialog window will open and you can choose the path and file name for your script file. You can safely overwrite the existing script.rpy file.


Copy the script.rpy file from where you saved it in Unity and place it in the Game directory in Ren'Py.  


Copy the images and audio files you used in Ren'Py Maker to the Image and Audio folders for your Ren'Py game.


If all goes well you can now view and test your visual novel in Ren'Py.


Notes:


Ren'Py Maker is an editor extension for Unity and will work on any platform that Unity supports.


You can check for errors at any time from the context menu in the Graph window. This is a fast way to clear any errors after you have fixed them.  


Don't change or modify the graph while in Play mode.


You can add more than one Show node to display multiple characters.


If you can't edit a text field then try moving the node to the top.


There is also a problem with click through so don't stack nodes on top of each other.


The error check does not check for logical errors in the final Ren'Py script.


If you enter 0 in a Pause node then the program will halt until the mouse is pressed. 


You can view an image and play a sound on a node by right clicking on its field and choosing to view its properties.


There can be only one Start node and one Exit node.


You can press F when the Graph window is selected to quickly center the graph.