1 GrumpyHelp EN
darksoon edited this page 2026-05-13 21:03:08 +02:00
This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Help — Help Hub Channel

Auto-deployed help embed with a module dropdown and quick-action buttons. Users get an overview of all commands at a glance and can directly trigger common actions (open a ticket, verify) right from the embed.


Activation

In configs/config.yml:

addons:
  help: true

channels:
  help: "HELP_CHANNEL_ID"   # Channel where the help embed is posted

On the next start, the bot automatically posts the embed. Idempotent — on subsequent starts it only reposts if the stored embed was deleted.


help.yml

configs/modules/help.yml:

enabled: true
embed:
  author:
    name: "%guild_name%"
    iconUrl: "%guild_icon%"
  title: 📚 Command Overview
  description: |-
    **Welcome to the Help Hub!**

    Here you can find all bot features at a glance.

    **🎯 How it works:**
    1⃣ Select a module from the dropdown
    2⃣ You get a list of all available commands
    3⃣ Click a quick-action button for common actions
  color: "#5865F2"
  thumbnail: "%guild_icon%"
  footer:
    text: "%guild_name% · Help Hub"
  timestamp: true
quickActions:
  - label: Open Ticket
    emoji: 🎫
    style: Primary
    action: ticket
  - label: Verify
    emoji: 
    style: Success
    action: verify
moduleDescriptions: {}

Fields

Field Meaning
enabled Master toggle. Even if addons.help: true, the module can be disabled here.
embed Full embed (title, description, color, author, thumbnail, footer, fields, timestamp). Placeholders: %guild_name%, %guild_icon%.
quickActions List of buttons below the embed. action: ticket (links to the support channel), verify (links to the verify channel), or link (with a url field). style: Primary / Secondary / Success / Danger / Link.
moduleDescriptions Optional per-module descriptions for the dropdown. Key = module name, value = description.

Commands

Command Permission Function
/help show Everyone Inline help with module dropdown (ephemeral)
/help module <name> Everyone Directly show commands for a specific module
/help redeploy Manage Server Redeploy the help embed (deletes the old one, posts a new one)
/help reload Manage Server Reload help.yml

Behavior

Auto-Deploy

On startup, the bot checks:

  • Is there a message ID in the database (HelpHubMessage)?
  • Does that message still exist in the configured channels.help?
  • If not → repost, save the new ID.

Channel Change

If channels.help is changed to a different channel:

  • On the next start, the bot deletes the old embed in the old channel
  • Posts the new embed in the new channel
  • Updates the database entry

Module Dropdown

The dropdown below the embed lists all enabled modules from addons:. The filter shows user commands to everyone, and staff-only commands only to users with the appropriate Discord permission (ModerateMembers, KickMembers, BanMembers, Manage*).

Unknown Module Key

/help module <name> with a non-existent or disabled module shows a friendly error embed (instead of an empty list).

Long Command Lists

Long module command lists are truncated line by line (no mid-line cut) and appended with …and N more — keeping the embed always under Discord's limit without unreadable half-sentences.

Quick-Action Buttons

action: ticket → links to channels.support action: verify → links to channels.verify action: link → freely chosen URL (e.g. to a forum)

If the referenced channel is not configured, the button is automatically hidden.

Stale Button Protection

Button and dropdown IDs are validated against the configuration (not the Discord component's customId). If someone clicks an old button from a no-longer-deployed embed, they receive an ephemeral "This action is no longer available" response.


FAQ

How do I change the buttons? Edit configs/modules/help.yml > quickActions, then run /help reload and /help redeploy.

Can users interact with the embed in the channel even though it's not theirs? Yes — all interactions (dropdown, button) are ephemeral. Only the clicking user sees the response.

Do I need a dedicated channel for /help? Not for /help show — that command works anywhere ephemerally. The channels.help channel is only for the auto-deployed hub embed.