This page documents the full structure of an addon entry inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/joshuaKnauber/serpens_addon_market/llms.txt
Use this file to discover all available pages before exploring further.
addons.json. Entries are JSON objects appended to the addons array by the Discord bot whenever a community member submits a new addon through the marketplace workflow. Each entry represents a single Blender addon — either uploaded directly as a .zip file or linked from an external hosting platform such as Gumroad, BlenderMarket, or GitHub.
Root Structure
Fields
The unique display name of the addon as it appears in the marketplace. Used by the bot to identify the entry when the submitter requests an update or removal. Example:
"QuickFrame".A short, human-readable description of what the addon does, shown in the marketplace listing. Example:
"Quickly add a frame in node editors (Supports Serpens editor as well) Keymap: Ctrl+F".The Blender addon category this addon belongs to. This is a free-form string set by the submitter and mirrors the
bl_category value used in Blender addon metadata. Common values include "Node Editor", "3D View", "Render", "Physics", "Material", and "Sequencer".The display name of the addon’s creator. This is entered by the submitter during the upload flow and does not need to match their Discord username.
The minimum Blender version required to run this addon, expressed as a three-element array
[major, minor, patch]. Example: [2, 80, 0] means Blender 2.80.0 or later.The version of the addon itself, expressed as a three-element array
[major, minor, patch]. Example: [1, 2, 0] means version 1.2.0. Incremented by the submitter when they push an update through the bot.Indicates where the addon file is hosted. Set to
false when the submitter uploads a .zip directly through the Discord bot (the file is then re-hosted on Discord CDN). Set to true when the addon is distributed through an external URL such as Gumroad, BlenderMarket, or GitHub.The download URL for the addon. For direct uploads (
external: false) this is a Discord CDN attachment URL. For external addons (external: true) this is the submitter-provided link to the external distribution page or file.Whether an example
.blend file is included with this addon listing. When true, a separate blend_url field will be populated with the location of that file.URL pointing to the example
.blend file, hosted on Discord CDN. This field is only meaningful when blend is true; it is stored as an empty string "" when no blend file was provided.A free-form price string set by the submitter. Common values include
"Free", "$5", "$10", and "8$". Older entries that predate the price field may store null or an empty string.The Discord user ID (snowflake) of the member who submitted the addon. Used by the bot to authenticate update and removal requests — only the original submitter can modify their own entries.
Indicates which major version of Serpens this addon was built with. Valid values are
2 (Serpens 2.x) and 3 (Serpens 3.x). This field was added later in the marketplace’s history; older entries that predate the field are implicitly compatible with Serpens 2.x.Example Entry
The following is a real entry fromaddons.json for QuickUV, a direct-upload addon that includes an example .blend file:
Direct Upload vs External Hosting
Theexternal field controls how the addon file is stored and accessed:
| Mode | external value | url points to | File accepted by bot |
|---|---|---|---|
| Direct upload | false | Discord CDN attachment URL | .zip file uploaded in the Discord conversation |
| External hosting | true | Gumroad, BlenderMarket, GitHub, or any public URL | No file upload — URL is pasted as text |
external is false and the addon includes a blend example (blend: true), the bot will also prompt the submitter to upload the .blend file, which is then stored separately on the same Discord CDN channel.
The first entry in the
addons array is a placeholder record with "name": "placeholder" and "user": 0. This entry exists to pre-initialize the data file structure and should be ignored when reading or displaying marketplace listings. Any consumer of addons.json should filter out entries where user equals 0.