Cargando contenido…
Live Fallout 4 player state on Discord. One F4SE DLL — old-gen + Next-Gen — fully INI-templated, crash-safe, with per-state small images and dual buttons.
Live Fallout 4 player state on Discord. One F4SE DLL — old-gen + Next-Gen — fully INI-templated, crash-safe, with per-state small images and dual buttons.
How the card renders on Discord — large image is the T-60 power armor helmet, the small image switches with what you are doing in-game:
The default "Iconic" look, fully editable in the INI:
┌─ Fallout 4 ───────────────────────────────┐
│ Lexie • 100% HP • 1,082,076 caps │ ← details (each field toggleable + templated)
│ ⭐ Level 15 • In Pipboy Menu │ ← state (status, location when relevant)
│ 🎮 02:14 elapsed │
└────────────────────────────────────────────┘
Every status the plugin tracks:
| Group | Shows |
|---|---|
| Lifecycle | Launching game · In Main menu · Started a new game · Loading |
| Menus | Pip-Boy · Workshop · Terminal · Barter · Cooking · VATS · Lockpicking · Level-up · Dialogue · Sleep/Wait · Pause |
| World | Exploring • <location> (exterior location name, interior cell) |
| Combat | Fighting <enemy> • <location> |
| Events | Hacked <terminal> · Built <object> (timed, configurable) |
| Requirement | Why | Where |
|---|---|---|
Fallout 4 (PC, x64) on 1.10.163, 1.10.984, 1.11.169 or 1.11.191 | The plugin host | |
| F4SE for your runtime (loads the DLL) | Plugin host runtime | |
| Address Library for F4SE Plugins (All-in-One) | Engine address resolution across versions | |
| Discord desktop client (running, logged in) | The RPC pipe lives only in the desktop app |
Then enable Discord → User Settings → Activity Privacy → "Share your detected activities with others" — otherwise the card stays private to you.
Download the latest ZIP from the Releases page, then pick a path below:
Mods → Drop file here).Mods.The plugin lands at Data\F4SE\Plugins\.
Run f4se_loader.exe) — otherwise the plugin will never load. MO2 handles the virtual Data\F4SE\Plugins\ mapping for you.Extract the release ZIP and copy these files into your Fallout 4 install (the in-game Data\ folder, not Documents):
<Fallout 4>\Data\F4SE\Plugins\discord_rich_presence.dll
<Fallout 4>\Data\F4SE\Plugins\discord_rich_presence.ini
<Fallout 4>\Data\F4SE\Plugins\discord_rich_presence_translation.ini
Launch the game once and the INI is generated/loaded.
[!IMPORTANT] If you previously installed another Fallout 4 Discord Rich Presence plugin shipped as
Discord_Presence_F4SE_Remake.dll, delete that DLL — this plugin detects the conflict at load and refuses to send frames while both are present.
After the install, the card appears on your profile with the default large image. To get the per-state small icons (Pip-Boy, VATS, combat, explore, menu, mainmenu, loading) you register your own Discord application and upload the bundled art. Takes about three minutes the first time.
Launch Fallout 4 once so the INI is loaded.
Create your Discord application at discord.com/developers/applications → New Application → name it (Fallout 4 works).
Upload the art assets under Rich Presence → Art Assets. The 8 PNGs ship under dist/discord-assets/ — filenames become asset keys, keep them as-is:
| key | image | shown when |
|---|---|---|
fo4-big | T-60 power armor helmet | always (large image) |
icon_explore | Red Rocket Truck Stop | exploring the wasteland |
icon_combat | Vault Boy tommy gun | combat with hostiles |
icon_pipboy | Pip-Boy 3000 Mark IV | Pip-Boy menu open |
icon_vats | Vault Boy VATS | VATS active |
icon_menu | Vault Boy bobblehead | other menus (workshop, terminal, dialogue…) |
icon_mainmenu | Vault 111 door | main menu |
icon_loading | Pip-Boy loading screen | loading screens |
Set your AppID in Data\F4SE\Plugins\discord_rich_presence.ini under [Main]:
[Main]
AppID = <your 19-digit application id>
Restart the game. The card appears with the icons switching live.
Full step-by-step with browser screenshots: docs/discord-app-setup.md.
1.10.163 and the entire Next-Gen line. The NG address path was reverse-engineered from the binary because the stock Address Library IDs were renumbered (see docs/DIAGNOSIS.md).{token} template engine renders the details and state lines from your INI, so the layout, separators, labels and icons are yours to edit without a rebuild.{label, url} pairs); large image stays on the cover art.The INI is created on first launch at Data\F4SE\Plugins\discord_rich_presence.ini. Full key reference: docs/configuration.md. The layout lives in [Format]:
[Format]
sFieldName = {name}
sFieldLevel = ⭐ Level {level}
sFieldHP = 💉 {hp}%
sFieldCaps = 🪙 {caps}
sFieldSeparator = " • "
sLocationConnector = " in "
[Buttons]
sButton1Label = Project page
sButton1Url = https://github.com/xt0n1-t3ch/Fallout-4-Discord-Rich-Presence
Tokens: {name} {level} {hp} {caps} {location} {enemy} {menu} {event}. Empty tokens collapse and their separator is dropped. Wrap values that need edge spaces in quotes.
git clone https://github.com/xt0n1-t3ch/Fallout-4-Discord-Rich-Presence
cd Fallout-4-Discord-Rich-Presence
git clone --depth 1 https://github.com/microsoft/vcpkg.git "$env:USERPROFILE\vcpkg"
& "$env:USERPROFILE\vcpkg\bootstrap-vcpkg.bat" -disableMetrics
$env:VCPKG_ROOT = "$env:USERPROFILE\vcpkg"
cmake --preset flat-ng-release && cmake --build --preset flat-ng-release # the DLL
Tests are offline and need neither the game nor Discord — they cover the whole config → template → composer → payload pipeline (see tests/index.md):
tools\build-flat-ng-debug.bat
tools\ctest-flat-ng-debug.bat
| Runtime | F4SE | Status |
|---|---|---|
1.11.191 (NG, current) | 0.7.7 | Verified in-game |
1.11.169 / 1.10.984 (NG) | 0.7.6 / 0.7.2 | Same NG address path |
1.10.163 (old-gen) | 0.6.23 | Cross-gen path |
src/
Plugin/ F4SE entrypoints, the main-thread Update hook, version data
Game/ CommonLibF4-bound readers, the g_UI resolver, diagnostics, NG address IDs
Presence/ Template engine + Composer + PresenceConfig (pure, fully tested)
Discord/ Pipe RAII + frame protocol + state machine + rate limiter (no SDK)
Config/ INI loader + translation side-file (SimpleIni)
Util/ logger, FNV-1a hash, play-time accumulator
tools/re/ reproducible offline binary scanners used to map the NG addresses
A clean-room rewrite. Loads on next-gen because the renumbered Address Library IDs are resolved through reproducible offline binary scans; resolves the UI singleton by an exact vtable match instead of a now-broken stock ID; reads game state without the ScrapHeap allocation that had crashed the engine; renders the whole presence through a configurable template engine instead of fixed strings; and ships the entire decision pipeline under offline tests so layout changes are verified without opening the game.
Maintained on personal time. If this earned a place in your load order, the sponsor button at the top of the repository links to GitHub Sponsors, Ko-fi and Buy Me a Coffee. Bug reports, repro saves and pull requests are equally welcome.
Apache License 2.0 © 2026 xt0n1