NAME
godot-console — In-game console for Godot 3.
SYNOPSIS
INFO
DESCRIPTION
In-game console for Godot 3.
README
Godot Console

In-game console for Godot, which could be easily extended with new commands.
Features:
Creating custom commands with add_command.
Autocomplete with
TABkeyboard key.Writing to console using write and write_line methods. You can also use BB codes.
(Is also printed to engine output)
Session command history (using
UPandDOWNkeyboard arrows).- Change the number of stored commands in the history. (Change in
Console.gdline 30 the current NUMBER to an positive integer value)29: var History = preload('Misc/History.gd').new(NUMBER)
- Change the number of stored commands in the history. (Change in
FuncRef support with Godot >=3.2 (can be used as a command target).
Installation:
Via Editor AssetLib:
- Open AssetLib.
- Search for Console, category is Scripts; Open it and click Download and then Install.
- Click install. Package installer will copy filestructure as-is so you will have this additional directories in your project:
addons/@quentincaffeino/*,addons/quentincaffeino/*. - Open
Project > Project Settings > Plugins, search forquentincaffeino-consoleand check the Enable checkbox. - You can activate the console with CTRL + ` while running your game (can be changed, see
quentincaffeino_console_toggleaction).
Via GIT:
- Clone this project or download latest release.
- Copy
./addons/@quentincaffeinoand./addons/quentincaffeinointo your projectsaddonsfolder.
So you will have this structure:
res://
├── addons
│ ├── @quentincaffeino
│ ├── quentincaffeino
│ ├── ...
- Open
Project > Project Settings > Plugins, search forquentincaffeino-consoleand check the Enable checkbox. - You can activate the console with CTRL + ` while running your game (can be changed, see
quentincaffeino_console_toggleaction).
Example usage:
Usage we will get:
$ sayHello "Adam Smith"
Hello Adam Smith!
GDScript
# Function that will be called by our command func print_hello(name = ''): Console.write_line('Hello ' + name + '!')
func _ready(): # Registering command # 1. argument is command name # 2. arg. is target (target could be a funcref) # 3. arg. is target name (name is not required if it is the same as first arg or target is a funcref) Console.add_command('sayHello', self, 'print_hello')
.set_description('Prints "Hello %name%!"')
.add_argument('name', TYPE_STRING)
.register()
C#
// Function that will be called by our command public string PrintHello(string name = null) { GD.Print("Hello " + name + "!"); return "test"; }
public override void _Ready() { // Registering command // 1. argument is command name // 2. arg. is target (target could be a funcref) // 3. arg. is target name (name is not required if it is the same as first arg or target is a funcref) (((GetNode("/root/Console").Call("add_command", "sayHello", this, "PrintHello") as Godot.Object) .Call("set_description", "prints "hello %name%!"") as Godot.Object) .Call("add_argument", "name", Variant.Type.String) as Godot.Object) .Call("register"); }
C# with wrapper (Note this is WIP and some methods may be missing)
- Instead of enabling the
Consolecheckbox from the addon tab you will want to enableCSharpConsolevia the plugin checkbox - See the example below for how to use once plugin is enabled
Example:
public override void _Ready() { _wrapper = GetTree().Root.GetNode<Console>("CSharpConsole"); _wrapper.AddCommand("sayHello", this, nameof(PrintHello)) .SetDescription("prints \"hello %name%!\"") .AddArgument("name", Variant.Type.String) .Register(); }
public void PrintHello(string name = null) { GD.Print($"Hello {name}!"); }
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
License
Licensed under the MIT license, see LICENSE.md for more information.