> For the complete documentation index, see [llms.txt](https://bit.lockyzdev.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bit.lockyzdev.com/docs/2025.1/dev/create-plugins/plugin-json.md).

# plugin.json

All the plugin.json options for a Bit Core Plugin and what they're used for

<table data-full-width="true"><thead><tr><th>Option</th><th>Description</th><th>Accepted Values</th><th>Default Value</th></tr></thead><tbody><tr><td>name</td><td>The plugins name</td><td>string</td><td>Bit Core</td></tr><tr><td>id</td><td>The plugins ID</td><td>string (requirements below)</td><td>bit-core</td></tr><tr><td>developer</td><td>The plugins developer</td><td>string</td><td>Lockyz Media</td></tr><tr><td>version</td><td>What version the plugin is</td><td>string</td><td>2024.1.0</td></tr><tr><td>support</td><td>A place to go to get support</td><td>string</td><td><a href="https://github.com/Lockyz-Media/bit/issues">https://github.com/Lockyz-Media/bit/issues</a></td></tr><tr><td>update_url</td><td>A url pointing to a json file used for the update notification system</td><td>string/url</td><td><a href="https://cdn.lockyzmedia.com/discord/bots/bit/plugins/core/update.json">https://cdn.lockyzmedia.com/discord/bots/bit/plugins/core/update.json</a></td></tr><tr><td>events</td><td>Whether the plugin has events or not</td><td>boolean (true/false)</td><td>true</td></tr><tr><td>commands</td><td>whether the plugin has slash commands or not</td><td>boolean (true/false)</td><td>true</td></tr><tr><td>has_index</td><td>Whether the plugin can start on bot startup or not</td><td>boolean (true/false)</td><td>true</td></tr><tr><td>main_file</td><td>The file the bot should use to find the startup function</td><td>string</td><td>index.js</td></tr><tr><td>list_in_plugins_command</td><td>Whether to display the plugin in the plugins command</td><td>boolean (true/false)</td><td>true</td></tr><tr><td>requirements</td><td>The various requirements for the plugin. Currently the requirements settings are ONLY used for defining the plugins support Bit versions.</td><td>array</td><td>See Below</td></tr></tbody></table>

Example

```json
{
    "name": "Bit Core",
    "id": "bit-core",
    "developer": "Lockyz Media",
    "version": "2025.1.0",
    "support": "https://github.com/Lockyz-Media/bit/issues",
    "update_url": "https://cdn.lockyzmedia.com/discord/bots/bit/plugins/core/update.json",
    "events": true,
    "commands": true,
    "has_index": true,
    "main_file": "index.js",
    "list_in_plugins_command": true,
    "requirements": {
        "bit": {
            "version": "2025.1.0",
            "level": 0
        }
    }
}
```

## Plugin IDs

Plugins use an ID system to make it easier for developers wanting to use your code, to do their code. Plugin IDs will be used for plugin requirements, querying plugins (ex. loading the plugin list), and other bot functions. All plugins must use unique ID's when loaded into the bot, otherwise the bot will disable the plugin loaded second (We will only enforce plugin ID's in our certified plugins program. Plugins with the ID of bit-core will cause the bot to crash).

Plugin ID requirements are:

MUST be in Kebab Case (ex. kebab-case)!

CANNOT include numbers!

CANNOT include symbols bar the dash (-) that replaces the space!

CANNOT include a space - this WILL break the bot, use a dash (-) instead!

CANNOT use the name `bit-core`

CANNOT use offensive language.

## Plugin Requirements

The bot will cross reference the plugin requirements array within the plugin.json file with the bots plugin list.

Plugins are required to have bit as a level 0 requirement as the requirements system has replaced the old bitVersion setting.

For Example

```json
"requirements": {
    "bit": {
        "version": "2025.1.0",
        "level": 0,
    },
    "jupiter": {
        "version": "0.2.0",
        "level": 1,
    },
    "dismon": {
        "version": "2.0.0",
        "level": 2,
    },
    "logging": {
        "version": "2.0.0",
        "level": 3,
    }
}
```

The above code will

1. Check if the current bit version is 2025.1.0
2. Fail to start if bit is not installed or the version is not 2025.1.0
3. Check if the Jupiter plugin is installed
4. Fail to start if the plugin isn't loaded, but will output to the console of the version is not the same.
5. Check if the bot has the Dismon Plugin 2.0.0
6. If Dismon is not found, the bot will instead output to the console and parts of this plugin will be disabled. If the version does not match, the bot will only output to the console.
7. Check if the logging plugin is installed
8. Fail to start if it is.

There are 4 requirement levels

Level 0, requires the external plugin at that specific version be loaded for your plugin to work.

Level 1, requires the external plugin to be loaded regardless of said external plugins version

Level 2, is basically a soft requirement, the external plugin is not "required" but part of the your plugin will not work without it. (You should include a check for this in your code)

Level 3, the plugin will NOT start if a plugin of this level is also loaded. This can be used for plugins that are incompatible with yours.

You can find more information about the requirements system in [Broken mention](broken://pages/LuTLZL4y5vsDRghDVwLs)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://bit.lockyzdev.com/docs/2025.1/dev/create-plugins/plugin-json.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
