Our SDK consists of the Netbeans IDE and additional "Netbeans Modules" (nbm) bringing the jme specific tools.
We call those Modules a Plugin
whenever it is not part of this repository (not part of the standard distribution).
This means every code which is optional is a plugin. In fact some core modules
have been moved out to be a plugin for various reasons.
As has been said, developing a plugin is essentially developing a netbeans module.
For this open the SDK Project with Netbeans (if you previously built the SDK, there is the correct version of netbeans in the netbeans
folder).
Then add a module using your desired package and module names, just follow the Wizard.
You can now depend on SDK or Netbeans API Modules and use the Wizards to realize your plugin's functionality.
Search the internet for "Netbeans Platform Modules" or "Netbeans Platform API" when you are stuck.
Building a plugin basically works by invoking ant nbm
on the folder and taking the resulting nbm file.
Since this requires an active SDK build and can become more complex (e.g. when signing), look at https://github.com/jMonkeyEngine/sdk-update-center/tree/plugin-ci-templates for CI Templates.
Currently this is realized using Github Actions. All you need to do is copying the related file and changing the package names.
The most simple way of distributing a plugin is to make users install your nbm. This means they have to download the file (most likely from your Github Releases section) and load the file using their SDK.
We use the SDK Update Center to distribute our Plugins.
This is where you want to apply for access as well, because your plugin will be available to every SDK User without further configuration.
Due to security reasons, applications are rather strict and can be rejected. Please understand that we have to be strict in order to prevent abuse.
Click here for more details.
If your Plugins aren't SDK related (e.g. you extend the SDK to be an Editor for your game), you can also host your own Update Center. Fork the update-center repository for this and either distribute your code as modules (fork the SDK, add the modules and use the update-center for nightlies) or distribute your code as plugins (see our plugin branches for that).