• Stars
    star
    219
  • Rank 181,133 (Top 4 %)
  • Language GDScript
  • License
    MIT License
  • Created about 3 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Inspired by Ren'Py, Rakugo is a 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.

Logo Rakugo Dialog System

MIT License Join the Discord channel GitHub GitHub GitHub github-watchers GitHub GitHub

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


Feature

  • 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

Showcase

Examples

Check our project Examples to see examples of uses. You can copy and customize them for yours projects too !

Games

If your game uses Rakugo, tell us on Discord.

Update from Godot 3.X to 4.X

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.

Installation

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.

Use .rk files

Configure Godot

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"

Export

/!\ .rk files are not exported by default /!\

Follow this guide https://rakugoteam.github.io/rakugo-docs/export/

Get Started

  • 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

Documentation

If you want to know how to use Rakugo or write rk scripts.

Go to https://rakugoteam.github.io/rakugo-docs/ !

FAQ:

Q: So it's about adding a dialogue system to the engine?

A: Yes

Q: How does the project works ?

A: By signals and methods from a singleton (autoload) called Rakugo.

Q: Is it easy to use ?

A: Yes

Q: 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.

Rakugo Addons

Rakugo Kits

Infos

If you want to help please write to us on our Discord.