Use a public GitHub repository
RequiredPrivate repositories are not indexed. Keep the repository public and active.
A practical checklist for plugin developers who want their projects included on NukkitHub.
If your repository matches this checklist, it has a good chance of being included without any extra manual handling.
Private repositories are not indexed. Keep the repository public and active.
Use `src/main/resources/plugin.yml`, or `src/main/resources/powernukkitx.yml` for PowerNukkitX-first modules.
Topics help your plugin get discovered faster and more reliably than waiting on GitHub code indexing alone.
A clear `plugin.yml`, README, icon, and categories make the listing more complete after inclusion.
Do not archive the repository, do not mark it as a template, and do not add the `noindex` topic.
Your project can be indexed without a release, but only GitHub Releases with `.jar` files become version downloads.
Pick the card that matches your target runtime and follow that recipe. You do not need to understand the detection internals to get indexed.
If you want shared compatibility with Nukkit-MOT, `nukkit-plugin` plus `cn.nukkit:*` is enough.
If the manifest is not under `src/main/resources/`, the repository is very easy to miss.
A manifest alone is not always enough for runtime classification. Add the topic that matches your target core.
Any of these states will stop the project from being indexed or keep it out of the index.
MOTCI is not a discovery source. Developers still need a valid GitHub repository layout and GitHub topics.
The full document below keeps all of the practical details in one place, including manifest examples, versions, icons, and troubleshooting.
This guide is written for plugin developers. If you want your project to appear on NukkitHub, follow the checklist below.
To get your plugin included, make sure your repository satisfies all of the following:
noindex topicsrc/main/resources/plugin.ymlsrc/main/resources/powernukkitx.yml for PowerNukkitX-first modulesplugin.yml / powernukkitx.yml and README.mdIf you only do one extra thing beyond the manifest, add the correct topic. That makes discovery much more reliable.
Use the topic that best matches your plugin:
| Target runtime | Recommended topic |
|---|---|
| NukkitX | nukkit-plugin |
| Nukkit-MOT | nukkit-mot-plugin |
| PowerNukkitX | powernukkitx-plugin or pnx-plugin |
| Lumi | lumi-plugin |
If your plugin supports both NukkitX and Nukkit-MOT, nukkit-plugin is acceptable.
How to add a topic: GitHub repository -> About -> gear icon -> Topics.
Fork note: If your plugin repository is a fork, adding the correct topic is especially important.
nkx)Recommended setup:
src/main/resources/plugin.ymlnukkit-plugin topiccloudburstmcopencollab.devrepo.nukkitx.comIf your plugin uses generic cn.nukkit:* dependencies, it may be treated as shared compatibility for both NukkitX and Nukkit-MOT.
nkmot)Recommended setup:
src/main/resources/plugin.ymlnukkit-mot-plugin topicmemoriesoftimenukkit-motIf your plugin supports both NukkitX and Nukkit-MOT, generic cn.nukkit:* dependencies are acceptable.
Important: MOTCI is not a repository submission channel. Your plugin still needs to be discoverable from GitHub.
pnx)Recommended setup:
src/main/resources/powernukkitx.ymlpowernukkitx-plugin or pnx-plugincn.powernukkitxpowernukkitxUsing powernukkitx.yml is the clearest way to make a PowerNukkitX module indexable.
lumi)Recommended setup:
src/main/resources/plugin.ymllumi-plugin topicrepo.luminiadev.comcom.koshakmine:lumicom.koshakmine and lumiAt least one supported manifest must exist in the standard path:
src/main/resources/plugin.ymlsrc/main/resources/powernukkitx.ymlExample:
name: MyNukkitPlugin
version: 1.0.0
main: com.example.MyNukkitPlugin
api: ['1.0.0']
authors: ['AuthorName']
description: A short description of my plugin
website: https://example.com
depend: []
softdepend: []
| Field | Required | Description |
|---|---|---|
name |
Yes | Plugin name |
version |
Yes | Plugin version |
main |
Yes | Main class path |
api |
Yes | Supported API version(s) |
authors |
No | Author list |
description |
No | Short summary |
website |
No | Homepage URL |
depend |
No | Required dependencies |
softdepend |
No | Optional dependencies |
If your repository contains multiple plugin modules:
src/main/resources/owner/repo--module-suffixExamples:
cooldev/myplugin-repocooldev/myplugin-repo--modules-economyYour repository can be indexed without a GitHub Release.
However, if you want users to see downloadable versions on NukkitHub, publish releases this way:
.jar filesOnly GitHub Releases are indexed as plugin versions.
Add category topics to help users find your plugin:
| Category | Topic |
|---|---|
| Adventure | nukkit-adventure |
| Cursed | nukkit-cursed |
| Decoration | nukkit-decoration |
| Economy | nukkit-economy |
| Equipment | nukkit-equipment |
| Food | nukkit-food |
| Game Mechanics | nukkit-game-mechanics |
| Library | nukkit-library |
| Magic | nukkit-magic |
| Management | nukkit-management |
| Minigame | nukkit-minigame |
| Mobs | nukkit-mobs |
| Optimization | nukkit-optimization |
| Social | nukkit-social |
| Storage | nukkit-storage |
| Technology | nukkit-technology |
| Transportation | nukkit-transportation |
| Utility | nukkit-utility |
| World Generation | nukkit-world-generation |
To make your listing look complete after inclusion:
Your README.md becomes the main long description.
Recommended:
To add a custom icon:
logo.png or icon.png in .github/img/ or the repository root256x256If no icon is found, the repository owner's avatar is used.
To add screenshots:
.github/img/logo.png or icon.png for screenshotsAdd a standard license file if possible.
NukkitHub will try to read license information from:
LICENSE file in the repository rootIf no open-source license is found, the project may appear as All Rights Reserved.
Your plugin may be skipped or removed if any of the following is true:
| Situation | Result |
|---|---|
| Repository is private | Not indexed |
| Repository is archived | Removed or skipped |
| Repository is a template | Skipped |
Repository has noindex topic |
Skipped or removed |
No supported manifest exists in src/main/resources/ |
Not discovered correctly |
| The runtime is unclear and there is no matching topic or dependency signal | Module may be skipped |
To remove your plugin manually, add the noindex topic.
src/main/resources/ from the startname, version, main, and apimy-nukkit-plugin/
├── .github/
│ └── img/
│ ├── logo.png
│ ├── gallery1.png
│ └── gallery2.png
├── src/
│ └── main/
│ ├── java/
│ │ └── com/example/
│ │ └── MyPlugin.java
│ └── resources/
│ └── plugin.yml
├── README.md
└── LICENSE
Check these items in order:
noindex topicsrc/main/resources/Make sure you created a GitHub Release and attached a .jar file.
Use the topic that matches your runtime and make your build files reference the matching core clearly.