BarbaricDev
Tool Open Source

AI-Plans Onboarding Discord Bot

View on GitHub

A configurable Discord bot that sends welcome messages and role-triggered messages with interactive button navigation. Each server gets its own JSON-based config, fully manageable through Discord admin commands — no editing config files directly.

Originally built for onboarding on the ai-plans.com Discord server, where it is still actively running.

Features

  • Welcome messages — send a message to a channel when a member joins or receives a specific role
  • Role triggers — map Discord roles to messages with priority support (if multiple roles are added at once, only the highest-priority message is sent)
  • Interactive buttons — attach buttons to messages that navigate to other configured messages as ephemeral follow-ups
  • Per-server config — each guild stores its settings in a JSON file, created and managed entirely through bot commands

Admin Commands

All commands require the Administrator permission. Run !help in any server channel to see the full list.

Command Description
!initInitialize the bot config for this server
!setwelcomechannel <#channel>Set the channel where welcome/role messages are sent
!setwelcomerole <@role>Set a role whose assignment triggers the welcome message
!welcomeonjoinenabled <true|false>Enable or disable the automatic welcome on member join
!setmessage <id> <text>Create or update a message. Use welcome as the ID for the join welcome.
!listmessagesList all configured messages and their buttons
!deletemessage <id>Delete a configured message
!setbutton <message_id> <target_id> <label>Add a button to a message that navigates to another message
!deletebutton <message_id> <label>Remove a button from a message
!sendmessage <id>Send a configured message to the current channel (for testing)
!addroletrigger <@role> <message_id> <priority>Send a message when a role is assigned. Higher priority wins if multiple roles are added simultaneously.
!deleteroletrigger <@role>Remove a role trigger
!listroletriggersList all configured role triggers

Tech Stack

Python discord.py Discord API JSON