Apothecary Chat

Customizable Chat Overlay for Blue Protocol: Star Resonance

What is this?

A chat overlay widget that lets you create customizable chat panes to overlay on top of your game window. See party, guild, private messages, and more in separate, filterable windows with alert notifications.

Features

  • Multiple Chat Windows: Create unlimited customizable chat panes for different message types.
  • Alert Notifications: Unique chimes for different message types (party, guild, DM, etc.).
  • Private Messages: See DMs without opening friends list, even from non-friended players.
  • Chat Filters: Filter messages by text content, player, or regex patterns.
  • Click-Through Mode: Position windows, then enable click-through to avoid interference.
  • Custom Themes: Adjustable colors, opacity, and styling per window.
  • Multi-Interface: Monitor multiple network interfaces simultaneously.
  • Multi-Service: Separate databases for different game regions (Global, SEA, CN).

Requirements

  • WinPcap or Npcap must be installed (already present if you use a DPS Meter).
  • For non-admin usage, configure pcap for standard user capture.

Quickstart Guide

First-Time Setup

Download, extract, and run apothecary_chat.exe. On first launch, select your game's network interface.

Tip: Hold left SHIFT on startup to re-select the network interface.

System Tray

  • Red = Disconnected
  • Green = Connected to game
  • Right-click tray icon for menu options.

Creating Chat Windows

  1. Right-click tray icon and add a new window.
  2. Configure which message types to display (Party, Guild, World, DM, etc.).
  3. Set alert sounds for different message types in Global Settings.
  4. Customize colors and appearance in the Settings tab (visible for chat windows when not in click-through mode).

Using Filters

  • Right-click any message to quickly add a filter.
  • Filter by text content, player UID, or regex patterns.
  • Apply filters globally or per-window.

Changelog

03/19/26
V 1.8.10

Bug Fixes

  • Fixed tray popup not showing on MultiMonitor setups where the SystemTray is on a display that does not match the DPI scaling of the primary.
03/07/26
V 1.8.9

Bug Fixes

  • Fixed an issue where the program could fail to start correctly the first time it was launched.
  • Improved startup handling for newly created settings data.
02/25/26
V 1.8.8

Click-Through Mode

  • Added ALT + Scroll support (requires "ALT + click-through interaction" enabled). Focus is stolen to block RawInput from Unity Engine; click back to game after scrolling.
02/21/26
V 1.8.7

Party Notification Chimes

  • Added under Global Settings. Plays a configurable chime alert for matchmaking queue pops and ready checks.

Chimes

  • Added more options to choose from.
02/12/26
V 1.8.6

Filter Categories

  • Added ability to re-order filter categories via right-click menu. Categories can be moved left or right; the "Main" category cannot be moved.

Custom Chimes

  • Added category support to Custom Chimes. Organize large numbers of chime and coloring rules into categories, similar to filter categories.

Bug Fixes

  • Fixed UI issues with import and export dialogs.
02/12/26
V 1.8.5

Netcode

  • TCP flow discovery now filters exclusively by game process PID, with extra logging and safety checks.
02/12/26
V 1.8.4

UI

  • Disabled DPI Awareness as a stopgap to Custom DPI breaking some UI elements.
02/11/26
V 1.8.3

Right-Click Menu

  • Fixed intermittent wrong selections when right-clicking in a Chat Window after the overflow count was hit. (Line indices were not refreshed after overflow trimming; previously masked by quick-interact resize re-indexing.)
  • Fixed right-click menu offset being wrong by 4 pixels in click-through mode, which could cause erroneous selections near line edges.
  • Added right-click menu entries for copying player name and UID to clipboard.

Custom Chimes

  • Added Custom Coloring to the Custom Chimes alert rules. Chime rules can now set a custom text color for matched messages in addition to playing a sound.
02/11/26
V 1.8.2

Critical Fix

  • Fixed an issue that could cause the application to suddenly close when interacting with popup dialogs, most notably where to save a chat filter. (PostMessage ordering / leak issue)
02/11/26
V 1.8.1

