Core of our projects. Inspired by Ren'Py, this project aiming to provide a way to make narrative-based games on Godot easily. Simplify your project, if it is a visual novel, point and click, RPG, interactive text game or many other styles and blends of styles.
Support this project here itch.io.
Showcase - Installation - Use .rk files - Get Started - Documentation - Rakugo Addons - FAQ - Infos
- Ren'Py like
- Dialog system (say, choices, ask, jump)
- Own script language
- Save/Load system
- Global variables and character's variables
- Unit tested with Gut
Check our project Examples to see examples of uses. You can copy and customize them for yours projects too !
If your game uses Rakugo, tell us on Discord.
Signal system have changed. So we renamed all Rakugo signals.
Just add "sg_" at begining. Like "old_signal_name" to "sg_old_signal_name".
Everything else is the same.
To install Rakugo plugin, download it here. Then extract the Rakugo
folder into your res://addons
folder. Finaly, enable the plugin in project settings and restart Godot-Engine.
If you want to know more about installing plugins you can read the godot official documentation page.
Rk files are text files. So you can use .txt extension. But if you want to use .rk you can do this :
- Go to Editor > Editor Settings
- In search bar type : "Extensi"
- Add "rk"
/!\ .rk files are not exported by default /!\
Follow this guide https://rakugoteam.github.io/rakugo-docs/export/
- Create a scene with a Node and add a script on it
GdScript (Node.gd) :
extends Node
const file_path = "res://Timeline.rk"
func _ready():
Rakugo.sg_say.connect(_on_say)
Rakugo.sg_step.connect(_on_step)
Rakugo.sg_execute_script_finished.connect(_on_execute_script_finished)
Rakugo.parse_and_execute_script(file_path)
func _on_say(character:Dictionary, text:String):
prints("Say", character.get("name", ""), text)
func _on_step():
prints("Press \"Enter\" to continue...")
func _on_execute_script_finished(file_name:String, error_str:String):
prints("End of script")
func _process(delta):
if Rakugo.is_waiting_step() and Input.is_action_just_pressed("ui_accept"):
Rakugo.do_step()
- Create your first RakuScript (text file) "Timeline.rk" at root of your project folder (res://)
RkScript (Timeline.rk) :
character Gd "Godot"
Gd "Hello, world !"
Gd "I'm <Gd.name> !"
- Run Scene (F6)
Out :
Say Godot Hello, world !
Press "Enter" to continue...
Say Godot I'm Godot !
Press "Enter" to continue...
End of script
If you want to know how to use Rakugo or write rk scripts.
Go to https://rakugoteam.github.io/rakugo-docs/ !
Q: So it's about adding a dialogue system to the engine?
A: YesQ: How does the project works ?
A: By signals and methods from a singleton (autoload) called Rakugo.Q: Is it easy to use ?
A: YesQ: What difference with Dialogic ?
A: Our project use normal coding with our own scripting langue inspired by Ren'Py, instead of visual. Plus is just a core, simple as possible, autoloaded when you enabled the plugin. If you want more check our addons and kits bellow.If you want to help please write to us on our Discord.
-
Rakugo Team website: https://rakugoteam.github.io/
-
icons from game-icons.net