/godot-console

In-game console for Godot 3.

Primary LanguageGDScriptMIT LicenseMIT

In-game console for Godot Logo

Godot Console

All Contributors

In-game console for Godot Screenshot

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 and DOWN keyboard arrows).

  • Change the number of stored commands in the history. (Change in Console.gd line 30 the current NUMBER to an positiv INT value)
    30: var History = preload('Misc/History.gd').new(NUMBER) setget _set_protected)

  • Flexible types:

  • FuncRef support with Godot >=3.2 (can be used as a command target).

Installation:

Via GIT (preferred):

  1. Clone this project or download latest release.
  2. Copy ./godot/addons/quentincaffeino-console into your projects addons folder.

So you will have this structure:

res://
├── addons
│   ├── quentincaffeino-console
│   ├── ...

  1. Open Project > Project Settings > Plugins, search for quentincaffeino-console and check the Enable checkbox.
  2. You can activate the console with ` while running your game (can be changed, see quentincaffeino_console_toggle action).

Via Editor AssetLib:

  1. Open AssetLib.
  2. Search for Console, category is Scripts; Open it and click Donwload and then Install.
  3. Click install. Package installer will copy filestructure as-is so you will have this directories in your project: godot/addons/quentincaffeino-console.
  4. Create addons folder if you haven't already and move quentincaffeino-console there so you will have this structure:
res://
├── addons
│   ├── quentincaffeino-console
│   ├── ...

  1. Open Project > Project Settings > Plugins, search for quentincaffeino-console and check the Enable checkbox.
  2. You can activate the console with ` 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");
}

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

🚇

This project follows the all-contributors specification. Contributions of any kind welcome!

License

Licensed under the MIT license, see LICENSE.md for more information.