Ship your mods through Frogtech Mod Loader

Host one JSON file listing your mods, and players who add it get your mods in their loader's Browse tab, install them with one click, and receive every update automatically. It works for free mods and, with keys, for paid or private ones.

How it works

  1. 1You put a repository file (JSON, below) on any https address, next to your mod downloads.
  2. 2A player adds its address in the loader: Settings, Repositories, Add. Or they click an "Add to Frogtech Mod Loader" button on your site.
  3. 3Your mods show up in their Browse tab. When you raise a mod's version in the file, every player gets the update, usually within the hour.

The quick way: our GitHub template

Free hosting, no server: copy the template, list your mods in mods.json, and upload each version as a GitHub release. A GitHub Action builds the repository file with the checksums and publishes it on GitHub Pages.

Open the template on GitHub

The repository file

repo.json
{
  "format": 1,
  "name": "Example Mods",
  "description": "HUDs and skins by Example",
  "homepage": "https://example.com",
  "icon": "https://example.com/icon.png",
  "mods": [
    {
      "id": "cool_hud",
      "name": "Cool HUD",
      "version": "1.2.0",
      "url": "https://example.com/dl/cool_hud_1.2.0.zip",
      "sha256": "9f2c…64 hex characters…",
      "size": 48213,
      "description": "A clean HUD with big numbers.",
      "image": "https://example.com/img/cool_hud.jpg",
      "tags": ["HUD"],
      "page": "https://example.com/cool-hud",
      "game": "6779",
      "notes": ["Fixed the ammo counter after the October patch"]
    }
  ]
}

Top level

FieldNeededWhat it is
formatyesAlways 1 for now.
nameyesYour repository's name, shown on its Browse tab.
description, homepage, iconnoOne line about it, your site, and a square picture (https).
modsyesThe list of mods, each one an object as below.

Each mod

FieldNeededWhat it is
idyesUnique in your repository: lowercase letters, digits, _ and - (up to 64). Never change it, or players get a second copy.
nameyesThe mod's name.
versionyesNumbers with dots, like 1.2.0. A higher version is an update: players get it automatically.
urlyesThe download: a .zip with one or more *_dir.vpk files inside, or a single .vpk.
sha256yesThe SHA-256 of that file, in hex. The loader refuses a download that doesn't match.
sizenoThe file's size in bytes.
descriptionnoOne line on what it does.
imagenoA 16:9 picture for its card.
tagsnoWhat it is: HUD, Theme, Video, Social, Menus, Accessibility or Tool give coloured chips that link to similar mods.
pagenoIts page on your site.
conflictsnoIds of mods in your repository it can't be used with.
gamenoThe Deadlock build it was made for.
notesnoWhat changed in this version, one line per point.

Fields the loader doesn't know are ignored, so you can keep your own data in the file.

Paid or private mods: keys

Give each buyer a key. They enter it when adding your repository, and the loader sends it with every request to your server as Authorization: Bearer <key>.

  • Your server checks the key and can answer differently per key: list only the mods that buyer owns, or refuse with 401 or 403 (the loader shows "Key not accepted").
  • The key goes only to the same address (scheme, host and port) as the repository file. Downloads hosted elsewhere never see it: use signed, expiring links there (S3, R2 and similar).
  • Players' keys are stored encrypted with their Windows account and are never shown again after saving.

Step by step: a private repository with keys on Cloudflare's free tier

An "Add to Frogtech Mod Loader" button

Link to this address, with your repository's address URL-encoded. The loader opens and asks the player to confirm; nothing is added without them.

frogmod://repo/add?url=https%3A%2F%2Fexample.com%2Frepo.json

Once your repository is added, frogmod://install/<repository>/<mod id> buttons install a single mod.

Before you publish

  • Serve the file over https (http works only on localhost, for testing).
  • Check every sha256 against the exact file you upload: one wrong byte and the install is refused.
  • Raise the version whenever the download changes. The loader only compares versions.
  • Keep old download links alive for a while: players may still be on the previous file list.
  • Test it: add your repository in the loader and install each mod once.

Questions?

Something unclear or missing for your mods? Tell us.