Module Manifest¶
The module manifest (manifest.toml
) contains metadata which describes your module, and provides information to Breadcord. It is a TOML document located in the root directory of your module.
A valid module manifest must contain a manifest_version
key which helps Breadcord identify your module. Currently, this should be set to a value of 1
. This is followed by a number of module fields under the [module]
table.
Example¶
manifest_version = 1
[module]
name = "Example Module"
id = "example_module"
description = "This is an example of a Breadcord module manifest."
version = "0.1.0"
license = "GNU GPLv3"
authors = ["Alice", "Bob"]
requirements = ["aiohttp", "pillow>=9.0.0", "numpy==1.24.*"]
permissions = ["read_messages", "send_messages"]
Fields¶
name
🔸¶
The name of your module in human-readable text.
Type: String
Length: 1-64 characters (inclusive)
Examples: "Example Module"
, "My ✨special✨ module!"
id
🔸¶
A unique identifier for your module, which will be used to identify and select it both by Breadcord and the end user.
Warning
Before choosing an ID, please make sure it's not already in use by another published module!
Type: String (lowercase letters a-z and underscores only)
Length: 1-32 characters (inclusive)
Examples: "example_module"
, "my_special_module"
description
¶
Human-readable text describing the module.
Type: String
Length: 1-128 characters (inclusive)
Example: "This is an example of a Breadcord module manifest."
version
🔸¶
The module's current version.
Type: String using the Python version specifier (following PEP 440) format
Examples: "0.1.0"
, "1.0"
, "1.2.3rc1"
license
¶
Short name of the license the module is under (e.g. GNU GPLv3
). Tips for choosing a licence can be found here.
Type: String
Length: 1-16 characters (inclusive)
Examples: "GNU GPLv3"
, "MIT"
, "WTFPL"
authors
¶
A list of module author names. Take credit for your work!
Type: List of strings
Length: 1-32 characters (inclusive) per element
Example: ["Alice", "Bob"]
requirements
¶
A list of requirements to be automatically installed using pip
when the module is being loaded.
Type: List of strings using the pip requirement specifier format
Example: ["aiohttp", "pillow>=9.0.0", "numpy==1.24.*"]
Warning
Keep in mind that your requirements could conflict with requirements from another module, so keep your requirements broad where you can!
permissions
¶
A list of guild permissions the module requires to function. These will be shown to the user upon installation.
Type: List of strings as enumerated by discord.Permissions
Example: ["read_messages", "send_messages"]