BloxChat is a desktop chat companion for Roblox games.
It includes:
- a Tauri desktop app (
apps/desktop) - a Bun + tRPC backend (
apps/server+packages/api)
- Download the latest installer from Releases.
- Install and launch BloxChat.
- Complete Roblox verification in-app.
- Join a Roblox game and chat.
Release builds on Windows auto-update on startup when a newer MSI is available.
- Verifies your Roblox account and keeps a short-lived session.
- Routes chat by Roblox
JobId(from Roblox logs), so each server is its own channel. - Supports reply threading and local command
/clear. - Can auto-focus on
/and return focus to Roblox onEsc. - Lets you configure API URL, Roblox logs path, image loading, opacity, and auto-join message.
The desktop client is still fully supported on Windows.
Linux groundwork is now in place for Roblox log detection:
- platform-aware default Roblox log paths
- Sober Linux defaults for Roblox log detection
- cross-platform log watching / Job ID parsing
apps/
desktop/ React + Vite + Tauri desktop app
server/ Bun server process that hosts the tRPC API
packages/
api/ Shared tRPC routers, auth/chat logic, env config
scripts/
bump-desktop-version.mjs
- Bun (project is pinned to
bun@1.3.8) - Node.js 18+
- Rust toolchain
1.88.0(seeapps/desktop/src-tauri/rust-toolchain.toml)
Windows:
- Windows 10/11
- Tauri Windows prerequisites (MSVC build tools + WebView2 runtime)
Fedora Linux:
- Tauri Linux system dependencies:
sudo dnf install webkit2gtk4.1-devel \
openssl-devel \
curl \
wget \
file \
libappindicator-gtk3-devel \
librsvg2-devel \
libxdo-devel
sudo dnf group install "c-development"bun installCreate apps/server/.env:
# required
JWT_SECRET=replace_with_32_to_64_char_secret
VERIFICATION_SECRET=replace_with_at_least_64_char_secret
VERIFICATION_PLACE_ID=123456789
# optional
ROBLOX_COOKIE=
CHAT_DEFAULT_MAX_MESSAGE_LENGTH=280
CHAT_DEFAULT_RATE_LIMIT_COUNT=4
CHAT_DEFAULT_RATE_LIMIT_WINDOW_MS=5000
CHAT_LIMITS_OVERRIDES=Notes:
JWT_SECRETmust be 32-64 chars.VERIFICATION_SECRETmust be 64+ chars.VERIFICATION_PLACE_IDmust be a numeric Roblox place ID.CHAT_LIMITS_OVERRIDESexpects JSON (for per-channel overrides).
From repo root:
bun run devThis runs:
- backend server on
http://localhost:3000 - Tauri desktop app in development mode
By default, the desktop app uses https://bloxchat.logix.lol.
For local backend testing, open Settings in the app and set:
API Server URL -> http://localhost:3000
Include http:// explicitly for local non-TLS development.
Login depends on a Roblox verification flow:
- Client starts verification and gets a code.
- User joins the configured verification place (
VERIFICATION_PLACE_ID). - Game-side code calls the backend verification procedure using
x-verification-secret. - Client polls for completion and receives JWT session data.
If your game integration does not send the matching verification secret, login will fail.
bun run dev # server dev + tauri desktop dev
bun run start # run backend server once
bun run build # turbo build
bun run desktop:build # build desktop bundles via tauri
bun run check-types # workspace type checks
bun run format # format ts/tsx/md- App cannot connect: verify Settings -> API Server URL points to the correct backend.
- Local API fails with HTTPS errors: use
http://localhost:3000(notlocalhost:3000). - Verification expires: restart verification and complete it before timeout.
- No channel switching: verify Roblox logs path in Settings points to your Roblox logs folder.