• With over 20,000 games created, The most widely used novel game engine.

What is a Plugin?

This article is valid for TyranoScript version 4.40 and above.

TyranoScript allows you to add new features through the use of plugins.

If you create frequently used functions as plugins, you can easily reuse them across multiple games.
You can also make your plugins public so other developers can use them.

TyranoScript Official Plugin List

If you make a useful plugin, we’d be thrilled if you shared it!

How to Create and Publish Plugins

From TyranoScript version 4.40, the "Third-party Plugin" system was added. This system makes it easy to integrate plugins created by others into your own game.

It helps keep the game and plugin components cleanly separated, reducing the chance of conflicts.

First, place your plugin in the data/others/plugin/ folder.

For example, if you want to create a plugin called "my_message_style" to style the message box:

Create a folder named data/others/plugin/my_message_style.

Place all plugin-related files inside this folder.
Ensure users can simply place this folder to use the plugin.

How to Use a Plugin

Once the plugin is placed in the data/others/plugin/ folder, use the [plugin] tag to activate it.

Example:

[plugin name="my_message_style"]

This loads the init.ks file from the my_message_style folder.
Then you can write your TyranoScript code there as usual.

About Path Specification

In the init.ks file, you must use images or scripts from inside data/others/plugin/my_message_style. Therefore, path notation requires some adjustment.

Example with [bg] tag:
[bg storage="../others/plugin/my_message_style/image/bg_image.png"]

Normally, [bg] storage points to the bgimage folder, but with plugins, you must use "../" to refer to the parent directory.
This logic applies to other tags like [jump] or [call] as well.

Don’t forget to include [return] at the end of init.ks



Passing Arguments

The [plugin] tag supports custom arguments.
Example:
[plugin name="my_message_style" frame_opacity="125" font_color="0xFFFFFF" ]

In init.ks, these can be accessed with:

mp.frame_opacity
mp.font_color
You can use &mp.font_color for customization. Note that %font_color syntax (used in macros) is not supported here.

To provide default values when omitted:

[iscript]
// Initialization
mp.font_color = mp.font_color || "white";
mp.frame_opacity = mp.frame_opacity || "200";
[endscript]

Useful Reference Plugin

A theme plugin generously provided by Ko-Panda is a great reference.
Please check both the documentation and code.

Go to Plugin List

Check out the Theme Converter Plugin.

Final Touches

Include a readme.txt file with the following info:

- Plugin Title
- TyranoScript version used during development
- Short Description (about 100 characters)
- Detailed usage and sample code
- Developer name (optional)
- Developer website (optional)

You may also include any promotional material or notes.

Finally, zip the data folder and share it. If you’ve developed a plugin, consider submitting it to this site.

TyranoScript Official Plugin List

We’d love to feature your plugin along with links or credits to your site.

If you'd like your plugin featured, please contact the developers.

Thank you in advance!