Let's start creating your game!
First, open the "data" folder from the extracted files.
This folder is where all game-related information will be stored.
From now on, we will refer to this folder as the "Project Folder."
Now, let's briefly explain the role of the project folder.
You don't need to memorize everything at this stage—just get a general idea.
We will cover each part in detail when needed.
Open the scenario folder inside the project folder.
Inside, find the file named first.ks and open it with your editor.
You will see some sample script written inside—delete everything.
Once the file is empty, copy and paste the following content into first.ks.
; Tutorial script file
*start
[wait time=200]
I am a cat. I have no name yet.[l][r]
I have no idea where I was born.[l][cm]
All I remember is crying 'meow meow' in a dark and damp place.[l]
This was the first time I ever saw a human.[l][r]
After copying, save the file.
Press the "Start Game" button in TyranoRider to check if it works.
Execution screen:
The text is displayed in sequence!
It's incredibly simple, isn't it?
Now, let’s go over the script line by line.
First, the initial line:
; Tutorial script file
This line does not appear on the game screen.
Any line starting with a semicolon (;) is treated as a comment.
Comments are not displayed in the game and can be used as notes or explanations in the code.
In this case, we have noted the purpose of this file at the beginning.
Now, let's look at the actual dialogue lines:
I am a cat. I have no name yet.[l][r]
I have no idea where I was born.[l][cm]
All I remember is crying 'meow meow' in a dark and damp place.[l]
This was the first time I ever saw a human.[l][r]
Notice the tags at the end of each line.
This tag waits for a click before displaying the next part of the text.
If you test it, you'll see that the text pauses here until the player clicks.
This tag creates a line break.
You can see that text is broken into a new line at this point.
By placing [l][r] together at natural breaks, you can create a more readable visual novel.
This tag clears the message window and moves to a new page.
Use this when you want to deliberately clear the screen for visual effect.
However, even if you don’t use [cm], the text will automatically switch pages when the window reaches its display limit.
Now, you have mastered the basics of displaying text in TyranoScript!
In TyranoScript, games are created by combining regular text with tags.
Anything enclosed in square brackets [ ] is a tag.
Unlike regular text, tags perform special actions that give movement to the game.
For example, [l] adds the action to wait for a click.
Here’s another example:
[wait time=2000]
In this tag, wait is the command, and time=2000 is an attribute.
This means pause execution (wait) for 2000 milliseconds (time=2000).
In other words, this tag makes the game pause for 2000 milliseconds before continuing.
There are many types of tags, allowing for a wide variety of expressions in your game.
However, the basic concept of tags is simple—once you understand their usage, you can easily apply them.
Tags can also be written in the following way, with the same meaning:
@wait time=2000
(This functions exactly the same as [wait time=2000])
Any line starting with an @ (at symbol) is recognized as a tag.
However, it must be written on a single line.
You can also display messages in vertical writing mode.
If you want to set the entire game to display text vertically, edit the Config.tjs file located in the system/ folder.
Config.tjs
// ◆ Vertical Writing Mode
// To enable vertical text mode by default, change false to true.
;vertical = true;
Here, the text is displayed horizontally.[l][r]
Switching to vertical writing mode[l][cm]
[position vertical=true]
Now, the text is displayed in vertical mode.[l][r]
Switching back to horizontal mode[l][cm]
[position vertical=false]
[cm]
Now, the text is displayed horizontally again.
Let's take a look at how to create a game where the text display area is always at the bottom.
By specifying the height and width of the message area, you can adjust the size of the message window.
Save the following script and try running it.
Changing the message window height[l][cm]
[position height=160 top=430]
[cm]
Now, the message window is displayed at the bottom, isn't it?
Save the script and run it. You should see that the text area has moved to the bottom of the screen.
When creating games where characters are the main focus, this format is recommended.
In TyranoScript, you can customize the message window to match the theme of your game.
First, prepare an original frame image like the one shown below.
Save this image in the image folder inside the project folder, and name it frame.png.
Frame Image (822px × 248px) (Resource: Vita-Chi Material Library)
Once the image is ready, apply it using the [position] tag as follows:
[position layer=message0 width=800 height=300 top=380 left=70 ]
[position layer=message0 page=fore frame="frame.png" margint="65" marginl="50" marginr="70" marginb="60"]
[cm]
Now, the message window is displayed at the bottom, isn't it?[r][l]
Here is a message being displayed.[r][l]
Here is another message being displayed.[r][l]
Save and run the script.
The message window has changed, right?
[position layer=message0 frame="frame.png" margint="65" marginl="50" marginr="70" marginb="60"]
This applies a custom frame image to the message window. The margint (top), marginl (left), marginr (right), and marginb (bottom) properties specify the pixel spacing between the outer frame and the actual text area.
[position width=800 height=300 top=380]
This adjusts the display position of the message layer.
Pretty flexible, right? You can create a highly customized game screen using these settings.
(Note) The size of the message layer specified in the [position] tag must match the size of the frame image.