External sources

Where else an item is published — CurseForge, NexusMods, a repository — and how a source's install template works.

A source is an external website a content item is also published on: CurseForge, NexusMods, a launcher’s own catalogue, a git repository.

Attaching one says “this mod is also at that address”. It is a pointer, not an endorsement — we are not affiliated with these sites, and a source’s owner can ask for it to be removed.

Available on mods and assets.

The source, and the item’s entry on it

Two levels:

A source is the site itself — its name, its URL, its icon, whether it carries mods or assets or both, and its install template. Sources are staff-maintained and browsable at /sources.

A source item is your item’s entry on that source:

sourceIdintrequired

Which source. This is what identifies the entry — not its own id — so re-attaching the same source updates rather than duplicating.

pathstringrequired

The item’s path on that source’s site. An absolute URL is reduced to its path server-side, so pasting the whole address works.

externalIdstring

The item’s id on that source. Fills [id] in the source’s install template.

externalFileIdstring

Fills [file_id].

externalAdditionalstring

Fills [additional].

isPrimaryGitbooleandefault false

Marks this as the item’s repository.

The external ids only matter when the source defines an install template. Where it does not, path alone is enough.

An item’s open-source repository — and the star count shown beside it — is not a column on the item. It is the source entry flagged isPrimaryGit, pointing at a source marked as a git host.

That is why adding a GITHUB link puts an icon on the page and connects nothing. If you want the repository recognised as one, attach it as a source.

Through the API

PUT/api/content/{type}/{id}/sourcesAPI keycanWrite

Replace the source set. Members are identified by sourceId.

curl -X POST https://api.moddingcommunity.com/api/content/mod/5/sources \
  -H "Authorization: Bearer $TMC_TOKEN" -H "Content-Type: application/json" \
  -d '[{ "sourceId": 3, "path": "/minecraft/mod/231", "externalId": "231" }]'

The source must be visible to you and must declare that it carries this item’s kind — a mods-only site rejects an asset, and vice versa.