UI

  • Added software-cursor feature to show cursor location when outside of the program window while it is hidden by the game window.
  • Refactored Global Settings window to be resizable and virtual. If Global Settings cannot fit (e.g., on a low resolution screen), the window is automatically clamped to fit on screen.

Bug Fixes

  • Fixed quick-interact mode immediately disengaging whenever a confirmation popup is shown on filter additions.
02/10/26
V 1.8.0

UI

  • Added a full custom dark-themed menu system for tray and right-click menus.
  • Added support for ALT + RMB fast-menu when in click-through mode (enable via Global Settings; enabling installs a low-level mouse hook while checked).
  • Added hover effects to more UI widgets for consistency.

Layered Drawing

  • Improved window layering behavior and popup handling for layered drawing.
  • Fixed an issue where chat windows could fail to repaint after toggling click-through mode while using layered drawing.
  • Persist scroll clamping when exiting click-through mode.

MISC

  • Reworked string handling for Unicode and multi-language safety.
02/10/26
V 1.7.4

Bug Fixes

  • Fixed a layered drawing issue where text updates would get "stuck" in a bad state on hiding and re-showing a Chat Window.
02/10/26
V 1.7.3

Bug Fixes

  • Fixed an instance where in layered drawing mode, chat messages may not be refreshed until manually scrolling or toggling click-through mode. Mask update should be properly forced now for the overlay cutout.
02/10/26
V 1.7.2

Bug Fixes

  • Fixed startup state issues where the layered Title Bar could show while its associated chat window was hidden.
  • Fixed Title Bar background not painting correctly on first show when starting hidden in layered mode.
  • Various minor fixes for layered rendering.
02/10/26
V 1.7.1

Chat Windows

  • Added Layered Drawing experimental-option (see Global Settings or Chat Window Settings). Layered drawing allows setting different transparency levels for 'text' and the 'background' of the chat overlay.
  • Fixed a scroll clamping issue when changing font size that could leave the chat view blank.
02/08/26
V 1.7.0

UI

  • Rounded edges to buttons and combo boxes, gradient hinting, mouse-over and button depress effects, icon buttons, a modernized file menu, and extensive UI polish.
  • Various UI optimizations.
  • Improved contrast of color calculation for sliders.

Chat Windows

  • Special characters and symbols are now legal in Chat Window titles.
  • Chat Window Title font-size can now be increased in Global Settings and per Chat Window Settings.
  • Maximum font-size increased to 50pt.
02/07/26
V 1.6.5

Hotkeys

  • Bindings can now be cleared with Escape or Backspace while in binding mode.
  • Added a per-window Show/Hide hotkey in each Chat Window's Settings tab. Unbound by default.
  • Duplicate detection across all global and per-window hotkeys.
  • Fixed Alt+key combinations not being recognized when setting bindings.

Narration

  • The "Don't Narrate" emoji filter now also strips inline emoji and sticker tokens (e.g., emojiPic=%s=%ssticker_1_83008) from narrated text.

UI

  • App now uses FiraSans consistently, matching the rest of the application. (e.g, Settings to Chat Windows)
  • Settings label widths are now computed dynamically.
02/04/26
V 1.6.4

Improvements

  • Added the ability to import and export chat filters as JSON files (in addition to the existing database export). This makes it easier to back up and share your filter sets.
  • Added import and export for Custom Chimes, so you can back up or share your custom chime rules.
  • Stricter safety checks during import to prevent malformed files from being imported or causing crashes.
02/04/26
V 1.6.3

Improvements

  • Optimize, optimize, optimize. Widget DC and brush caching, etc. (Better UI performance)

Fixes

  • Reordering filters or custom chimes no longer jumps back to the top of the list.
02/03/26
V 1.6.2

Improvements

  • Implement filter caching and various optimizations. (performance improvements)
02/01/26
V 1.6.1

Narration (SAPI): Added a Narrate option for chimes that speaks incoming messages using Windows text-to-speech.

Fixes

  • Fixed various minor UI issues.
01/31/26
V 1.6.0

