Archipelago.gg Chat Client

A web-based chat client for connecting to Archipelago.gg servers. This application allows you to view and send chat messages to connected Archipelago servers.

Features

  • Connect to Archipelago.gg servers via WebSocket
  • Real-time chat message viewing
  • Send chat messages to the server
  • Connection status monitoring
  • Clean, responsive UI

Project Structure

├── backend/
│   └── index.ts             # Main Hono server with WebSocket proxy
├── frontend/
│   ├── components/
│   │   ├── App.tsx          # Main application component
│   │   ├── ChatWindow.tsx   # Chat message display
│   │   ├── MessageInput.tsx # Message input component
│   │   └── ConnectionForm.tsx # Server connection form
│   ├── index.html           # Main HTML template
│   ├── index.tsx            # Frontend entry point
│   └── style.css            # Custom styles
├── shared/
│   └── types.ts             # Shared TypeScript types
└── README.md

Usage

  1. Open the application
  2. Enter your Archipelago server details (host, port, slot name, password if required)
  3. Click "Connect" to establish connection
  4. View incoming chat messages in real-time
  5. Send messages using the input field at the bottom

Technical Details

  • Backend: Hono.js with WebSocket support
  • Frontend: React with TypeScript
  • Styling: TailwindCSS
  • Real-time communication: WebSocket connection to Archipelago servers

API Endpoints

  • GET / - Main application interface
  • GET /ws - WebSocket endpoint for real-time communication
  • GET /health - Health check endpoint
  • GET /frontend/* - Static frontend assets
  • GET /shared/* - Shared TypeScript types

Archipelago Protocol Support

The client supports the following Archipelago protocol commands:

  • Connect - Initial connection to server
  • Connected - Connection confirmation
  • ConnectionRefused - Connection rejection handling
  • Say - Send chat messages
  • PrintJSON - Receive formatted messages (chat, items, locations)
  • RoomInfo - Room information updates
  • RoomUpdate - Real-time room updates

Message Types

  • Chat: Regular player messages
  • System: Server notifications and status updates
  • Item: Item-related notifications with special highlighting
  • Location: Location-related notifications with special highlighting