A Customisable Custom Help Cog For Red:

Couldn’t get a shorter title. Anyways, the cog introduces categories, meaning you can now bunch up cogs into one blob and give it a name,description and reaction.

This cog is made cause I didn’t like 30 help pages for my bot and I wanted to bunch my cogs.

Use [p]chelp to see what can be customised and [p]chelp set for even more customisations.

As an additional bonus, if you have the alias cog loaded, those aliases will also be retrieved.

Setup

Note: Use [p]chelp toggle 1 to set your help to the custom help, else it’ll remain as the normal one

  1. Start by doing [p]chelp list to list all your cogs
  2. Pick the cogs you need to group into a category.
    Then use [p]chelp create, now add the catergorized cogs as shown below.

    Note

    This command can be run as many times as needed and can load up cogs into existing categories as well.

    This is the yaml syntax.
    category1:
     - Cog1
     - Cog2
    category2:
     - Cog3
     - Cog4
    
    create categories
  3. Congrats, you just bunched up cogs into categories. Now you can do [p]help <category> to load the help of all those cogs in the category.

  4. Now [p]help should show those categories to be that much cooler!
    raw help
  5. Yay! But wait, we need to fill in the blanks.
    Use [p]chelp edit to add the everything you need to customise a category.
    The format is simply:
    category:
    - name: new name (ONLY use this to rename! else this isn't necessary)
    - desc: new description
    - long_desc: long description
    - reaction: reaction emoji
    - thumbnail: url to thumbnail for the category
    - label: Label for category (For category and buttons)
    - style: ButtonStyle for category button (primary, secondary, success, danger)
    
    Feel free to mix and match to your liking, as in example below:
    editz
  6. Once you’ve edited everything, your help menu will look even more impressive!
    Default command
  7. But wait, there’s even more.

Themes

Introducing themes that were shamesslessly ripped off from other bots cause I’m bad at designing.

  1. [p]chelp listthemes
    This will get all the themes and the features available in each of them.
    list themes
  2. [p]chelp load <theme> <feature>
    This will load the respective theme for a particular feature.

    Note

    You can use [p]chelp load <theme> all to load all the available feature in that theme.
    You can also mix and match any theme. (You will not lose configured categories. <_<)
    An example of [p]chelp load dank main is shown below:
    image5
  3. [p]chelp show
    This will show what themes are loaded, along with your current settings.
    image6
  4. [p]chelp unload <feature>
    Run this command to reset the given feature back to default.
  5. [p]chelp reset
    This command will reset the themes to default.

Note

This won’t revert to the regular Red help menu, to do so use [p]chelp set 0

  1. Whew, wait you thought we were done? Or are we…

Category Configuration

Custom Help also has additional configuration available to hide categories in
certain circumstances, such as developer or even NSFW from public
view.
  1. [p]chelp dev
    This will hide categories and only be visible by the bot owner.
  2. [p]chelp nsfw
    This will hide categories to only be visible within NSFW-marked channels.
  3. [p]chelp auto
    To make a pre-formatted list of categories, this will take tags from your installed cogs
    and auto-generate a list for you to use in [p]chelp create.
  4. [p]chelp info
    This will provide a description of themes available.

Custom Help Settings

Additional settings in Custom Help can be configured via [p]chelp set, including but not limited to
custom navigation, thumbnails, using replies, and more.
  1. [p]chelp set arrows
    Custom Navigation, YAY!
    If you feel the default arrow icons are boring and plain, and you want to spice up navigation, you’re probably looking for this. (Supports custom emotes.)
    When using custom emotes from servers, your bot must also have access to them to be used.
    You can use the emote ID (:some_emote:123456789123), or use the emote itself in the following format:

    Note

    The valid arrows are left, right, cross, home, force_left and force_right

    Example:
    left :
    - emoji: ↖️
    - style: success (primary, secondary, success, danger)
    - label: 'text is cool'
    
  2. [p]chelp set thumbnail
    If you ever wanted to add a little image on the top right of the embed, you can set the image
    for the thumbnail with a valid link.

    Note

    The link must be a direct image link, ending in GIF, JPG, or PNG.

  3. [p]chelp set timeout
    This will change how long the reaction menu stays (in seconds) before being removed.
  4. [p]chelp set type
    This command enables the owner to change the menutype/arrowtype to buttons, dropdowns or just reactions
  5. [p]chelp set usereply
    This will have the bot reply to your message after using commands.
  6. [p]chelp set nav
    This command allows to remove the arrows completely. Without the arrows, the user cannot navigate.
    This setting was made cause of multiple user requests, use it at will.

Additional Notes

  • Don’t be a moron trying to mix minimal theme (non-embed) with the other embed-based themes.

  • Use [p]helpset pagecharlimit to increase or decrease your page size, so as to add/subract more categories per page.

  • For my sanity, kindly disable menus if you are using the minimal theme.

  • A Good Practice is to have the category names all lowercased and the category description as Camelcase.

  • All the reactions and arrow emojis can be custom and even animated, you can even put the emoji ID (if you don’t have nitro).

  • Feel free to suggest new themes which you might want to see. Let me know if you think any part of the theme can be made better.
    I’m available in the Cog Support server.
  • If the owner of any bot feels that their theme needs to be removed from this cog, please inform me, I’ll remove it.

FAQ

  1. Reactions are not working, why?!

    1. Your bot should have the react perms

    2. [p]helpset usemenus 1 (menus must be enabled)

  2. Can I make my own theme in your cog?

    Well you can just learn about the help formatter api.
    If you really need categories as well then you can fork my repo, navigate to the themes folder, see how the themes are made and make a new file in that folder with your custom coded theme and load the cog.
    Your theme should magically appear in the [p]chelp listthemes
  3. Some of my reactions are vanishing?

    You probably have more than 14 categories. A message can only have 14 reactions from a bot at max (I think). This is a discord limitation and it’s unhandled by the cog.

Credits

  • My heartfelt thanks to OofChair and TwinShadow. Both of these amazing people did some major testing and contribution to the cog.

  • To everyone who patiently answered my noob coding questions.

  • To the other bots R.Danny, Dankmemer, Nadeko from which the theme designs were taken.

  • Pikachu's help menu from Flare which was the spark, that the idea of this cog isn’t too far fetched

  • The whole Red community cause redbot is epic and the help_formatter is God sent.

  • Special thanks to Jackenmen who solved most of the doubts that came during the development.

Changelogs

v1.1.0

Major Changes

  • Revamped the Uncategorised cog architecture, uncategorised is no longer a “special” config entry

  • Improved chelp create and edit

  • Better cog setup, loads/reload handling

  • Some QoL improvements on display

Bug Fixes

  • Fixed [p]chelp nsfw add not working

  • Fixed [p]chelp reorder

  • Properly show up arrows when the page needs it

v1.0.1

Major Changes

  • Removed slashtags and it’s dependencies from the cog

  • Uncategorised can now be reordered to be placed anywhere using [p]chelp reorder

  • Support for dpy2

  • Addition of dropdowns, buttons, and reactions for both menus and arrows

  • Added support for custom thumbnails per category

  • Zero config read calls when [p]help is called, Additional internal caches for optimised page processing

Command Changes

  • Changed chelp set to chelp toggle

  • chelp set is used as an alias for chelp settings

  • chelp set now has a new subcommand nav to toggle the navigation arrows

  • chelp show shows more info now

  • chelp set type for setting the menu and arrow type

  • chelp create and edit now have more arguments for button/dropdown customisability