Publishing to the catalog
The plugin catalog
The GameAP plugin catalog is available at plugins.gameap.dev (English version) and plugins.gameap.ru (Russian version). The public part of the catalog includes:
- the plugin list with sorting (popular, highly rated, new, recently updated);
- filtering by categories and tags;
- the plugin page: overview, reviews, per-version changelog, screenshots, license information and a link to the repository.
There is no “Install” button on the site: plugins are installed from the panel interface (see Installation and management).
The developer dashboard is at plugins.gameap.dev/dashboard.
Registration
Registration is by email, with a username and a password (at least 8 characters) and email confirmation, or through OAuth (GitHub, Google).
Creating a plugin in the dashboard
In the developer dashboard, create a plugin and fill in the fields:
- name;
- short description (no more than 500 characters);
- description;
- category and tags;
- license;
- link to the repository;
- minimum GameAP and Plugin API versions.
The plugin icon is uploaded after creation, on the edit page.
Publishing a version
On the plugin page, add a new version:
- version — in semantic versioning format (for example,
1.0.0); - the plugin file —
.wasmonly; - a GPG signature of the file (
.asc, optional); - a changelog (“what’s new in this version”);
- the “stable release” flag — marks the version as recommended for use;
- screenshots of the version.
The description, changelog and screenshots can be translated into other languages.
Moderation
A new plugin goes through moderation: “draft” → “under review” → “published” or “rejected”. When a plugin or a version is rejected, the moderator states the reason and the developer receives a notification.
Publishing from CI/CD
Deploy tokens are used to publish versions automatically: they are created on the plugin page in the dashboard and are shown only once. Publishing is done with a request to the https://plugins.gameap.dev/api/ci/plugins/{PLUGIN_ID}/versions endpoint:
POST /api/ci/plugins/{PLUGIN_ID}/versions
Authorization: Bearer <deploy token>
Multipart fields: version, file (the .wasm file), signature (the .asc file, optional), changelog, is_stable. A successful response is HTTP 201.
A GPG signature of the file is created with:
gpg --detach-sign --armor -o my-plugin.wasm.asc my-plugin.wasm
For a ready-made example of a release-tag publishing workflow (build, sign, upload to the catalog), see the release.yml file in the plugin-minecraft-modrinth and plugin-hex-editor repositories.
Plugin requirements
- A single
.wasmfile (thewasm32-wasip1target); the frontend is embedded into the same file. - Valid
PluginInfometadata:api_versionset to"1"and a stableidare mandatory (see the id requirements in Plugin development). - Versions in semantic versioning format.
When a plugin is installed from the catalog, the panel verifies the SHA-256 hash of the downloaded file. The GPG signature is not verified by the panel — it is there so that users can check the file’s authenticity themselves.