An autonomous, lightweight Windows companion bringing rich, real-time dynamic presence for Clair Obscur: Expedition 33 directly to your Discord profile.
Showcase • Key Features • Presence Matrix • Quick Start • Tray Controls • Architecture • Security • Issues & Feedback • License
- Continuous Autonomous Detection: Runs quietly in the system tray and establishes a Discord Rich Presence session the moment the game begins running (
SandFall-Win64-Shipping.exeorSandFall-WinGDK-Shipping.exe), cleanly disconnecting when the game closes. - Decoupled Presence Engine: Clean architectural separation between UI, presence formatting, and Discord IPC via immutable
PresencePayloadData Transfer Objects (DTO), enabling headless presence management and deterministic testing. - Native Platform Abstraction Layer (
core.platform): Robust cross-platform primitives (PlatformMutex,FileLock,PlatformRegistry) providing native Win32 named mutexes on Windows and POSIX advisory flock on Unix, eliminating low-level ctypes and winreg calls from business logic. - Multi-Target Process Unification: First-class simultaneous support for both Steam (
SandFall-Win64-Shipping.exe) and PC Game Pass / Microsoft Store (SandFall-WinGDK-Shipping.exe) game editions with dynamic process resolution. - Universal 20-Language Localization: Full native presence support across all 20 officially supported game languages extracted directly from Unreal Engine
.locresbinary catalogs: English (en), Italian (it), French (fr), German (de), Spanish (es), Latin American Spanish (es-419), Japanese (ja), Korean (ko), Polish (pl), Brazilian Portuguese (pt-BR), Russian (ru), Simplified Chinese (zh-Hans), Traditional Chinese (zh-Hant), and more. - 100% Checkpoint & Trial Symmetry: All 765 official checkpoint tags and all 33 Endless Tower stages & trials are fully mapped with localized titles across all 20 languages.
- Single Source of Truth (SSOT) Asset Catalog: Centralized localization templates and domain data into
assets/game_data.json, formatted with Prettier. - Zero Static Type Suppressions: 100% strict type safety under Python 3.12+ and Pyright with zero
type: ignorecomments across the entire codebase. - Pure Real-Time Telemetry Pipeline: A headless, non-intrusive Lua bridge powered by UE4SS that hooks directly into
AC_jRPG_BattleManager_Con the game thread. Detects battle transitions with zero latency and extracts live enemy/boss titles without memory scanning. Employs a strict 5.0-second wall-clock freshness window to instantly expire stale combat or zone telemetry when the game or battle concludes. - Interactive Telemetry Simulation Harness: Bundled developer CLI (
tools/simulate_telemetry.py) for live Discord Rich Presence simulation, combat transitions, and Endless Tower testing without running the game. - Cross-Platform Telemetry Paths: Built-in compatibility path resolution (
compat_paths.py) supporting Windows, Linux, and Steam Deck Proton/Wine environments. - Lightweight Native Discord IPC Client: Replaced third-party client wrappers with an in-house asynchronous wire client featuring intelligent rate-limiting, thread-safe cache invalidation, and automatic reconnection backoff.
- Official Zone Normalization: Translates raw internal Unreal Engine map assets (
Level_Goblu_Main-> Flying Waters,Level_SeaCliff-> Stone Wave Cliffs,Level_CleasFlyingHouse-> Flying Manor,Level_SimonArea-> The Abyss) into clean player-facing names. - Endless Tower & Super Boss Intelligence: Automatically resolves trials, stages, and Super Bosses (Simon the Divergent Star, Clea Unleashed, Duollistes, Painted Love).
- Unified Anti-Spoiler Mode: One-click tray toggle to shield against spoilers when streaming or playing with friends.
- Built-In Silent Auto-Updater: Checks GitHub Releases API in the background on startup, verifies SHA-256 integrity, and performs a 100% invisible in-place self-update with automatic app restart via a native Windows PowerShell trampoline.
- Windows Startup Integration: Toggle automatic launch on Windows startup directly from the tray icon (
HKCU\...\Run).
The status adjusts dynamically depending on your in-game language across all 20 supported languages (English, French, Italian, German, Spanish, Japanese, Korean, Russian, etc.):
| State | Details (Top Line) | State (Bottom Line) | Image Tooltip | Elapsed Timer |
|---|---|---|---|---|
| Exploration (EN) | Exploring |
<Zone Name> (<Flag Name>) (e.g. Sirene (Dancing Classes)) |
Clair Obscur: Expedition 33 |
Active session duration |
| Exploration (IT) | In esplorazione |
<Nome Zona> (<Nome Bandiera>) (es. Sirène (Dancing Classes)) |
Clair Obscur: Expedition 33 |
Durata sessione attiva |
| Exploration (FR) | En exploration |
<Nom de zone> (<Nom de drapeau>) (ex. Sirène (Dancing Classes)) |
Clair Obscur: Expedition 33 |
Durée de session active |
| Exploration (DE) | Erkundung |
<Zonenname> (<Flaggenname>) |
Clair Obscur: Expedition 33 |
Aktive Sitzungsdauer |
| Exploration (JA) | 探索中 |
<ゾーン名> (<フラグ名>) |
Clair Obscur: Expedition 33 |
セッション経過時間 |
| Combat Encounter (EN) | Fighting: <Enemy / Boss> |
<Zone Name> (<Flag Name>) |
Clair Obscur: Expedition 33 |
Active session duration |
| Combat Encounter (IT) | In combattimento con: <Nemico> |
<Nome Zona> (<Nome Bandiera>) |
Clair Obscur: Expedition 33 |
Durata sessione attiva |
| Endless Tower (EN) | Fighting: <Boss / Enemy> |
Endless Tower (Stage <X>, Trial <Y>) |
Clair Obscur: Expedition 33 |
Active session duration |
| Endless Tower (IT) | In combattimento con: <Boss> |
Torre Infinita (Fase <X>, Prova <Y>) |
Clair Obscur: Expedition 33 |
Durata sessione attiva |
| Anti-Spoiler Enabled | In Combat / In combattimento |
Hidden Location / Posizione riservata |
Clair Obscur: Expedition 33 |
Active session duration |
Tip
Process PID Binding: The Discord Rich Presence client is bound directly to the live game executable (SandFall-Win64-Shipping.exe or SandFall-WinGDK-Shipping.exe). Discord attaches your custom Rich Presence status directly to the running game instance, preventing conflicting dual statuses.
- Download: Grab the latest Expedition33_RPC.exe from Releases.
- Launch: Double-click
Expedition33_RPC.exe. It runs discreetly in your Windows system tray near the clock. - Play: Start Clair Obscur: Expedition 33. Your Discord Rich Presence updates immediately.
Right-clicking the tray icon gives you full control and real-time diagnostic status:
| Menu Option | Description |
|---|---|
Game: Running (PID: X) / Not running |
Live status and process ID of the game executable |
Location: <Zone Name> |
Current map/zone ([Hidden - Anti-Spoiler] when enabled) |
Status: In Combat / Exploring |
Real-time combat state and active target name |
Discord: Connected / Standby |
Discord IPC pipe connection status |
Anti-Spoiler Mode [Enabled / Disabled] |
Toggles obscuring enemy names and location zones |
Combat Bridge [Installed / Install Now] |
Toggles deployment of the headless UE4SS combat bridge |
Start with Windows [X / ] |
Toggles automatic launch on Windows login via registry |
Check for Updates / Update to vX.X.X |
Checks for releases and applies one-click self-update |
Exit |
Disconnects Discord RPC and terminates the background process |
The codebase follows a clean, modular 4-tier architecture designed for high maintainability, separation of concerns, and full static type safety:
src/expedition33_rpc/
├── __init__.py # Lazy exports (__version__, main, GameDetector, GameState)
├── __main__.py # CLI entrypoint (`python -m expedition33_rpc`)
│
├── core/ # Application lifecycle, platform abstraction & presence
│ ├── app.py # Single-instance application entrypoint
│ ├── orchestrator.py # Headless AppOrchestrator lifecycle coordinator
│ ├── platform.py # Native OS abstraction (PlatformMutex, FileLock, PlatformRegistry)
│ ├── presence.py # Decoupled PresencePayload DTO
│ ├── settings.py # Persistent configuration management
│ ├── startup.py # Windows autostart management via platform abstraction
│ └── resources.py # Bundled asset path resolution
│
├── detection/ # Game state detection and telemetry pipelines
│ ├── compat_paths.py # Cross-platform IPC paths (Windows, Linux Proton)
│ ├── detector.py # GameDetector with BridgeStateProvider & GameState
│ ├── game_data.py # 20-language asset catalog, regexes & Endless Tower trials
│ ├── normalization.py # Pure domain string normalization routines
│ └── timer_tracker.py # ZoneTimerTracker for smooth timer persistence
│
├── integrations/ # External services & installers
│ ├── bridge_installer.py # Automatic UE4SS combat bridge deployment
│ ├── discord_rpc.py # Decoupled native Discord IPC client (PresencePayload)
│ └── updater.py # In-app silent updater with SHA-256 verification
│
├── ui/ # Graphical user interface & presentation
│ ├── presentation.py # Pure presentation formatting logic producing PresencePayload
│ └── tray_app.py # Windows System Tray icon, menu & notifications
│
└── assets/ # Static resources
├── bridge.zip # Pre-compiled headless UE4SS mod package
├── game_data.json # 20-language SSOT asset catalog
├── icon.ico # Windows executable icon
└── icon.png # System tray & notification icon
All binaries published under Releases are built automatically in isolated, clean virtual machines via GitHub Actions (see .github/workflows/release.yml). We provide complete, unedited transparency regarding security scans, checksums, and false positives.
During every automated release build, all compiled artifacts are submitted directly to VirusTotal and scanned by 70+ industry security vendors. You can inspect the permanent public reports for the latest release:
| Artifact | SHA-256 (Prefix) | Detection Ratio | Permanent Report |
|---|---|---|---|
Expedition33_RPC.exe |
fbaaa01b...d9b5 |
65 / 71 Clean (6 Heuristic Flags) | 🛡️ Inspect Report |
bridge.zip |
f5dc985b...eb2c |
63 / 64 Clean (1 Generic) | 🛡️ Inspect Report |
📋 Click to view full SHA-256 Checksums
fbaaa01ba5bf61d2034ce1b15fed58497674df3f5705b17432a37d10ddc8d9b5 Expedition33_RPC.exe
f5dc985bd9cb7c72c048c6ac1c29a8f920f89e9c3dc2e5d1aba336c5bd4eb82c bridge.zip
Note
Zero Threats Detected by Leading Vendors: The vast majority of top-tier antivirus suites — including Kaspersky, Bitdefender, Avast, AVG, ESET-NOD32, Sophos, CrowdStrike Falcon, Symantec, and TrendMicro — confirm that all binaries are 100% clean and undetected.
If your antivirus or Windows SmartScreen displays an alert, here is exactly why it happens and why the binaries are safe:
- Exact Detection Breakdown (6 / 71 Vendors):
- Microsoft:
Trojan:Win32/Wacatac.B!ml(Automated Cloud ML heuristic guess;!mlstands explicitly for Machine Learning) - SentinelOne (Static ML):
Static AI - Suspicious PE(Static machine learning heuristic on self-extracting PyInstaller binary header) - Elastic:
Malicious (high Confidence)(Generic heuristic flag on packed executable layout) - Bkav Pro:
W32.Malware.15AC2E30(Algorithmic signature mismatch on unsigned binary) - SecureAge:
Malicious(Cloud whitelist absence for unsigned open-source binaries) - Arctic Wolf:
Unsafe(Generic reputation score heuristic)
- Microsoft:
- Why PyInstaller Triggers Machine Learning Heuristics:
Expedition33_RPCis packaged using PyInstaller, which bundles Python 3.12 and dependencies into a self-extracting executable. Because some malware authors also package malicious scripts using packers, automated cloud ML heuristics frequently misclassify fresh, unsigned PyInstaller binaries under generic names likeWacatac.B!ml.- These engines also flag legitimate Windows API calls: creating a named Windows mutex (used to enforce a single running instance of the tray app) and querying running processes via
psutil(used solely to detect whenSandFall-Win64-Shipping.exeorSandFall-WinGDK-Shipping.exelaunches or exits).
- Lack of Expensive EV Code-Signing Certificate:
- Commercial software publishers pay hundreds of dollars per year ($400+/year) for Extended Validation (EV) certificates to bypass SmartScreen and heuristics. As a free, open-source community tool,
Expedition33_RPCis unsigned, so automated heuristics assign it a default "low reputation" score until enough community reputation builds.
- Commercial software publishers pay hundreds of dollars per year ($400+/year) for Extended Validation (EV) certificates to bypass SmartScreen and heuristics. As a free, open-source community tool,
- UE4SS Mod Loader Hooking (
Jiangmin: Trojan.Generic.huhtf):bridge.zippackages the pre-compiled, open-source UE4SS framework (UE4SS.dll+dwmapi.dllproxy).- To communicate directly with the game thread without invasive memory editing, UE4SS uses a standard DLL proxy chain (
dwmapi.dll). One scanner flags this DLL proxy technique as generic mod hooking, while 67 out of 68 vendors recognize it as completely benign.
Every release publishes a SHA256SUMS.txt file created during the GitHub Actions build. You can verify your downloaded binary locally in PowerShell:
Get-FileHash .\Expedition33_RPC.exe -Algorithm SHA256Compare the output with the table above or the checksums on the release page.
On first launch, Windows SmartScreen may display "Windows protected your PC":
- Click More info.
- Click Run anyway.
If you prefer not to use pre-compiled binaries, you can inspect the full source code and build it locally with complete autonomy:
git clone https://github.com/SolaneHub/Expedition33_RPC.git
cd Expedition33_RPC
uv sync
uv run python build_exe.pyOr run the Python application directly without compilation:
uv run python -m expedition33_rpcClick to expand development instructions
- Python 3.12+
- uv (recommended package and project manager)
uv sync# Lint checks
uv run ruff check
# Format check / auto-format
uv run ruff format
# Static type checking
uv run pyrightuv run python build_exe.pyThe compiled binary will be placed in dist/Expedition33_RPC.exe.
We welcome bug reports, feature suggestions, and questions from the community! If you run into any issues or have an idea to improve Expedition33_RPC, feel free to reach out:
| Type | Description | Link |
|---|---|---|
| 🐛 Bug Report | Found an issue, incorrect zone/flag detection, or crash? | Submit Bug Report |
| ✨ Feature Request | Suggest new presence ideas, flag mappings, or enhancements. | Request Feature |
| 💭 Discussions | General questions, troubleshooting, setup help, or feedback. | Join Discussions |
| 🔒 Security Report | Discovered a vulnerability? Disclose it safely and privately. | Security Policy |
- Check Existing Issues: Search open issues and closed issues to see if the topic has already been addressed.
- Update to Latest Version: Verify that you are running the latest release from Releases or through the in-app automatic updater.
- Provide Context: When reporting a bug, please include:
- Application version (e.g.
v2.0.6) - Game edition (Steam, PC Game Pass / Xbox, etc.)
- Combat Bridge status (Installed via tray or automatic deployment)
- Windows OS version
- Clear steps to reproduce and any relevant screenshots or logs
- Application version (e.g.
This project is licensed under the MIT License (with Attribution) — see the LICENSE file for details. Any redistribution, fork, or derivative work must retain prominent attribution to the original author (SolaneHub) and include a visible link back to the project repository: https://github.com/SolaneHub/Expedition33_RPC.
For transparency and Discord Developer compliance, review our Privacy Policy (100% zero-data, strictly local) and Terms of Service.
Clair Obscur: Expedition 33 is a trademark of Sandfall Interactive / Kepler Interactive. This application is an unofficial, community-made tool and is not affiliated with or endorsed by Sandfall Interactive.



