Originally forked from https://github.com/3ddelano/discord.gd for Godot 4.x
100% GDScript
- Make a Discord Bot in less than 10 lines of code
- Supports
Buttons
andSelectMenus
- Supports
Application Commands
akaSlash Commands
- Uses Godot signals to emit events like
bot_ready
,guild_create
,message_create
,message_delete
, etc. - Get User Avatar and Guild Icon as Godot's
ImageTexture
- Uses coroutine async functions i.e Promises
This is a regular plugin for Godot.
Copy the contents of addons/discord_gd
into the addons/
folder in the same directory as your project, and activate it in your project settings.
The plugin now comes with no extra assets to stay lightweight. If you want to try an example scene, you can see the examples from: Discord.gd Examples
For in-depth installation instructions check the Installation Wiki
Note: You will need a valid Discord Bot token available at Discord Applications
-
After activating the plugin. There will be a new
DiscordBot
node added to Godot. Click on any node in the scene tree of your scene for exampleRoot
and add theDiscordBot
node as a child. -
Connect the various signals (
bot_ready
,guild_create
,message_create
,message_delete
, etc) of theDiscordBot
node to the parent node, either through the editor or in the script using theconnect()
method. -
Attach a script to the
Root
node.
extends Node2D
func _ready():
var discord_bot = $DiscordBot
discord_bot.TOKEN = "your_bot_token_here"
discord_bot.login()
discord_bot.connect("bot_ready", self, "_on_DiscordBot_bot_ready")
func _on_DiscordBot_bot_ready(bot: DiscordBot):
print('Logged in as ' + bot.user.username + '#' + bot.user.discriminator)
print('Listening on ' + str(bot.channels.size()) + ' channels and ' + str(bot.guilds.size()) ' guilds.')
This plugin is a non-profit project developped by voluntary contributors.