# My Dalamud Plugin Repository This repo is a **single custom repository** for Dalamud. Users add one URL and see all your plugins in the installer. ## What users add in Dalamud 1. Open **xlsettings** (or Dalamud Settings). 2. Go to **Experimental** → **Custom Plugin Repositories**. 3. Add this URL (use the **raw** URL to `pluginmaster.json` on your Gitea): ``` https://brassnet.ddns.net:33983/Dawnsorrow/DalamudPlugins/raw/main/pluginmaster.json ``` 4. Save. In **xlplugins**, your repo will appear and list all plugins in `pluginmaster.json`. --- ## Repo layout - **pluginmaster.json** – List of all your plugins. This file’s raw URL is the “repo link” users add. - **releases/** – Optional: put `latest.zip` builds here and use raw URLs in pluginmaster (see below). - Or use **Gitea Releases** on this repo for each plugin (recommended). --- ## Adding a new plugin to the repo 1. **Edit `pluginmaster.json`** and add a new object to the array (copy an existing entry and change fields): - `Author`, `Name`, `Description`, `Punchline`, `InternalName` - `AssemblyVersion` (e.g. `"0.0.0.1"`) - `RepoUrl` – link to the plugin’s source (can be another Gitea repo or same repo folder) - `ApplicableVersion`: `"any"` - `DalamudApiLevel`: e.g. `14` - `LastUpdate`: Unix timestamp (seconds), e.g. `1730000000` - `DownloadLinkInstall` and `DownloadLinkUpdate`: URL to the plugin’s **zip** (see below) 2. **Host the plugin zip** in one of these ways: **Option A – Releases on this repo (recommended)** - Create a release (e.g. tag `HSPosition-0.0.0.1` or `v0.0.0.1`). - Upload the plugin zip as `latest.zip`. - Use the release download URL in pluginmaster, e.g. `https://brassnet.ddns.net:33983/Dawnsorrow/DalamudPlugins/releases/download/HSPosition-0.0.0.1/latest.zip` **Option B – Raw file in repo** - Put `HSPosition-0.0.0.1.zip` in a `releases/` folder and commit. - Use the raw file URL: `https://brassnet.ddns.net:33983/Dawnsorrow/DalamudPlugins/raw/main/releases/HSPosition-0.0.0.1.zip` **Option C – Separate repo per plugin** - Build and release each plugin in its own Gitea repo. - In pluginmaster, set `DownloadLinkInstall` / `DownloadLinkUpdate` to that repo’s release zip URL. 3. This repo is configured for **brassnet.ddns.net:33983** and user **Dawnsorrow**. For new plugins, set download URLs to `https://brassnet.ddns.net:33983/Dawnsorrow/DalamudPlugins/...` (releases or raw). --- ## Building and packaging HSPosition (or any plugin) 1. From the plugin project directory, build in **Release** so the packager produces a zip: ```bash dotnet build HSPosition.sln -c Release ``` 2. The zip is at: `HSPosition/bin/x64/Release/HSPosition/latest.zip` 3. Upload that zip to a Gitea Release (e.g. create release tag `HSPosition-0.0.0.1`, attach `latest.zip`), or put it in `releases/` and use the raw URL. --- ## Updating a plugin 1. Bump the plugin’s version (e.g. in `.csproj` and `plugin.json`). 2. Build in Release and upload the new zip (new release or replace file in `releases/`). 3. In `pluginmaster.json` update: - `AssemblyVersion` (and tag/release name if you use it in the URL). - `LastUpdate` (current Unix timestamp: `date +%s`). - `DownloadLinkInstall` and `DownloadLinkUpdate` if the zip URL changed (e.g. new release tag). 4. Commit and push. Users will get the update when they check for updates in the plugin installer.