A powerful and flexible visual novel framework for Godot Engine, designed to make creating interactive narratives simple and enjoyable.
- RGD Script Language: Easy-to-learn custom scripting language for visual novels
- Character System: Define characters with multiple sprites, expressions, and voice sets
- Scene Management: Seamless transitions between backgrounds, characters, and UI elements
- Text Animation: Beautiful typewriter effects and text animations
- Audio Integration: Background music, sound effects, and voice acting support
- Screenshot Thumbnails: Automatic Base64-encoded screenshot thumbnails for save slots
- Temporary Screenshots: Capture UI-free game scenes for clean save thumbnails
- Auto-Save: Automatic saves at key story points (slot 0)
- Manual Save: Player-controlled saves in slots 1 and above
- Encrypted Data: AES encryption for save data security
- AdvScreen: Advanced screen management system
- Custom Themes: Fully customizable visual themes
- Responsive Design: Adaptive UI that works on different screen sizes
- Menu Integration: Built-in game menus and settings screens
- Custom Commands: Extend functionality with GDScript integration
- Asset Management: Efficient resource loading and management
- Debug Tools: Built-in debugging and testing utilities
- Documentation: Comprehensive bilingual documentation
-
Clone the repository:
git clone https://github.com/AheadGameStudio/Argode.git cd Argode -
Open in Godot:
- Launch Godot Engine (4.x required)
- Click "Import" and select the
project.godotfile - Wait for the project to import and compile
-
Run the demo:
- Press F5 or click the play button
- Select the main scene when prompted (or create a new scene for your game)
-
Create your first scenario:
# scenarios/my_story.rgd character yuko "Yuko" color:#4A90E2 label start: scene bg common/bg_room.png yuko happy "Hello! Welcome to Argode!" yuko normal "This is your first visual novel scene." menu: "Continue the story": yuko excited "Great! Let's explore more features..." jump next_scene "Save the game": save 1 yuko normal "Game saved! You can load it anytime." jump next_scene label next_scene: yuko normal "Thanks for trying Argode!" return -
Load the scenario:
# Call this in your Main scene. # Specify the message window that inherits from ArgodeScreen and was added to the scene @onready var argode_gui: ArgodeScreen = %ArgodeGui func _ready() -> void: # Wait for the message window to be ready await argode_gui.screen_ready # Ensure both ArgodeSystem and UIManager exist to avoid errors if ArgodeSystem and ArgodeSystem.UIManager: # Jump to the 'start' label to begin argode_gui.jump_to("start") else: print("โ ArgodeSystem or UIManager not found")
- English: Full Documentation
- ๆฅๆฌ่ช: ๅฎๅ จใชใใญใฅใกใณใ
Visit our online documentation for detailed guides:
character- Defines a character with sprites and propertiesscene- Sets the background image and sceneaudio- Plays audio datamenu- Creates interactive choices
save [slot]- Saves the game to a specified slot (1 or higher)load [slot]- Loads the game from a specified slot (0 or higher)capture- Takes a temporary screenshot for the save thumbnail
fade- Screen transitions and effectswait- Pauses execution for timing controlset- Creates variables, arrays, and dictionaries
- Godot Engine 4.x
- Basic knowledge of GDScript (for custom commands)
For the best development experience, install our official VS Code extension:
โจ Features:
- Syntax Highlighting: Full support for RGD script syntax with beautiful color themes
- Smart Indentation: Automatic indentation for labels, menus, and choices
- Code Folding: Collapsible label blocks for better organization
๐ฆ Installation:
- Download the
.vsixfile from the releases page - Open VS Code โ Extensions (Ctrl+Shift+X)
- Click "..." โ "Install from VSIX"
- Select the downloaded file
If you create definition files with a .rgd extension inside the definitions directory, ArgodeSystem will automatically load them first.
Similarly, .gd files in custom/commands that inherit from BaseCustomCommand are also automatically loaded as user-defined custom commands.
addons/argode/ # Core framework files
โโโ core/ # Main system components
โโโ builtin/ # Built-in commands
โโโ commands/ # Command handling system
โโโ managers/ # Game state managers
custom/ # Your custom commands (optional)
โโโ commands/ # Custom command implementations
definitions/ # Asset and character definitions (optional)
โโโ assets.rgd # Image, audio, and UI definitions
โโโ characters.rgd # Character definitions
โโโ variables.rgd # Global variable definitions
scenarios/ # Story scripts (.rgd files)
โโโ main.rgd # Scenario file
Root files:
โโโ project.godot # Godot project file
โโโ README.md # This file
Documentation: Full documentation is available online at https://aheadgamestudio.github.io/Argode/
Note: Development files (test/, tools/, assets/, scenes/, docs/, etc.) are excluded from distribution to keep the framework clean and focused.
# custom/commands/MyCommand.gd
extends BaseCustomCommand
func _init():
command_name = "mycommand"
description = "My custom command"
func execute(args: Array, context: Dictionary) -> Dictionary:
# Your custom logic here
return {"success": true}We welcome contributions! Please read our Contributing Guidelines before submitting pull requests.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: https://aheadgamestudio.github.io/Argode/
- VS Code Extension: https://github.com/AheadGameStudio/Argode-rgd-syntax-highlighter
- Issues: https://github.com/AheadGameStudio/Argode/issues
- Discussions: https://github.com/AheadGameStudio/Argode/discussions
Thank you to all contributors who help make Argode better for the visual novel development community.
Made with โค๏ธ for visual novel creators using Godot Engine
