171 lines
7.2 KiB
Markdown
Executable File
171 lines
7.2 KiB
Markdown
Executable File
# Octo Updater
|
|
|
|
A standalone desktop updater and mod manager for the **OctoWoW** client.
|
|
It updates and patches the game client, manages community **mods**, **addons**
|
|
and **content patches**, applies client **tweaks**, and shows server **news**.
|
|
|
|

|
|
|
|
---
|
|
|
|
## Features
|
|
|
|
### Game updates
|
|
|
|
- Game files are synced over **BitTorrent** using a bundled, checksum-verified
|
|
`aria2c` — only missing or wrong-sized files are downloaded, transfers resume
|
|
automatically, and an optional integrity pass re-checks every piece hash to
|
|
catch same-size corruption.
|
|
- Legacy locale folders and old client patch archives are pruned automatically
|
|
after a sync.
|
|
- Reads and displays the installed game client version straight from `WoW.exe`.
|
|
|
|
### Mods
|
|
|
|
Curated set of client modifications, installed from their official GitHub /
|
|
Codeberg releases and registered in `dlls.txt`:
|
|
|
|
| Mod | Purpose |
|
|
| ----------------------- | ----------------------------------------------------------------------------------- |
|
|
| AuctionQueryThrottle | Removes the fixed 5-second wait between auction house searches |
|
|
| ClassicAPI | Adds later-version Lua API calls to the client; required by some addons |
|
|
| DXVK | Vulkan-based rendering for better performance |
|
|
| Nampower | Reduces input lag on higher latency; expands the addon API |
|
|
| No1600x1200 | Fixes incorrect resolution when the monitor's native res isn't detected (optional) |
|
|
| SuperWoW | Backported client API features; required by some addons |
|
|
| TransmogFix | Fixes transmog-related frame drops on character death |
|
|
| UnitXP_SP3 | Frame limiter, improved targeting, anti-aliased combat text, and more |
|
|
| VanillaFixes | Eliminates stutter and animation lag (also the DLL loader; required by other mods) |
|
|
| VanillaHelpers | Raises the max supported texture resolution and improves memory allocation |
|
|
| VanillaMultiMonitorFix | Fixes multi-monitor resolution issues (optional) |
|
|
|
|
- Essential mods auto-install on a fresh game folder, or on any game
|
|
folder when **Install essential mods** is enabled in Settings.
|
|
- Per-mod **update** / **retry** actions and an update-count badge on the tab.
|
|
- When VanillaFixes is installed, **PLAY** launches through it instead of
|
|
`WoW.exe` directly.
|
|
|
|
### Tweaks
|
|
|
|
Patches `WoW.exe` and writes `Config.wtf` for quality-of-life settings,
|
|
grouped by category:
|
|
|
|
- **General** — in-game language (English, Deutsch, Русский, 中文, Español,
|
|
Português), auto-loot, nameplate range.
|
|
- **Camera** — field of view (with a recommended value per aspect ratio),
|
|
camera zoom distance.
|
|
- **Graphics** — world/terrain render distance, ground clutter distance.
|
|
- **Sound** — allow sound to play while the game is in the background.
|
|
|
|
Invalid values are clamped; Apply/Reset appear only when something changed.
|
|
|
|
### Addons
|
|
|
|
- Installs addons directly from Git hosts (**GitHub, GitLab, Gitea, Codeberg**)
|
|
by downloading the repo archive pinned to a commit SHA — no Git client needed.
|
|
- Curated **recommended** list plus everything from the server catalog.
|
|
- **Add custom git addon** dialog for any allowed host; a custom addon is
|
|
never silently overridden by a same-named recommended one.
|
|
- Update detection by comparing the installed commit against the latest,
|
|
one-click **Update** / **Update all**, and an update-count badge.
|
|
- pfUI gets a curated **"Default"** profile injected and added to its firstrun
|
|
picker after each install/update.
|
|
|
|
### MPQ patches
|
|
|
|
Optional content patches distributed as `.mpq` files, separate from mods and
|
|
addons — currently **Octo Raid Visuals**, which adds ground markers and
|
|
sounds for boss abilities in raids. Each patch is downloaded over HTTPS and
|
|
verified against a published checksum before it's placed in the client's
|
|
`Data` folder; the tab flags available updates.
|
|
|
|
### News
|
|
|
|
Shows the latest **Announcements** post and the current **Patch Notes** list
|
|
from the server's forum feed.
|
|
|
|
### Settings
|
|
|
|
Change the game folder, check download mirror status, verify game files,
|
|
view session logs, and add the game folder to Defender exclusions. General
|
|
options include clearing the client's WDB cache on every game launch,
|
|
minimizing Octo Updater when the game launches, auto-installing essential
|
|
mods and recommended addons, and keeping a custom `speech.mpq` untouched by
|
|
verification/updates.
|
|
|
|
### Security & robustness
|
|
|
|
- Hardened TLS (system trust store, hostname check, TLS 1.2+ floor).
|
|
- HTTPS-only with per-host allowlists for all downloads; redirects stay HTTPS.
|
|
- `aria2c` itself is fetched once and SHA-256-verified before it's ever run.
|
|
- Atomic config writes (temp + rename) with a lock — safe against concurrent
|
|
workers and interrupted saves.
|
|
- Path-traversal-safe archive extraction.
|
|
- DPI-aware layout — the UI scales as a unit on high-DPI displays instead of
|
|
fonts overflowing a fixed-pixel layout.
|
|
- Automatic self-update check against this repo's GitHub releases (once a day).
|
|
|
|
---
|
|
|
|
## Requirements
|
|
|
|
- **Windows**, or **Linux via Proton/Wine** — Octo Updater is a Windows build,
|
|
but it runs on Linux under Proton/Wine.
|
|
A couple of Windows-only conveniences (Defender exclusions, DPI-scale
|
|
auto-detection) simply don't apply outside Windows.
|
|
- **Python 3.10+** — only if running from source. Runs on the standard
|
|
library, and will also use [`certifi`](https://pypi.org/project/certifi/) if
|
|
installed, for more robust TLS verification on machines with an out-of-date
|
|
root store (otherwise falls back to the system trust store).
|
|
- The prebuilt `OctoUpdater.exe` needs nothing installed. `aria2c` is
|
|
downloaded automatically the first time a game update runs.
|
|
|
|
---
|
|
|
|
## Usage
|
|
|
|
### Prebuilt executable
|
|
|
|
Download `OctoUpdater.exe` from the [latest release](https://github.com/rebasedkon/octo-updater/releases/latest) and
|
|
run it. Point the **Game folder** (Settings) at your OctoWoW game folder —
|
|
or let the default create one next to the executable — then click **UPDATE**,
|
|
and **PLAY** when it finishes.
|
|
|
|
### From source
|
|
|
|
```
|
|
python octo_updater.py
|
|
```
|
|
|
|
The updater keeps its data in a per-user app-data folder.
|
|
|
|
---
|
|
|
|
## Building
|
|
|
|
Compile a single-file Windows executable with [PyInstaller](https://pyinstaller.org/):
|
|
|
|
```
|
|
pip install pyinstaller certifi
|
|
pyinstaller --onefile --windowed --name OctoUpdater --icon OctoUpdater.ico octo_updater.py
|
|
```
|
|
|
|
Installing `certifi` before building bundles an up-to-date CA certificate set
|
|
into the executable, so TLS verification works even on machines whose Windows
|
|
root store is stale. `aria2c` does not need to be bundled — the app fetches
|
|
and verifies it itself on first run.
|
|
|
|
---
|
|
|
|
## Support the Developer
|
|
|
|
If Octo Updater is useful to you, consider supporting its development:
|
|
|
|
- [Ko-fi](https://ko-fi.com/rebased)
|
|
- [Buy Me a Coffee](https://buymeacoffee.com/rebased)
|
|
|
|
---
|
|
|
|
## License
|
|
|
|
See [LICENSE](https://github.com/rebasedkon/octo-updater/blob/main/LICENSE). |