Skip to main content

Documentation 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.

This page documents the full structure of a package entry in packages.json. Entries are stored in the packages array, each representing a curated collection of custom Serpens nodes distributed by a community member. Packages extend Serpens with new node types — for example, custom interface nodes, scripting helpers, or animation utilities — and are always distributed via an external URL. Unlike addons and snippets, direct file upload is not supported for packages.

Root Structure

{
  "packages": [ ...PackageEntry ]
}

Fields

title
string
required
The display name of the package as it appears in the marketplace. Used by the bot to identify the entry when the submitter requests an update or removal. Example: "Interface Extras".
description
string
required
A short description of what the package contains — typically listing the custom node types it provides. Example: "Custom Interface Nodes created by blanchsb".
price
string
required
A free-form price string set by the submitter. Most marketplace packages are free, so this is often "Free" or "FREE".
url
string
required
The external download URL for the package. This must be a publicly accessible link — typically a Gumroad product page, a GitHub repository, or a Google Drive share link. Unlike addons and snippets, the bot does not accept direct file uploads for packages; submitters must paste a URL.
author
string
required
The display name of the package author. Set by the submitter during the upload flow.
user
integer
required
The Discord user ID (snowflake) of the member who submitted the package. Used by the bot to gate update and removal operations so only the original submitter can modify their own entries.
version
integer
Indicates which major version of Serpens this package targets. Valid values are 2 (Serpens 2.x) and 3 (Serpens 3.x). The bot automatically sets this to 3 for all new package submissions. Some older entries may omit this field entirely.

Key Distinction: External URL Only

Unlike addons and snippets, packages support only external URL distribution. The bot’s upload flow for packages always concludes by asking the submitter to paste a link — there is no attachment upload step. This means url will always contain a third-party URL (Gumroad, GitHub, BlenderMarket, Google Drive, etc.) and never a Discord CDN link.

Example Entry

The following is a real entry from packages.json for Interface Extras, a Serpens 3 package hosted on Gumroad:
{
    "title": "Interface Extras",
    "description": "Custom Interface Nodes created by blanchsb",
    "price": "Free",
    "url": "https://blanchsb.gumroad.com/l/S3_Package_Interface_Extras",
    "author": "blanchsb",
    "user": 445245317789515776,
    "version": 3
}
And here is Extended Scripting, a package hosted on GitHub that omits the version field:
{
    "title": "Extended Scripting",
    "description": "Serpens 3: Extends scripting capabilities with new nodes.",
    "price": "Free",
    "url": "https://github.com/Mahrkeenerh/SerpensExtendedScripting",
    "author": "Mahrkeenerh",
    "user": 502918323491569675
}
The first entry in the packages array is a placeholder record with "title": "placeholder" and "user": 0. This entry exists to pre-initialize the data file and should be ignored when reading or displaying marketplace listings. Any consumer of packages.json should filter out entries where user equals 0.

Build docs developers (and LLMs) love