-
v1.0.3 Stable
released this
2026-05-04 14:17:06 +00:00 | 181 commits to main since this releaseHellion Chat 1.0.3 — Polish patch
- New: optionally hide chat (and every other plugin window) while the
New Game+ menu is open. Toggle in Settings → Window → Frame, default
off. Closing the menu restores all windows. - New: optionally tint the channel selector button next to the input
field with the currently active channel's colour. Toggle in
Settings → Appearance → Colours, default on. Matches the existing
input-text tint and respects ExtraChat overrides. - Fix: status, item and other inline hover icons keep their original
aspect ratio. Debuff icons with non-square dimensions are no longer
visually squished into a 32×32 box. - Diagnostic: hide-state transitions (battle, cutscene, user-hide,
cutscene override) are now logged on Verbose level for easier bug
reports — off by default, enable with/xllog set HellionChat verbose.
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
How to install
This release is distributed via the HellionChat custom repository, not the
Dalamud main plugin repo. To install:- In XIVLauncher: Settings → Experimental → Custom Plugin Repositories
- Add the URL:
https://raw.githubusercontent.com/JonKazama-Hellion/HellionChat/main/repo.json - Enable, save, then
/xlplugins→ search Hellion Chat → install
Project documents
- README — features, architecture, build
- Privacy notice — what the plugin stores and sends
- Third-party notices — dependencies and licences
- Security policy — vulnerability reporting
- Support — bug reports, questions, contact paths
Licence
Downloads
- New: optionally hide chat (and every other plugin window) while the
-
v1.0.2 Stable
released this
2026-05-04 14:00:07 +00:00 | 183 commits to main since this releaseHellion Chat 1.0.2 — Polish patch
- New: optionally hide chat (and every other plugin window) while the
New Game+ menu is open. Toggle in Settings → Window → Frame, default
off. Closing the menu restores all windows. - New: optionally tint the channel selector button next to the input
field with the currently active channel's colour. Toggle in
Settings → Appearance → Colours, default on. Matches the existing
input-text tint and respects ExtraChat overrides. - Fix: status, item and other inline hover icons keep their original
aspect ratio. Debuff icons with non-square dimensions are no longer
visually squished into a 32×32 box. - Diagnostic: hide-state transitions (battle, cutscene, user-hide,
cutscene override) are now logged on Verbose level for easier bug
reports — off by default, enable with/xllog set HellionChat verbose.
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
How to install
This release is distributed via the HellionChat custom repository, not the
Dalamud main plugin repo. To install:- In XIVLauncher: Settings → Experimental → Custom Plugin Repositories
- Add the URL:
https://raw.githubusercontent.com/JonKazama-Hellion/HellionChat/main/repo.json - Enable, save, then
/xlplugins→ search Hellion Chat → install
Project documents
- README — features, architecture, build
- Privacy notice — what the plugin stores and sends
- Third-party notices — dependencies and licences
- Security policy — vulnerability reporting
- Support — bug reports, questions, contact paths
Licence
Downloads
- New: optionally hide chat (and every other plugin window) while the
-
v1.0.1 Stable
released this
2026-05-04 10:15:26 +00:00 | 185 commits to main since this releaseHellion Chat 1.0.1 — Window Position Recovery
- Automatic bounds check on the first draw after plugin load.
When the persisted window position has no overlap with the
primary viewport, the window snaps to a safe top-left default.
Helpful after a monitor disconnect, resolution change or
multi-monitor layout switch between sessions. - New "Reset Window Position" button in Settings → Window → Frame
as a manual escape hatch for edge cases the automatic check
doesn't catch.
Tested on Linux/Wayland with a hard-cut three-monitor reduction;
window recovers cleanly without manual JSON editing.Housekeeping carried over since v1.0.0:
- Documentation restructured into docs/ folder. New CHANGELOG,
CONTRIBUTORS, LEARNING-JOURNEY and ROADMAP added - Stale ChatTwo/* paths in repo configs updated to HellionChat/*
- Pidgin parser library bumped from 3.3.0 to 3.5.1 (CIString
Unicode fix relevant for non-ASCII channel/tab names) - GitHub Actions: actions/setup-dotnet bumped 4 → 5,
github/codeql-action bumped 3 → 4
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
How to install
This release is distributed via the HellionChat custom repository, not the
Dalamud main plugin repo. To install:- In XIVLauncher: Settings → Experimental → Custom Plugin Repositories
- Add the URL:
https://raw.githubusercontent.com/JonKazama-Hellion/HellionChat/main/repo.json - Enable, save, then
/xlplugins→ search Hellion Chat → install
Project documents
- README — features, architecture, build
- Privacy notice — what the plugin stores and sends
- Third-party notices — dependencies and licences
- Security policy — vulnerability reporting
- Support — bug reports, questions, contact paths
Licence
Downloads
- Automatic bounds check on the first draw after plugin load.
-
v1.0.0 Stable
released this
2026-05-03 20:51:06 +00:00 | 192 commits to main since this releaseHellion Chat 1.0.0 — Standalone Major Release
First fully standalone release. Internal cleanup plus a sweep of
pre-existing correctness, security, threading and resource-leak
fixes carried over from the upstream codebase. No user action
required — auto-update applies cleanly, configuration and database
paths unchanged.Standalone identity:
- Code namespace consolidated from ChatTwo.* to HellionChat.* across
all source files - IPC channels migrated from ChatTwo.* to HellionChat.* (6 channels:
Register, Available, Unregister, Invoke, GetChatInputState,
ChatInputStateChanged) — third-party plugins that bound to the old
channels need to be updated; none known at release time - ImGui popup ID renamed to hellionchat-context-popup
- Repository folder restructured (ChatTwo/ → HellionChat/), all CI
and build paths updated accordingly - Public-facing descriptions reworded from upstream-fork framing to
standalone framing (Chat 2 attribution preserved per EUPL-1.2) - Colour preset 'ChatTwo Default' is now 'Klassik (Chat 2 Default)'
Safety:
- Plugin now refuses to load when upstream Chat 2 is also active —
bilingual conflict message in EN/DE, throw before any subsystem
initialization, prevents the runtime crash that previously occurred
when both plugins replaced the same chat window in parallel - SQLite native binary bumped to 3.50.3 (CVE-2025-6965 memory
corruption from aggregate-term overflow, CVE-2025-7709) - NuGet restore now honors packages.lock.json so transitive
dependencies don't drift between machines or CI runs
Default tab layout sharpened (one-time tab reset on first start):
The first-run tab layout is reorganized into five thematic tabs
based on external tester feedback. General contains only Say,
Yell and Shout (immediate-surroundings public chat). System
absorbs the gameplay-event streams (NpcDialogue, Loot, Crafting,
Gathering, PF recruitment pings) and announcement noise
(BattleSystem, FreeCompanyAnnouncement, PvpTeamAnnouncement)
that previously lived in General. FreeCompany, Group and
Linkshell each own their channel set. The static Tell tab is
gone — Auto-Tell-Tabs spawns per-conversation tabs on demand.
The Beginner / Novice-Network preset is no longer added by
default but is still available via Settings, Tabs.This is a one-time tab-layout reset for users on config version
12 or older. Privacy, Retention, Theme and every other setting
is preserved. Your previous tab configuration is written to
pluginConfigs/HellionChat.json.pre-v13-backup so you can restore
it manually if you prefer the old layout.Crash-class fixes (formerly latent in upstream):
- MathUtil.HasOverlap now uses a correct AABB test; identical or
edge-touching rectangles are no longer reported as non-overlapping - ChatCode.Equals compares fields directly instead of GetHashCode;
removes the hash-collision anti-pattern - IpcManager.Dispose uses UnregisterAction to match the matching
RegisterAction call; previous mismatch leaked the action
subscription on every plugin reload - ExtraChat.Dispose now unsubscribes all three IPC subscriptions
(was only the first); leaks closed - TellTarget.FromTarget guards against a zero IPlayerCharacter.Address
before dereferencing the unsafe Character* cast - GameFunctions ResolveTextCommandPlaceholderDetour null-checks the
Hook reference instead of using the null-forgiving operator - Popout.cs and SettingsTabs/Tabs.cs bounds-check list indexing so
a tab drop or empty-worlds list no longer crashes the UI - Debugger.cs now declares IDisposable so the existing Dispose runs
Correctness fixes:
- GlobalParametersCache.GetValue captures Cache into a local before
the bounds check, so a concurrent Refresh can't slip a different
array between check and read - IconUtil binary search bounds initialized to entries.Length-1 and
reset on redirect-restart; entries.Length==0 short-circuits - Sheets.WorldsOnDatacenter now compares DataCenter.RowId (was
Region.RowId) so it actually returns same-DC worlds - Message.cs back-reference loop iterates the processed Sender/Content
properties so chunks added by CheckMessageContent get Message set - Language.zh-Hans Webinterface_Start_Success corrected to
"网页界面已启动" (was "网页界面已停止")
Threading and async:
- AutoTranslate Entries/ValidEntries are now serialized behind a
single lock; the preload worker thread and main thread no longer
race on the underlying dictionary/hash set - Privacy retention and cleanup workers bound their framework-refresh
waits to 5 seconds with a logged timeout; a hung framework tick can
no longer deadlock the background worker
Resource handling:
- EmoteCache reuses the static HttpClient instead of allocating a new
one per call (closed socket leak) - FontManager wraps HttpClient/HttpResponseMessage in using-blocks
and adds EnsureSuccessStatusCode; failed downloads no longer
silently produce a zero-byte font file - SearchSelector mixes the row index into the ImGui ID stack so
selectables don't collapse to a single ambiguous ID - SettingsTabs/Chat blocked-emote add-button now opens its selector
popup on left-click
Performance:
- DbViewer text export caches filteredHistory.Count once instead of
re-enumerating the IEnumerable on every batch (O(N) instead of
O(N²) on large histories)
License attribution (NOTICE.md, COPYRIGHT, THIRD_PARTY_NOTICES.md
and the Credits section in README) is unchanged.Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
How to install
This release is distributed via the HellionChat custom repository, not the
Dalamud main plugin repo. To install:- In XIVLauncher: Settings → Experimental → Custom Plugin Repositories
- Add the URL:
https://raw.githubusercontent.com/JonKazama-Hellion/HellionChat/main/repo.json - Enable, save, then
/xlplugins→ search Hellion Chat → install
Project documents
- README — features, architecture, build
- Privacy notice — what the plugin stores and sends
- Third-party notices — dependencies and licences
- Security policy — vulnerability reporting
- Support — bug reports, questions, contact paths
Licence
Downloads
- Code namespace consolidated from ChatTwo.* to HellionChat.* across
-
v0.6.1 Stable
released this
2026-05-03 15:16:00 +00:00 | 220 commits to main since this releaseHellion Chat 0.6.1 — Pop-Out Discoverability & /tell Auto-Pop-Out
- Pop-out button now visible in the chat header (no more hunting
through the right-click menu) - One-time hint banner explains pop-out tabs and the right-click
shortcut - New setting: open new /tell tabs directly as pop-out windows
(Settings → Chat → Auto-Tell-Tabs) - Pop-out input is now enabled by default — closing a pop-out still
returns the tab to the sidebar - Bugfix: dropping or logging out with an LRU/popped auto-tell tab
now also closes its pop-out window (no more ghost windows) - Bugfix: dead zone below the chat input bar when the v0.6.0 pop-out
hint banner was visible (also fixed retroactively for the v0.6.0
banner inside pop-outs)
Modding & support: join Hellion Forge — https://discord.gg/X9V7Kcv5gR
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
How to install
This release is distributed via the HellionChat custom repository, not the
Dalamud main plugin repo. To install:- In XIVLauncher: Settings → Experimental → Custom Plugin Repositories
- Add the URL:
https://raw.githubusercontent.com/JonKazama-Hellion/HellionChat/main/repo.json - Enable, save, then
/xlplugins→ search Hellion Chat → install
Project documents
- README — features, architecture, build
- Privacy notice — what the plugin stores and sends
- Third-party notices — dependencies and licences
- Security policy — vulnerability reporting
- Support — bug reports, questions, contact paths
Licence
Downloads
- Pop-out button now visible in the chat header (no more hunting
-
released this
2026-05-03 11:22:32 +00:00 | 239 commits to main since this releaseHellion Chat 0.6.0 — UX Polish: Pop-Out Input + Colour Presets
Two opt-in UX features. Existing users see no change unless they enable
the new toggles.Pop-out input bar:
- Global master switch in Settings → Window → Frame
- Channel-coloured icon button + text input in every pop-out window
- Independent text buffer and history cursor per pop-out
- Channel changes apply globally (FFXIV channel API behaviour)
- Up/Down navigates a shared input history singleton
- One-time hint banner on first pop-out after the upgrade
Chat colour presets (seven built-ins):
- ChatTwo Default, High-Contrast, Pastell, Dark-Mode-Tuned
- Hellion (brand-coloured, Arctic Cyan + Ember Glow)
- Night Blue, Indigo Violet (bonus mood presets from KAZAMA themes)
Configuration migrates from v10 to v11 with a diagnostic log.
Bilingual EN/DE for all new sections.Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
Downloads
-
v0.5.4 Stable
released this
2026-05-02 21:57:26 +00:00 | 261 commits to main since this releaseDownloads
-
v0.5.3 Stable
released this
2026-05-02 21:46:26 +00:00 | 262 commits to main since this releaseDownloads
-
v0.5.2 Stable
released this
2026-05-02 21:33:22 +00:00 | 264 commits to main since this releaseDownloads
-
released this
2026-05-02 19:34:58 +00:00 | 289 commits to main since this releasePure hardening and polish patch on top of 0.5.0. No new features, no migration, no Configuration
version bump. Eight backlog items from the v0.5.0 codebase review collected into one release.What changed
Settings UX
- Cleanup preview in the Privacy tab now flags itself as out-of-date when you edit the whitelist after
the last refresh. The numbers grey out, a stale hint appears and the Refresh button is visually
emphasised so you know to recalculate before applying - Performance section in the General tab moves from a wall-of-text description to the standard
HelpMarker tooltip used everywhere else in v0.5.0 - Tabs and Database settings tabs now pull their display name from HellionStrings instead of the
upstream Language bundle, so all eight tabs share one i18n source
Auto-Tell-Tabs
- Greeted tabs now also dim their selection and hover backgrounds in the sidebar, not just the tab
name. The visual distinction at a glance is much stronger when you have a stack of greeted and
ungreeted tabs side by side
Hardening
- FontChooser results from the threadpool are now marshalled onto the framework thread via
Plugin.Framework.Runinstead of being written to settings state directly. Race-free against the
frame render - EmoteCache.LoadData drops
async voidforasync Taskso the two callers can fire-and-forget
cleanly. Fixes the four CS8618 build warnings the build has been carrying since v0.4.0 - All MessageStore SQL paths that fed dynamic value lists into interpolated SQL (CleanupRetainOnly,
StreamForExport, CountDateRange, GetDateRange, GetPagedDateRange, DeleteByRetentionPolicy) now use
named parameter bindings via a newBindIntListhelper. Same behaviour, defence against future
user-input regressions
What did not change
- Configuration version stays at 10. No migration runs, no notification appears
- Default tab layout is unchanged from 0.5.0 (General, System, Free Company, Party, Beginner when
applicable, Linkshell, Tell Exclusive) - Privacy filter, retention sweep and export pipeline behave identically to 0.5.0
Existing installs upgrade silently.
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2)
Downloads
- Cleanup preview in the Privacy tab now flags itself as out-of-date when you edit the whitelist after