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
- 1You put a repository file (JSON, below) on any https address, next to your mod downloads.
- 2A player adds its address in the loader: Settings, Repositories, Add. Or they click an "Add to Frogtech Mod Loader" button on your site.
- 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.
The repository file
{
"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
| Field | Needed | What it is |
|---|---|---|
| format | yes | Always 1 for now. |
| name | yes | Your repository's name, shown on its Browse tab. |
| description, homepage, icon | no | One line about it, your site, and a square picture (https). |
| mods | yes | The list of mods, each one an object as below. |
Each mod
| Field | Needed | What it is |
|---|---|---|
| id | yes | Unique in your repository: lowercase letters, digits, _ and - (up to 64). Never change it, or players get a second copy. |
| name | yes | The mod's name. |
| version | yes | Numbers with dots, like 1.2.0. A higher version is an update: players get it automatically. |
| url | yes | The download: a .zip with one or more *_dir.vpk files inside, or a single .vpk. |
| sha256 | yes | The SHA-256 of that file, in hex. The loader refuses a download that doesn't match. |
| size | no | The file's size in bytes. |
| description | no | One line on what it does. |
| image | no | A 16:9 picture for its card. |
| tags | no | What it is: HUD, Theme, Video, Social, Menus, Accessibility or Tool give coloured chips that link to similar mods. |
| page | no | Its page on your site. |
| conflicts | no | Ids of mods in your repository it can't be used with. |
| game | no | The Deadlock build it was made for. |
| notes | no | What 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.jsonOnce 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.