Skip to content

logixism/bloxchat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

112 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BloxChat logo

BloxChat

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)

Quick Start (Just Use the App)

  1. Download the latest installer from Releases.
  2. Install and launch BloxChat.
  3. Complete Roblox verification in-app.
  4. Join a Roblox game and chat.

Release builds on Windows auto-update on startup when a newer MSI is available.

What It Does

  • 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 on Esc.
  • Lets you configure API URL, Roblox logs path, image loading, opacity, and auto-join message.

Platform Support

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

Project Layout

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

Local Development

1. Prerequisites

  • Bun (project is pinned to bun@1.3.8)
  • Node.js 18+
  • Rust toolchain 1.88.0 (see apps/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"

2. Install Dependencies

bun install

3. Configure Environment Variables

Create 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_SECRET must be 32-64 chars.
  • VERIFICATION_SECRET must be 64+ chars.
  • VERIFICATION_PLACE_ID must be a numeric Roblox place ID.
  • CHAT_LIMITS_OVERRIDES expects JSON (for per-channel overrides).

4. Run in Dev Mode

From repo root:

bun run dev

This runs:

  • backend server on http://localhost:3000
  • Tauri desktop app in development mode

5. Point Desktop to Local API

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.

Verification Flow (Important for Self-Hosting)

Login depends on a Roblox verification flow:

  1. Client starts verification and gets a code.
  2. User joins the configured verification place (VERIFICATION_PLACE_ID).
  3. Game-side code calls the backend verification procedure using x-verification-secret.
  4. Client polls for completion and receives JWT session data.

If your game integration does not send the matching verification secret, login will fail.

Useful Commands

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

Troubleshooting

  • App cannot connect: verify Settings -> API Server URL points to the correct backend.
  • Local API fails with HTTPS errors: use http://localhost:3000 (not localhost: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.

Legal