Custom Chimes: Create your own text-based chime rules that trigger on incoming chat messages.

  • Supports Simple, Regex, and UID matching.
  • Choose which chat channels apply, pick a chime, set per-rule volume, enable/disable, and reorder rules (first match selected).
  • Access from Global Settings or the tray menu (Custom Chimes..., under Chat Filters).

Fixes

  • Fixed various minor UI issues.
01/29/26
V 1.5.2

Filter Cleanup

Filters now track when they were last used to block a message. This makes it easy to identify and remove outdated filters that are no longer relevant. Good for cleaning up old guild recruitment filters as guilds change their advertisements over time.

  • New "Last Used" column in the Filter Rules editor shows when each filter last blocked a message.
  • New Cleanup menu in the Filter Rules editor with options to find filters not used in the last day, week, or month. Cleanup applies to the currently selected category tab.
  • Review filters before removal with a resizable confirmation dialog showing all candidates.
  • Uncheck any filters you want to keep before confirming deletion.
01/29/26
V 1.5.1

Improvements

  • Player names in chat messages are now displayed in bold for better readability.

Bug Fixes

  • Fixed an issue where removing entries (caused from filters, on first application) caused the Chat Windows to scroll past the end of content.
01/27/26
V 1.5.0

Filter Import/Export

  • Export filter rules and categories to shareable .filterdb files.
  • Import filters with two modes: Merge (add to existing) or Replace (clear and import).
  • Granular category selection during import/export.
  • Duplicate detection with color-coded import summary (green=added, red=deleted, orange=duplicate).
  • Access via File menu in the Filter Rules dialog.

Dark Mode UI Enhancements

  • New fully dark-themed file dialog for import/export operations.
  • Custom dark menu bar and popup menus throughout the application.
  • Dark-themed combo boxes in filter dialogs and file dialogs.

Bug Fixes

  • Fixed an issue where global filter categories and rules could not be created.
01/26/26
V 1.4.2

SQL Migration

  • Configuration storage migrated from INI files to SQL database (settings.db).
  • Filter rules, window configurations, and all settings now stored in a single database file.
  • Existing INI settings are automatically migrated on first launch; old files renamed to .bak.

TLDR: No more working around issues caused by Windows INI libraries.

01/26/26
V 1.4.1

Bug Fixes

  • Fixed an issue where dragging a filter to a category would incorrectly move other filters as well.
  • Fixed an issue where filter rules containing special characters (such as Chinese text) would become corrupted after restarting the application.
01/26/26
V 1.4.0

Filter Categories

  • Organize your filter rules into custom categories using the new tabbed interface.
  • The "Main" category is always available for your primary filters.
  • Each chat window maintains its own set of categories.

Managing Categories

  • Right-click the category tab bar to access the category menu.
  • Choose "Add Category" to create a new category with a custom name.
  • Right-click on any category tab (except Main) to rename or delete it.
  • When deleting a category that contains filters, you can choose to move them to Main or delete them.

Moving Filters Between Categories

  • Drag a filter rule from the list and drop it onto a category tab to move it.
  • The target tab will highlight when you hover over it during the drag.

New Hotkeys

  • Visibility Menu (Ctrl+Shift+]) - Instantly open the window visibility menu at your cursor position.
  • Quick Interact (Alt+P) - Temporarily disable click-through mode for just the window under your cursor. Perfect for quickly adding a filter without disabling click-through for all windows. The window automatically returns to click-through mode when you click away.

All hotkeys are fully customizable in Global Settings.

Improvements

  • Hotkey bindings now show readable key names for special characters instead of hex codes (e.g., "Ctrl+Shift+]" instead of "Ctrl+Shift+0xDD").

Bug Fixes

  • Fixed an issue where orphaned filter data would persist in settings despite deletion.
01/26/26
V 1.3.3
  • Filter rules can now be reordered by dragging them up or down in the list.
  • A visual indicator shows where the rule will be placed when dropped.
  • Fixed some text getting cut off in the Filter Rules dialog.
