Your Nexus release
Keep downloads on your own Nexus mod page. Players connect with their own accounts.
Let players find and install your Nexus releases through WPS Dune Launcher.
Launcher 2.1.1Modder Kit 1.7.1Author guideKeep downloads on your own Nexus mod page. Players connect with their own accounts.
Give stable, beta and alternative presets their own replacement chains.
Add optional update details with the workbench or command line. Other mods retain their current import workflow.

The channel label helps players identify the variant. The file replacement chain determines which download is selected. A conflicting or unavailable chain sends the player to your Nexus page for a choice.
This updater works with WPS mods and independent authors’ mods in the Launcher’s supported ZIP layout. Your stable mod ID, author name and folder name can keep your own branding; a WPS prefix is not required.
mod.json inside the mod’s stable folder. Keep the same ID and folder name across releases, and use a numeric version that matches the Nexus file version.stable, beta or 2x. The Kit sets a Launcher minimum of 1.2.19 and checks the metadata.Mods/CL_Inventory/mod.json and Mods/CL_Inventory/Scripts/main.lua form one Lua mod. Use the Kit’s supported layout for native or PAK payloads.The update details added to your existing manifest look like this:
"id": "CL_Inventory",
"author": "Copper Lantern Mods",
"requires": [{ "id": "wps-launcher", "minVersion": "1.2.19" }],
"nexus": {
"gameDomain": "duneawakening",
"modId": 123,
"fileId": 456,
"channel": "stable"
}These are example fields to merge into your existing schema 2 manifest. Use your own numeric Nexus IDs and retain your other manifest fields and requirements. The file ID is a stable starting point for that variant’s update chain; it does not have to change in each future ZIP.
If an older installed archive has no Nexus update metadata, players install your configured release once through the normal Launcher ZIP import. Later releases appear after the main Check for updates action. An unconfigured mod shows Not configured; the Launcher does not guess a Nexus page or variant from its name.
The Launcher updates only the selected mod from a bundled ZIP and verifies both its identity and version before replacing files. Its Nexus checks apply to enabled and disabled participating mods alike.
A mod that also supports Launcher 1.2.15 can keep its update identity in nexus.json, next to mod.json. Keep a required wps-launcher minimum of 1.2.15 in the manifest. Launcher 1.2.15 imports the mod and ignores the separate update file; Launcher 2.1.1 reads it for updates. This does not add updater controls to older Launcher versions.
python kit/wps.py nexus "C:/Mods/MyProject" --sidecar --mod-id YOUR_MOD_ID --file-id YOUR_EXISTING_FILE_ID --channel stableThe separate file contains the four fields inside the Nexus object shown below, without an outer nexus property. Use one metadata location per mod. Lint and packaging validate both formats; the same Nexus replacement-chain and download-identity checks apply. The sidecar command keeps the manifest unchanged and requires its Launcher dependency to be set first. Remove this opt-in with the same command and --sidecar --remove.
python kit/wps.py nexus "C:/Mods/MyProject" --mod-id YOUR_MOD_ID --file-id YOUR_EXISTING_FILE_ID --channel stable
python kit/wps.py lint "C:/Mods/MyProject"
python kit/wps.py package "C:/Mods/MyProject" --out "C:/Release/MyMod.zip"Use your real numeric Nexus IDs in the first command. The setup command adds a required standalone Launcher minimum of 1.2.19 while retaining your other requirements. An incompatible maximum version must be revised first. To remove update support, use python kit/wps.py nexus "C:/Mods/MyProject" --remove.
A configured project contains the following optional block; the numbers below are illustrative:
"nexus": {
"gameDomain": "duneawakening",
"modId": 123,
"fileId": 456,
"channel": "stable"
}| Account | Update flow |
|---|---|
| Nexus Premium | Connect Nexus once in Settings, then choose Check for updates in Your mods and click the yellow Update Available button beside the mod’s version. Update all checks and installs the available participating releases in order. WPS downloads, verifies and installs the release automatically. |
| Free Nexus account | Click Update Available and choose Slow download on Nexus. The browser downloads the ZIP to the folder selected in Settings; WPS verifies the exact Nexus file and installs it automatically. Update all repeats this authorization for each queued release. Windows app defaults need no setup. |
Settings and update progress stay inside the same launcher window. Paths and Nexus connection settings are on Settings; short hover hints explain the controls.
The launcher checks the downloaded mod’s identity and version before installing it. In a bundled preset archive, it replaces only the selected mod. Supported saved settings, remembered selections and previous-version backups use the normal Launcher update workflow.
Updates obtain their download links from Nexus and transfer directly from Nexus’s file servers using the player’s authorization. WPS does not redistribute your file through a separate download service. Wabbajack’s integration documentation confirms that downloads through the official Nexus API contribute to Nexus download counts.
A player updating a mod they already downloaded is still the same unique downloader of that mod page. Nexus explains unique downloads here. The local integration test recorded a real Nexus transfer in the account’s download history. It did not observe an immediate change in the public aggregate total.
Use a separate Launcher folder, keep your normal saves and mod selection intact, and verify both Premium and free-account flows for your supported package. This local build supports personal API keys for private testing. Public application registration is a separate Nexus requirement; no developer key belongs in a mod archive.
The Kit’s command and workbench change local project metadata only. They do not upload files, publish a release, or contact Nexus.