Install Asset
Install via Godot
To maintain one source of truth, Godot Asset Library is just a mirror of the old asset library so you can download directly on Godot via the integrated asset library browser





Quick Information

A powerful engine perfect for dialog-heavy games such as RPGs, visual novels, platformers, etc.Recent hotfixes (1.7.1):- Updated version in README.md- Updated version in syndibox.gdRecent changes (1.7.0):- Added scollbar- Added a way to start dialog through script- You can change how long before auto-advance- You can now disable the scrollbar and use the old text transposing- Added an option for the scrollbar to follow the text- Added the signal tag which emit a signal when read- Text hide and pause can support more than 10 seconds/ticks- You can manually hide/pause printing- You can stop advancement of dialogue- Updated README.md to show added and changed features- Various bug fixes and optimizationsKnown Issues (1.6.0):- "Tipsy" and "Drunk" positional effects do not work properly with instant print.Big thank you to all contributors so far, you've been a huge help! <3
SyndiBox Text Engine
The SyndiBox Text Engine is a powerful dialog tool designed for use in RPGs and sidescrollers. It contains a tag system for denoting changes in color, speed, and position of text.
Installing
You can download the latest version at the Release tab, or you can clone from the master branch and edit the engine yourself.
Once downloaded, unzip the addons
folder to the root of your project.
You should now see SyndiBox
as an option for your plugins under the Plugins
tab of your Project Settings
. Set the plugin to Active
to use it in your project.
Usage Guide
SyndiBox is meant to be an easy and stress-free way of implementing dialog into your Godot game projects. Here's an illustrated guide on the basics:
- Add a child Node to your Scene.
- Search for
SyndiBox
and clickCreate
. - Position the Node to your preferred space on the screen.
- Fill the properties in the Inspector with your dialog, auto advance, font, text voice, color, and text speed. You can use what is filled in the image below as an example.
- Press the
Play Scene
button (orF6
on your keyboard) and watch it print!
Script Guide
Syndibox exposes some functions for use within GDScript that allow for dynamic control of the text and effects.
start(string: dialog, int: start_position)
- Resets, shows, and starts the dialog box, displaying the given string. Passing a string to start is functionally the same as entering the string as Dialog
in the inspector.
- dialog The string to display. A value of '' replays whatever the current Dialog set contains. Defaults to ''.
- start_position Start position of the text. Defaults to 0.
stop(boolean: emit_signal)
- Resets and stops the dialog box. This method will optionally emit a signal 'text_finished' if you set emit_signal to true.
- emit_signal Defaults to true.
manual_text_pause
- Boolean variable used to manually pause text processing. Defaults to false. Use resume()
to resume normal processing (see below)
manual_text_hide
- Boolean variable used to manually hide text. Defaults to false. Use resume()
to resume normal processing (see below)
resume(boolean: resume_Printing, boolean: show_Text, boolean: resume_Advancement)
- Resumes printing process that was manually paused or hidden
- resume_Printing Defaults to true.
- show_Text Shows Defaults to true.
- resume_Advancement Defaults to true.
Text Effects
We can add special effect tags to make our text much prettier than a mock console gag. Something like this:
(The second string was printed by typing "And [`d]Hell[*4]oooooooooo[*r] Dolly~[`r]")
Full Effect List
Last Updated: v1.7.1
Color
[`0] - Black
[`1] - Dark Blue
[`2] - Dark Green
[`3] - Dark Turquoise
[`4] - Dark Red
[`5] - Purple
[`6] - Gold
[`7] - Gray
[`8] - Dark Gray
[`9] - Blue
[`a] - Green
[`b] - Aqua
[`c] - Red
[`d] - Light Purple
[`e] - Yellow
[`f] - White
[`r] - Resets the color back to default
[`#] - Forces a line break
Speed
[*1] - Fastest
[*2] - Fast
[*3] - "Normal" (i think its p slow tbh)
[*4] - Slow
[*5] - Slowest
[*i] - Start instant print
[*n] - End instant and return to default speed
Position
[^t] - Tipsy
[^d] - Drunk
[^v] - Vibrate
[^r] - Resets the effect back to default
Pause
[s#] - Pause for # seconds
[t#] - Pause for # tenths of a second
Hide
[|#] - Hide for # seconds
[:#] - Hide for # tenths of a second
Font
Up to 10 alternate fonts can be configured in the inspector. To swap between them use the following tags
[*0] - Switch to the 1st alternative font
[*1] - Switch to the 2nd alternative font
[*2] - Switch to the 3rd alternative font
...
[*9] - Switch to the 10th alternative font
[*r] - Reset the font back to default
Signal
The new signal tag allows you to send a signal with an identifer
character in a Dialog string. This identifier can be any single character, and comes after the signal tag token @
. For example [@a]
, [@1]
, [@!]
are all valid signal tags. The result is great flexibility in how your code interacts with your dialog letting you, for example, change the state of your world after you talk to someone, among many other possible scenarios. A very simple example of this in action is:
Given the following Dialog in a SyndiBox:
Time to test signals. [@b]
And GDScript code similar to this:
$SyndiBox.connect('signal_tag', self, '_on_SyndiBox_signal_tag')
func _on_SyndiBox_signal_tag(identifier):
if identifier == 'a':
print('Path A')
if identifier == 'b':
print('Path B')
- Activating the SyndiBox would result in the following printed to the console:
Path B
Custom Tags
SyndiBox allows you to create your own custom tags without overwriting any of the main addon code. The token for custom tags is X
. For example [X!]
or [Xm]
or even [X ]
are all valid custom tags. In order to do create a custom tag you should do the following:
- Find
custom.gd
in the addons folder - Optionally create your own copy of
custom.gd
(or name it anything else you want) outside of the addon folder, and set theCustom Effects
variable in the inspector to this new file. This allows you to avoid overwriting your custom work when you upgrade this plugin. - Add a new case to the match statement
- It is critical that you include
string.erase(sb.step,4)
andstring = string.insert(sb.step,char(8203) + "[:2][^r]")
if you do not wish to break encoding and nested tagging sb
is the SyndiBox parent, and from there you can access any variables you wish to change, including but not limited to,color
,speed
,font
,timer
, and many more.
While the custom.gd has a couple good examples already, another simpler example is included below for reference:
func check(string):
match sb.emph:
"[Xm]": # Example
if !sb.escape:
string.erase(sb.step,4)
string = string.insert(sb.step,char(8203) + "[:2][^r]")
sb.color = Color(255, 0, 255, 1)
This very simple example turns the text magenta when you use the tag [Xm]
in a Dialog string.
As custom tags are checked and processed last, you X
tags will override any other tags if they conflict.
Bugs/Issues
If you have any bugs/issues to report or features to request, please submit them to the Issues tab. If you need help and don't find your answer in the wiki's FAQ, Please contact me at Telegram (@sudospective) or Discord (Sudospective#0681) and I will reply at my earliest convenience.
A powerful engine perfect for dialog-heavy games such as RPGs, visual novels, platformers, etc.
Recent hotfixes (1.7.1):
- Updated version in README.md
- Updated version in syndibox.gd
Recent changes (1.7.0):
- Added scollbar
- Added a way to start dialog through script
- You can change how long before auto-advance
- You can now disable the scrollbar and use the old text transposing
- Added an option for the scrollbar to follow the text
- Added the signal tag which emit a signal when read
- Text hide and pause can support more than 10 seconds/ticks
- You can manually hide/pause printing
- You can stop advancement of dialogue
- Updated README.md to show added and changed features
- Various bug fixes and optimizations
Known Issues (1.6.0):
- "Tipsy" and "Drunk" positional effects do not work properly with instant print.
Big thank you to all contributors so far, you've been a huge help! <3
Reviews
Quick Information

A powerful engine perfect for dialog-heavy games such as RPGs, visual novels, platformers, etc.Recent hotfixes (1.7.1):- Updated version in README.md- Updated version in syndibox.gdRecent changes (1.7.0):- Added scollbar- Added a way to start dialog through script- You can change how long before auto-advance- You can now disable the scrollbar and use the old text transposing- Added an option for the scrollbar to follow the text- Added the signal tag which emit a signal when read- Text hide and pause can support more than 10 seconds/ticks- You can manually hide/pause printing- You can stop advancement of dialogue- Updated README.md to show added and changed features- Various bug fixes and optimizationsKnown Issues (1.6.0):- "Tipsy" and "Drunk" positional effects do not work properly with instant print.Big thank you to all contributors so far, you've been a huge help! <3