Files
SeaLoader/README.md
2025-09-17 00:40:27 -04:00

73 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SeaLoader
SeaLoader is a minimal, dark-themed helper app for Sea Power that fetches a scenarios 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 mods 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=<id>,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 youre 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.