Skip to content
/ hexal Public

D&D Hex Crawl Campaign Manager - Desktop app with visual hex grid editor, procedural generation, time/weather tracking, and tabletop-style figurine markers. Built with Electron + React + TypeScript.

License

Notifications You must be signed in to change notification settings

ringo380/hexal

Hexal

License: MIT Version

A desktop application for managing D&D hex crawl campaigns, built with Electron, React, and TypeScript.

Features

  • Hex Grid Editor: Visual hex grid with customizable terrain types and LOD (Level of Detail) zoom system
  • Campaign Management: Create, save, load, and export campaigns
  • Content Tracking: Track locations, encounters, NPCs, treasures, and clues per hex
  • Discovery Status: Mark hexes as undiscovered, discovered, or cleared
  • Time & Weather: In-game calendar with weather simulation
  • Procedural Generation: Random terrain and encounter generation
  • Multi-Window Support: Open multiple campaigns simultaneously
  • Autosave: Automatic saving with 2-second debounce
  • Undo/Redo: Full history support for all edits
  • Tabletop Markers: Place figurine-style markers for settlements, landmarks, players, and more
  • Map Export: Export maps to PNG, JPEG, or PDF with print-ready and player handout presets
  • Export Options: Export campaign data to JSON or Markdown formats

Installation

Download the latest release from the Releases page.

macOS

  • Download the .dmg file
  • Open and drag Hexal to Applications
  • Available for both Intel (x64) and Apple Silicon (arm64)

Development

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

# Build macOS only
npm run build:mac

Tech Stack

  • Frontend: React 18, TypeScript
  • Desktop: Electron 35
  • Build: Vite, electron-builder
  • State Management: React Context + useReducer
  • Rendering: HTML5 Canvas

Project Structure

hexal-electron/
├── electron/           # Electron main process
│   ├── main.ts        # Main process entry point
│   └── preload.ts     # Preload script for IPC
├── src/
│   ├── components/    # React components
│   ├── stores/        # State management contexts
│   ├── services/      # Utility services (hex geometry, time, weather)
│   ├── styles/        # CSS styles
│   ├── types/         # TypeScript type definitions
│   └── data/          # Static data (calendars, weather effects)
├── index.html
├── package.json
├── tsconfig.json
└── vite.config.ts

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

D&D Hex Crawl Campaign Manager - Desktop app with visual hex grid editor, procedural generation, time/weather tracking, and tabletop-style figurine markers. Built with Electron + React + TypeScript.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published