01/25/26
V 1.3.2
  • Added IPv6 network monitoring support. The application can now capture data on IPv4 or IPv6 flows.
    Note: Global release does not currently use IPv6; this is speculative.
01/24/26
V 1.3.1
  • Smoother window resizing via event coalescing and deferring.
  • Better support for special characters in filter text.
  • Fixed text overlapping when windows are made very small.
01/22/26
V 1.3.0

Chat Filter System: Filter out unwanted messages by text content or player.

  • Right-click any message to quickly add a filter (chat window must not be in click-through mode).
  • Choose to filter by message text or by player UID.
  • Apply filters to all channels or specific channels only (World, Team, Guild, DM, etc.).

Global and Per-Window Filters:

  • Filters can be saved globally (apply to all windows) or per chat window (affect only that specific window).
  • Confirmation prompt asks where to save when adding filters via right-click.

Filter Rule Types:

  • Simple: Basic text matching (case-insensitive by default, optional case-sensitive).
  • Regex: Advanced pattern matching using regular expressions.
  • UID: Filter specific players by their unique character ID.

Filter Rules Dialog: Full-featured editor accessible from tray menu or right-click context menu.

  • Add, edit, delete, and reorder filter rules within the editor.
  • Enable/disable individual rules without deleting them.
  • Add comments to rules for documentation purposes.

General:

  • Messages now display the server's epoch timestamp instead of relying on local capture time.
  • Improved performance when adding new messages (incremental layout changes in chat windows).

Bug Fixes:

  • Fixed issue where the tray visibility menu could get stuck when focus changed without clicking.
01/21/26
V 1.2.3
  • GDI font-renderer was not respecting monospacing request for timestamp rendering with Fira-Sans. Implemented manual monospacing to ensure consistent timestamp spacing.
  • Visibility sub-menu no longer closes automatically, allowing multiple entries to be clicked before closing by clicking outside the dialog.
01/21/26
V 1.2.2
  • Added per-window visibility toggle. Enable custom windows that are shown sometimes and hidden at others (e.g., a Global Chat window disabled during dungeons but enabled for boss hunting).
  • Always pad each section of time up to two digits for consistent log spacing (e.g., 09:00 instead of 9:00).
  • Apply each chat window's background color to the scrollbar for theme consistency.
01/16/26
V 1.2.1
  • Improved marker compatibility with Season II netcode changes.
01/14/26
V 1.2.0
  • Ported remaining flow reassembly from lwip for pcap flow monitoring. Nearing a complete TCP stack implementation.
  • Detect TCP window gaps (missing data) if not captured for a stream, and re-synchronize rather than continuing with out-of-sync flow.
  • Added additional edge cases in duplicate detection.
01/14/26
V 1.1.1
  • Improved corrupt packet detection, discarding, and packet resequencing (TCP out-of-order buffering).
  • In the case of corruption, there will be no "DUP" message anymore, as the DUP is instead treated as the intact original.
  • For reliability additions to work fully, explicitly disable checksum offloading in your Network Card's Properties. Otherwise the checksum field may not be capturable. If checksum is not present (0), a best-effort approach without using checksum will be used instead.
01/12/26
V 1.1.0
  • Added proper TCP fragmentation support.
  • Improved duplicate rejection and filtering.
01/06/26
V 1.0.7
  • Fixed a problem in the state machine that could prevent flow timeout and swapping from occurring. Previously, if the game disconnected (closing the game, swapping characters, etc.), Apothecary Chat could get stuck bound to the old game session.
  • Color-coded tray icon: Red = Disconnected, Green = Connected.
  • Consider any validly framed game packets as game data to prevent timeout and overzealous re-entry of detection state in the absence of chat messages (minimalist processing of non-chat payloads).
  • Added connection state and time since last received data frame to top of log window for clearer connection status.
  • Log window now set to always-on-top z-order.
01/05/26
V 1.0.5
  • Now shows how many player names are saved in the database on startup.
  • Fixed an issue where unexpected network frames could cause the app to freeze or become unresponsive (critical - could cause infinite loop).
  • Fixed a race condition that could cause problems when renaming chat windows during data reception.
  • Improved game flow detection.
  • Added database health checks.
  • Configuration values are now clamped to stay within safe ranges (such as if the settings file is hand-edited).
