The inherited About tab still pointed at Infi's Discord handle,
the Chat 2 community Discord thread, the Infiziert90/ChatTwo
issue tracker and the chattwo Crowdin project — all upstream
references that don't apply to this fork. Replace them with:
- Discord handle: @j.j_kazama
- GitHub Issues: JonKazama-Hellion/HellionChat
- The Chat 2 community Discord thread is dropped (no equivalent
Hellion community channel yet)
- The chattwo Crowdin link is dropped (we have no separate
Crowdin project; Hellion-specific strings live in the bundled
HellionStrings.<lang>.resx files maintained by hand)
Adds four Hellion-specific blocks below the version line:
Maintainer → Hellion Online Media (Florian Wathling), with the
hellion-media.de website as the contact channel for
any licensing or legal inquiries.
Built on → makes it explicit that Hellion Chat is a fork of
Chat 2 Chat 2 by Infi and Anna; every chat-replacement
feature, IPC integration, rendering and storage
code comes from upstream. Links to the upstream
Infiziert90/ChatTwo repository.
License → EUPL-1.2 with the dual copyright statement
covering the upstream Chat 2 authors and the
Hellion Chat additions.
FFXIV → standard SQUARE ENIX disclaimer naming the plugin
disclaimer as unofficial and fan-made, so anyone reading the
tab knows up front that this is not endorsed by SE.
The original ChatTwo translator credits stay intact below — the
upstream contributors deserve to remain visible in the fork.
Hellion Chat
A GDPR-compliant, Linux-aware fork of Chat 2 for FINAL FANTASY XIV / Dalamud.
Same chat replacement you know from upstream, with extra controls for what actually gets stored:
- Channel whitelist for database persistence (GDPR Art. 25 — privacy by default). Out-of-the-box only your own conversations are kept: Tells, Party, Free Company, Linkshells, Cross-World Linkshells, Alliance, ExtraChat. Public chat from strangers (Say/Shout/Yell), Novice Network, NPC dialogue, system spam and battle messages stay outside the database unless you opt them in.
- Per-channel retention with a 24-hour idempotent background sweep. Tells default to 365 days, own-conversation channels to 90, the global default to 30. Off until you switch it on — the plugin never deletes history without your explicit consent.
- Retroactive cleanup with a Ctrl+Shift confirm. Apply the current whitelist to an existing 800-MB+ database, watch it shrink to MBs, all on a background thread.
- Export to Markdown, JSON or CSV (GDPR Art. 15 right of access). Filter by channel, date range or sender substring; written via Dalamud's file dialog without blocking the UI.
- First-run wizard with three profiles (Privacy-First / Casual / Full History) that maps to concrete configuration sets. Reopenable from the Privacy tab any time.
- Independent plugin state. Config and database live under
pluginConfigs/HellionChat/, completely separate from upstream Chat 2 — you can run both side by side, or migrate from Chat 2 once and keep going. - Migration recovery. Heals databases left in a half-applied Migrate3
state (columns added,
user_versionnever bumped) without needing the backup file upstream creates. - Localized UI (EN + DE). All Hellion-specific surfaces follow Dalamud's
language override and switch live. Translations live in
Resources/HellionStrings.<lang>.resx.
Status
Bootstrap (v0.1.x). Used in production on a single user's setup. Not (yet) submitted to the official Dalamud plugin repository — distributed as a custom-repo / dev-plugin while the architecture stabilises.
Install (testers)
Hellion Chat is shipped via a Dalamud custom repository during the bootstrap phase.
If you have never used Chat 2
- Open Dalamud settings (
/xlsettings) → Experimental. - Add a new entry under Custom Plugin Repositories:
https://raw.githubusercontent.com/JonKazama-Hellion/HellionChat/main/repo.json - Click Save, then back in
/xlpluginshit All Plugins and refresh. - Hellion Chat now appears in the list — install it.
If you are migrating from Chat 2 (and want to keep your history)
The two plugins share pluginConfigs/ChatTwo/ (database) and
pluginConfigs/ChatTwo.json (settings). Hellion Chat moves both into
pluginConfigs/HellionChat/ on first start, but only if the upstream
plugin isn't holding the database file open. Order matters:
- Disable Chat 2 in
/xlplugins(don't uninstall, just disable). - Close FFXIV completely so SQLite releases its file lock — a plain plugin reload is not enough.
- Re-launch the game.
- Add the custom repo URL as in the previous section.
- Install Hellion Chat. On its first start it migrates the Chat 2 config file and the entire database directory into the HellionChat layout without losing data.
- Verify in Settings → Privacy → Apply filter to existing database → Refresh preview that the message count is what you expect (millions of rows if you used Chat 2 for a while).
If the message count comes back as zero, the migration was blocked (usually because Chat 2 was still active or the previous game session hadn't fully closed). See the troubleshooting section below.
Troubleshooting
Hellion Chat shows zero messages but I had Chat 2 history: The migration either didn't run or hit a locked file. Close the game, then move the data manually:
Linux / XIVLauncher Core:
mv ~/.xlcore/pluginConfigs/ChatTwo/chat-sqlite.db \
~/.xlcore/pluginConfigs/HellionChat/chat-sqlite.db
[ -d ~/.xlcore/pluginConfigs/ChatTwo/EmoteCacheV1 ] && \
mv ~/.xlcore/pluginConfigs/ChatTwo/EmoteCacheV1 \
~/.xlcore/pluginConfigs/HellionChat/
Windows / standard XIVLauncher:
Move-Item "$env:AppData\XIVLauncher\pluginConfigs\ChatTwo\chat-sqlite.db" `
"$env:AppData\XIVLauncher\pluginConfigs\HellionChat\chat-sqlite.db" -Force
Then start the game and Hellion Chat — your full history is back.
Updates
Updates land in the same plugin list once the maintainer pushes a new
v0.1.x tag and re-publishes the GitHub release. No re-installation
needed.
Why a fork
The upstream maintainer has left filtering-related issues open since 2024 (#84, #173, #174). The original design treats the database as an unlimited searchable archive of everything the chat window sees, which is fine in the US-/JP-shaped privacy mindset but hard to reconcile with EU GDPR data minimization rules when the archive contains messages from third parties.
Forking under EUPL-1.2 is explicitly permitted, the upstream stays
authoritative for the chat-replacement engine, and we cherry-pick relevant
upstream bugfixes from Infiziert90/ChatTwo periodically.
Build
# Linux with XIVLauncher Core
cp .env.example .env
# adjust DALAMUD_HOME if your hooks live somewhere else
set -a; source .env; set +a
dotnet build ChatTwo/ChatTwo.csproj
The output assembly is ChatTwo/bin/Debug/HellionChat.dll. Add the parent
directory as a Dev Plugin Location in Dalamud's experimental settings.
Branding assets
ChatTwo/images/icon.png is the upstream Chat 2 icon and stays in place
until a hand-drawn Hellion logo replaces it. No AI-generated artwork —
ever.
License
EUPL-1.2 (same as upstream Chat 2). See LICENCE.
Acknowledgments
- Infi & Anna (ascclemens) — original Chat 2 engine, filtering, IPC, all the heavy lifting before this fork existed.
- Dalamud team — the plugin framework underneath everything.
- JonKazama-Hellion — fork maintenance, privacy/retention/export features, German localization.
AI assistance disclosure
See AI_DISCLOSURE.md.