https://github.com/rakugoteam/rakugo-dialogue-system
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.
https://github.com/rakugoteam/rakugo-dialogue-system
addon dialogue-systems gdscript godot godot-engine point-and-click renpy rpg visual-novel
Last synced: 14 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/rakugoteam/rakugo-dialogue-system
- Owner: rakugoteam
- License: mit
- Created: 2021-10-30T09:31:27.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-08-14T12:25:30.000Z (about 1 year ago)
- Last Synced: 2025-04-09T09:09:34.918Z (6 months ago)
- Topics: addon, dialogue-systems, gdscript, godot, godot-engine, point-and-click, renpy, rpg, visual-novel
- Language: GDScript
- Homepage: https://rakugoteam.github.io
- Size: 2.95 MB
- Stars: 236
- Watchers: 5
- Forks: 10
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
#  Rakugo Dialog System

[](https://discord.gg/K9gvjdg)
[](https://github.com/rakugoteam/Rakugo)
[](https://github.com/rakugoteam/Rakugo)
[](https://github.com/rakugoteam/Rakugo/network)
[](https://github.com/rakugoteam/Rakugo)
[](https://github.com/rakugoteam/Rakugo/issues)
[](https://github.com/rakugoteam/Rakugo/issues)Core of our projects. Inspired by [Ren'Py](https://www.renpy.org), this project aiming to provide a way to make narrative-based games on [Godot](https://godotengine.org) 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](https://rakugoteam.github.io/donations/).
[Showcase](#Showcase) -
[Installation](#Installation) -
[Use .rk files](#Use-.rk-files) -
[Get Started](#Get-Started) -
[Documentation](#Documentation) -
[Rakugo Addons](#Rakugo-Addons) -
[FAQ](#faq) -
[Infos](#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](https://github.com/bitwes/Gut)## Showcase
### Examples
Check our project [Examples](https://github.com/rakugoteam/Examples) to see examples of uses. You can copy and customize them for yours projects too !
### Games
- [**Space drive beats**](https://plopsis.itch.io/space-drive-beats)
- [**Bot Saves Dream**](https://plopsis.itch.io/curator-bot)
- [**Mon Dernier Jour**](https://theludovyc.itch.io/mondernierjour)If your game uses Rakugo, tell us on [Discord](https://discord.gg/K9gvjdg).
## 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](https://github.com/rakugoteam/Rakugo/releases). 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](https://docs.godotengine.org/en/stable/tutorials/plugins/editor/installing_plugins.html).
## 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) :
```gdscript
extends Nodeconst 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 !"
```- 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](https://github.com/coppolaemilio/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
- [Advanced Text](https://github.com/rakugoteam/AdvancedText)
## Rakugo Kits
- [Visual Novel](https://github.com/rakugoteam/VisualNovelKit)
- [Click & Point Adventures](https://github.com/rakugoteam/Adventure)
- [RPG](https://github.com/rakugoteam/rakugo-open-rpg)## Infos
If you want to help please write to us on our [Discord](https://discord.gg/K9gvjdg).
- Rakugo Team website: https://rakugoteam.github.io/
- [Godot icons](https://github.com/godotengine/godot-design/tree/master/engine/icons/optimized)
- icons from [game-icons.net](https://game-icons.net)