Refresh README presentation
This commit is contained in:
@@ -1,31 +1,58 @@
|
||||
# WowPresence
|
||||
# 🎮 WowPresence
|
||||
|
||||
Native Discord Rich Presence for **World of Warcraft 1.12.1 (build 5875)** and compatible clients.
|
||||
|
||||
WowPresence keeps the game-side component deliberately small: a read-only DLL samples character status from the WoW process and writes a local JSON snapshot, while a separate companion executable handles Discord IPC outside the game process.
|
||||
Focused on a **small game-side footprint, stable character detection and native Discord IPC**.
|
||||
|
||||
## Features
|
||||
> WowPresence targets **WoW 1.12.1 / build 5875-compatible client environments**.
|
||||
|
||||
- Character name and guild
|
||||
- Level and class
|
||||
- Race and faction
|
||||
- Current zone
|
||||
- Stable elapsed-session timer across character changes
|
||||
- Automatic companion startup
|
||||
- Exact WoW process tracking
|
||||
- Read-only game-memory access
|
||||
- No Discord bot, Client Secret, or network service required
|
||||
## 🔌 Requirements
|
||||
|
||||
## Compatibility
|
||||
- **World of Warcraft 1.12.1 (build 5875)** or a compatible client
|
||||
- **Discord Desktop**
|
||||
- A compatible DLL loader such as **VanillaFixes**
|
||||
|
||||
The DLL only samples character information from the game. Discord communication is handled by a separate companion process.
|
||||
|
||||
## 📦 Installation
|
||||
|
||||
1. Download **`WowPresence.dll`** and **`WowPresence.exe`** from Releases.
|
||||
2. Place both files in your WoW game directory.
|
||||
3. Add `WowPresence.dll` to your VanillaFixes `dlls.txt`.
|
||||
4. Launch WoW normally through VanillaFixes.
|
||||
|
||||
`WowPresence.exe` is started automatically by the DLL and normally does **not** need to be launched manually.
|
||||
|
||||
Runtime files are created automatically under:
|
||||
|
||||
```text
|
||||
<WoW folder>\.modernization_tool\WowPresence\
|
||||
```
|
||||
|
||||
## ✨ Features
|
||||
|
||||
- Discord Rich Presence for WoW 1.12.1.
|
||||
- Character name and guild display.
|
||||
- Level and class display.
|
||||
- Race and faction display.
|
||||
- Current zone display.
|
||||
- Stable elapsed-session timer across character changes.
|
||||
- Automatic companion startup.
|
||||
- Exact WoW process tracking.
|
||||
- Read-only game-memory sampling.
|
||||
- Native Discord IPC with no bot or Client Secret required.
|
||||
- Optional privacy flags for individual character fields.
|
||||
|
||||
## 🔧 Compatibility
|
||||
|
||||
### Tested
|
||||
|
||||
- OctoWoW client based on WoW 1.12.1 / build 5875
|
||||
- **OctoWoW** — WoW 1.12.1 / build 5875 based client
|
||||
|
||||
### Expected compatibility
|
||||
### Expected compatible
|
||||
|
||||
- World of Warcraft 1.12.1 build 5875
|
||||
- Compatible private-server clients that preserve the same relevant client memory layout
|
||||
- **World of Warcraft 1.12.1 build 5875**
|
||||
- Private-server clients preserving the relevant 1.12.1 client memory layout
|
||||
|
||||
### Not compatible
|
||||
|
||||
@@ -36,38 +63,36 @@ WowPresence keeps the game-side component deliberately small: a read-only DLL sa
|
||||
|
||||
Other modified 1.12.1 clients should be considered **untested until verified**.
|
||||
|
||||
## Files
|
||||
## ⚙️ How it works
|
||||
|
||||
```text
|
||||
WowPresence.dll
|
||||
WowPresence.exe
|
||||
WoW
|
||||
└─ WowPresence.dll
|
||||
├─ read-only character sampling
|
||||
├─ local JSON status
|
||||
└─ starts WowPresence.exe
|
||||
└─ Discord local IPC
|
||||
```
|
||||
|
||||
The DLL is loaded into WoW by a compatible DLL loader such as VanillaFixes. After WoW is running, the DLL automatically starts `WowPresence.exe`.
|
||||
The DLL does not communicate directly with Discord.
|
||||
|
||||
The companion executable should normally **not** be launched manually.
|
||||
The companion executable does not read or write WoW memory.
|
||||
|
||||
## Installation
|
||||
|
||||
1. Download `WowPresence.dll` and `WowPresence.exe` from Releases.
|
||||
2. Place both files in the WoW game directory.
|
||||
3. Add this line to the VanillaFixes `dlls.txt` file:
|
||||
Character status is written to:
|
||||
|
||||
```text
|
||||
WowPresence.dll
|
||||
.modernization_tool\WowPresence\discord_wow_status.json
|
||||
```
|
||||
|
||||
4. Launch WoW normally through VanillaFixes.
|
||||
|
||||
WowPresence creates its runtime files under:
|
||||
The companion log is written to:
|
||||
|
||||
```text
|
||||
<WoW folder>\.modernization_tool\WowPresence\
|
||||
.modernization_tool\WowPresence\WowPresence.log
|
||||
```
|
||||
|
||||
## Discord application
|
||||
## 🛰️ Discord application
|
||||
|
||||
The current build includes the OctoWoW Discord Application ID as its default so it works immediately with the configuration it was originally developed and tested against.
|
||||
WowPresence currently includes the **OctoWoW Discord Application ID** as its built-in default.
|
||||
|
||||
Advanced users can override it by creating:
|
||||
|
||||
@@ -75,11 +100,11 @@ Advanced users can override it by creating:
|
||||
.modernization_tool\WowPresence\discord_application_id
|
||||
```
|
||||
|
||||
The file should contain only the numeric Discord Application ID.
|
||||
The file must contain only the numeric Discord Application ID.
|
||||
|
||||
No Client Secret is used or required.
|
||||
No Discord Client Secret is used or required.
|
||||
|
||||
## Privacy flags
|
||||
## 🔒 Privacy flags
|
||||
|
||||
The optional file:
|
||||
|
||||
@@ -99,44 +124,19 @@ controls which character details are published to Discord.
|
||||
| 32 | Zone |
|
||||
| 63 | All fields |
|
||||
|
||||
If the file is missing, all supported fields are enabled.
|
||||
If the file does not exist, all supported fields are enabled.
|
||||
|
||||
## Administrator privileges
|
||||
## 🛡️ Administrator privileges
|
||||
|
||||
Discord and WoW should run with matching privilege levels.
|
||||
|
||||
If Discord is running as administrator, WoW must also run as administrator for local Discord Rich Presence IPC to work reliably.
|
||||
If Discord runs as administrator, WoW must also run as administrator for local Rich Presence IPC to work reliably.
|
||||
|
||||
Running both normally is recommended unless elevation is actually required by the local setup.
|
||||
Running both normally is recommended unless elevation is required by the local setup.
|
||||
|
||||
## Runtime design
|
||||
## 🛠️ Building
|
||||
|
||||
```text
|
||||
WoW
|
||||
└─ WowPresence.dll
|
||||
├─ read-only character sampling
|
||||
├─ local JSON status
|
||||
└─ starts WowPresence.exe
|
||||
└─ Discord local IPC
|
||||
```
|
||||
|
||||
The DLL does not communicate directly with Discord. The companion executable does not read or write WoW memory.
|
||||
|
||||
Status data is written to:
|
||||
|
||||
```text
|
||||
.modernization_tool\WowPresence\discord_wow_status.json
|
||||
```
|
||||
|
||||
The companion log is written to:
|
||||
|
||||
```text
|
||||
.modernization_tool\WowPresence\WowPresence.log
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
The native components target **32-bit x86 Windows**, matching WoW 1.12.1.
|
||||
WowPresence targets **32-bit x86 Windows**, matching WoW 1.12.1.
|
||||
|
||||
With an x86 MSVC developer environment:
|
||||
|
||||
@@ -145,12 +145,32 @@ cl /nologo /O2 /MT /W3 /LD src\WowPresence.c /Fe:WowPresence.dll /link /INCREMEN
|
||||
cl /nologo /O2 /MT /W3 src\WowPresenceLauncher.c user32.lib /Fe:WowPresence.exe /link /SUBSYSTEM:WINDOWS /INCREMENTAL:NO
|
||||
```
|
||||
|
||||
GitHub Actions also builds both binaries automatically. Tagged versions matching `v*` publish a GitHub Release containing the DLL, EXE, and ZIP package.
|
||||
GitHub Actions builds:
|
||||
|
||||
## Credits and provenance
|
||||
- `WowPresence.dll`
|
||||
- `WowPresence.exe`
|
||||
- `WowPresence.zip`
|
||||
|
||||
Tags matching `v*` can publish these files as a GitHub Release.
|
||||
|
||||
## 📜 Project identity & licensing
|
||||
|
||||
WowPresence is an **independent community project**.
|
||||
|
||||
Compatibility with **World of Warcraft**, **Discord**, **OctoWoW**, **VanillaFixes**, **IchaLaunch**, or other referenced projects does not imply affiliation, endorsement, sponsorship, or ownership by their respective rights holders or maintainers.
|
||||
|
||||
**World of Warcraft**, **Warcraft**, **Blizzard Entertainment**, **Discord**, and related names and marks remain the property of their respective rights holders.
|
||||
|
||||
This repository does not currently declare a software license.
|
||||
|
||||
For detailed provenance and third-party information, see:
|
||||
|
||||
- [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)
|
||||
|
||||
## 🙏 Credits
|
||||
|
||||
WowPresence is maintained by **Dusk-92**.
|
||||
|
||||
The project was inspired in part by the WoW character-status / Discord Rich Presence work in **IchaLaunch** by **brutaliccus**. The current implementation is maintained separately and does not include IchaLaunch binaries.
|
||||
The project was inspired in part by the WoW character-status / Discord Rich Presence implementation in **IchaLaunch** by **brutaliccus**.
|
||||
|
||||
See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) for additional provenance and trademark information.
|
||||
The current WowPresence implementation is maintained separately and does not include IchaLaunch binaries.
|
||||
|
||||
Reference in New Issue
Block a user