Refresh README presentation

This commit is contained in:
Dusk-92
2026-09-01 15:44:08 +02:00
parent 36391f1ea9
commit 503103179d
+92 -72
View File
@@ -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.