# SeaLoader SeaLoader is a minimal, dark-themed helper app for Sea Power that fetches a scenario’s required Steam Workshop mods, resolves names, checks for transitive dependencies, and enables matching mods in your `usersettings.ini`. It also supports subscribing to missing mods, scanning the Steam Workshop folder for installed content, and self-updating. ## Features - Fetch required mods from a Workshop URL and resolve their names - Recursive dependency expansion: also fetches each required mod’s own requirements - Two-pane UI: - Installed Mods (from Steam Workshop folder) with status: Enabled, Disabled, or Disabled (Not in INI) - Scenario Required Mods with Installed/Missing status - Enable Matching Mods: writes to `[LoadOrder]` and appends missing workshop IDs as new `ModNDirectory=,True` - Subscribe Missing Mods: opens Steam deep links per mod; step-by-step flow with remaining count - Refresh: reload Installed Mods and re-fetch Required Mods (if URL provided) - Guided flashing to lead the user through steps (URL → Fetch → Subscribe/Refresh → Enable) - Game Path persistence: remembers the Steam game path next to `usersettings.ini` - Version display and update check (Gitea API + RSS fallback), with clickable link - Auto-update install (EXE only): download zip, replace EXE safely, relaunch ## Requirements - Windows 10+ - Python 3.10+ (for running from source) or the packaged EXE - Steam client installed and logged in (for Subscribe Missing Mods) ## Run from source ```bash python -m pip install -r requirements.txt python sealoader_gui.py ``` ## Usage 1. Game Path: Click Browse and select your Sea Power install folder (e.g., `.../steamapps/common/Sea Power`). - If previously saved, SeaLoader loads it automatically on start. 2. Paste a Workshop URL and click Fetch Required Mods. - The right list shows all required Workshop IDs and names, including transitive dependencies. 3. If some are Missing: - Click Subscribe Missing Mods. A per-mod dialog will open; it shows how many remain. - After subscribing, click Refresh to reload Installed Mods and re-fetch required. 4. Click Enable Matching Mods to enable all installed required mods. - A backup `usersettings.ini.bak` is created. Statuses in Installed Mods: - Enabled: Present in INI and enabled - Disabled: Present in INI but disabled - Disabled (Not in INI): Found in workshop folder but no INI entry yet (Enable adds it) ## Self-update - SeaLoader shows current and latest versions in the footer. - If a newer version exists, a modal dialog appears with options: - Download: opens the release page - Auto-Install (EXE only): downloads `SeaLoader_Windows_x64.zip`, replaces `SeaLoader.exe`, and relaunches - Latest version is discovered via Gitea API with RSS fallback: `releases.rss`. ## Build (Gitea Actions) - Workflow: `.gitea/workflows/release.yml` - On release: stamps `sealoader_version.py` with the tag, bundles PNGs, and builds onefile EXE via PyInstaller - Uploads `SeaLoader_Windows_x64.zip` as the release asset - Runner: Windows; steps use `powershell` ## Files - `sealoader_gui.py`: GUI application - `steam_required_ids.py`: Workshop scraping, ID resolution, recursive expansion - `sealoader_version.py`: version stamp used by the update checker - `requirements.txt`: dependencies (requests, beautifulsoup4) - `.gitea/workflows/release.yml`: release build pipeline ## Troubleshooting - Footer icons not visible in EXE: ensure `SeaLoader.png` and `hrsys.png` are present at build; the workflow includes them via `--add-data`. - Update checker says unavailable: RSS fallback is in place; ensure `SEALOADER_GITEA` and `SEALOADER_REPO` env vars are correct if using a mirror. - Subscribe Missing Mods not opening Steam: ensure Steam client is running and you’re signed in. - INI not updated: verify `usersettings.ini` path and that `[LoadOrder]` exists. SeaLoader will append new entries if needed. ## Credits Created by HudsonRiggs.Systems.