
Publisher
quentincaffeino
In-game console
In-game console for Godot, easily extensible with new commands. I'll try to keep project on this website up-to-date with its sources. If you have any problems with this project please try downloading more up-to-date version from github (https://github.com/quentincaffeino/godot-console/archive/master.zip). If problem persists do not hesitate to contact me on GitHub via Issues or QuentinCaffeino#9674 on Discord Project website: https://github.com/quentincaffeino/godot-console
This plugin has been mirrored from the Godot Asset Library.
The plugin author is in no way affiliated with Gadget.
If you are the author of this plugin and would like this mirror removed, please contact support@gadgetgodot.com.
Godot Console
In-game console for Godot, which could be easily extended with new commands.
Features:
Creating custom commands with add_command.
Autocomplete with
TAB
keyboard 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
UP
andDOWN
keyboard arrows).- Change the number of stored commands in the history. (Change in
Console.gd
line 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-console
and check the Enable checkbox. - You can activate the console with CTRL + ` while running your game (can be changed, see
quentincaffeino_console_toggle
action).
Via GIT:
- Clone this project or download latest release.
- Copy
./addons/@quentincaffeino
and./addons/quentincaffeino
into your projectsaddons
folder.
So you will have this structure:
res://
├── addons
│ ├── @quentincaffeino
│ ├── quentincaffeino
│ ├── ...
- Open
Project > Project Settings > Plugins
, search forquentincaffeino-console
and check the Enable checkbox. - You can activate the console with CTRL + ` while running your game (can be changed, see
quentincaffeino_console_toggle
action).
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
Console
checkbox from the addon tab you will want to enableCSharpConsole
via the plugin checkbox - See the example below for how to use once plugin is enabled
Example:
public override void _Ready()
{
_wrapper = GetTree().Root.GetNode("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):
Sergei ZH💻 💬 📖 🤔 👀
Michael Brune️️️️♿️ 🐛
Michael Aganier🐛
hpn332🐛
Danil🐛
Paul Hocker🐛
Samantha Clarke🐛
Hugo Locurcio️️️️♿️
Dmitry Derbin💬
VitexHD🐛
hilfazer💻 🐛
Crazy Chenz💻
Marcus Schütte💻
Kimmo Salmela💻
GuillaumeCailhe🐛 🤔 💬
Josh DeGraw💻
Lyaaaaaaaaaaaaaaa🚇
Gamemap📖
Spyrex💻
Zhwt💻
Ryan Linehan💻
Kurt📖
eisclimber🐛 💻
Rafael Correa💻
PraxTube🐛
This project follows the all-contributors specification. Contributions of any kind welcome!
License
Licensed under the MIT license, see LICENSE.md
for more information.