01/04/26
V 1.0.4
  • Multi-interface packet aggregation: Ability to monitor more than one network interface at a time.
  • Example use case: Playing on a laptop with WiFi and Wired connections, switching between interfaces on the fly by plugging in when at your desk. The game automatically reconnects, and Apothecary Chat can now follow the game traffic between interfaces and continue working.
  • Similarly supports normal NIC and VPN interface selection, etc.
  • Note: Selecting multiple interfaces may increase CPU utilization. Each interface accrues another packet monitoring thread.
01/04/26
V 1.0.3
  • Added -service command-line argument. Launching with -service sets an alternate service name and creates/uses a different database file (e.g., -service SEA).
  • Different game instances may have overlapping UIDs for players. A player on SEA may have the same UID as a player on Global or CN. This poses a problem as the program builds a UID-to-Name database. Mixing game instances on the same database may lead to name errors.
  • Batch file example included (SEA.bat) to launch Apothecary Chat using a separate "SEA" database.
  • Added custom colors and a color picker to Global Settings and Window Settings for enhanced theming.
  • Granularity on the Apply button for all windows. Individual settings can be checked or unchecked before confirming, and only selected settings will be applied.
  • Switched from PlaySound to XAudio for sound playback (specifically for muxing). Allows multiple chimes to play concurrently.
01/03/26
V 1.0.2
  • Rewrote TCP de-duplication logic, session scanning, timeout/disconnect/rescan handling. Aims to stop duplicate messages during poor connection and improve reliability.
  • Fixed a multithreaded race condition (critical - program crash).
01/03/26
V 1.0.1
  • Initial release.
  • Chat overlay widget that permits creating an infinite number of customizable chat panes to be overlayed on top of the game window.
  • Create individual or combined windows that show party messages, guild messages, private messages, etc.
  • Set alert notifications (chimes) on chat message reception with unique notifications for different message types.
  • See DMs (private messages) without opening the friends list, and receive alerts when receiving messages without having someone friended.
  • Two-part UI: System tray icon (right-click menu) and chat windows. When not in click-through mode, a tabbar is displayed for chat windows with a settings tab for customization.
  • SQL-based UID-to-Name mapping with local database persistence stored in %USERPROFILE%\AppData\Local\apothecary_chat\.
  • Click-through mode with hotkey controls. Add windows, position them, configure them, then enable click-through mode.
  • Left SHIFT recovery feature: Hold left SHIFT on application start to re-prompt for the network interface selection.
  • Requires WinPcap or Npcap. For non-admin usage, pcap must be configured for standard user capture.

Download

Latest Version (1.8.10)

File: Apothecary Chat_2026-03-19_200439.7z

Size: 1183 KiB (1,210,840 bytes)

SHA1: f2ace30b318e8017d709cb5f18bc432e19d669ce

Download Now

Installation

Extract the archive anywhere and run apothecary_chat.exe. Data is stored in %USERPROFILE%\AppData\Local\apothecary_chat\.

Dependencies

A packet capture library is required. Install one of the following:

  • Npcap (Recommended)
    Modern packet capture library for Windows. Actively maintained, recommended.
  • WinPcap (Legacy)
    Older packet capture library. No longer actively maintained but still functional. If you already have WinPcap installed (e.g., from a DPS meter), Apothecary Chat will work without additional setup.

Note: If you already use a DPS meter or similar tool, you likely have one of these installed already.

Contact

Issues or suggestions? DM me on Discord.

Credits

Acknowledgments

  • Netcode reference: Star Resonance Damage Counter
  • SQLite
  • Npcap / WinPcap
  • Blue Protocol: Star Resonance
    Bandai Namco Studios Inc.
    Shanghai Bokura Network Technology
    A Plus Japan Inc.

Disclaimer

This tool reads network traffic (similar to DPS meters/parsers). It is read-only, limited to chat messages only, and will never interact with the game beyond that.