You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
HikeMap User 53812cbc6c Fix fog inversion at high zoom + adjust building animation to 100-150% 2 months ago
.claude Fix: Complete resolution of JavaScript syntax errors 3 months ago
.well-known Add PWA and push notification support for mobile app deployment 3 months ago
build-tools Fix tap-to-navigate on Chrome mobile and PWA 3 months ago
docs Add RPG combat system with multi-monster battles and server persistence 3 months ago
mapgameimgs Add stats sync engine, grocery geocaches, and cart wranglin' prefix 3 months ago
mapgamemusic Add inactivity logout system and combat SFX 3 months ago
output Add APK to repository for easy distribution 3 months ago
sfx Add fog of war system and monster spawn sound 2 months ago
.gitignore Add APK to repository for easy distribution 3 months ago
APK-INSTRUCTIONS.md Fix tap-to-navigate on Chrome mobile and PWA 3 months ago
BUILD_APK_INSTRUCTIONS.md Add PWA and push notification support for mobile app deployment 3 months ago
CLAUDE.md Fix class skill names, add targeting modes, music autostart, WASD auto-enable 3 months ago
Dockerfile Add stats sync engine, grocery geocaches, and cart wranglin' prefix 3 months ago
FIX_ATTEMPTS.md Fix: Complete resolution of JavaScript syntax errors 3 months ago
README.md Add documentation and fix data persistence race condition 3 months ago
SKILLS.md Add documentation and fix data persistence race condition 3 months ago
admin.html Add utility skill effects for fog of war modification 2 months ago
animations.js Add fog of war system and monster spawn sound 2 months ago
artwork_todo.md Add inactivity logout system and combat SFX 3 months ago
database.js Add custom skill icon system with admin upload UI 2 months ago
default.kml Force popups to render above everything with maximum z-index 3 months ago
docker-compose.yml Add MapLibre GL JS test page for custom map styling 2 months ago
geocaches.json Add 150 POI geocaches and fix dropdown styling 3 months ago
google-chrome-stable_current_amd64.deb Fix: Complete resolution of JavaScript syntax errors 3 months ago
icon-72x72.png Add PWA and push notification support for mobile app deployment 3 months ago
icon-96x96.png Add PWA and push notification support for mobile app deployment 3 months ago
icon-128x128.png Add PWA and push notification support for mobile app deployment 3 months ago
icon-144x144.png Add PWA and push notification support for mobile app deployment 3 months ago
icon-152x152.png Add PWA and push notification support for mobile app deployment 3 months ago
icon-192x192.png Add PWA and push notification support for mobile app deployment 3 months ago
icon-384x384.png Add PWA and push notification support for mobile app deployment 3 months ago
icon-512x512.png Add PWA and push notification support for mobile app deployment 3 months ago
index.html Fix fog inversion at high zoom + adjust building animation to 100-150% 2 months ago
manifest.json Add PWA and push notification support for mobile app deployment 3 months ago
maplibre-test.html Add MapLibre GL JS test page for custom map styling 2 months ago
package-lock.json Fix class skill names, add targeting modes, music autostart, WASD auto-enable 3 months ago
package.json Add custom skill icon system with admin upload UI 2 months ago
server.js Add custom skill icon system with admin upload UI 2 months ago
service-worker.js Add stats sync engine, grocery geocaches, and cart wranglin' prefix 3 months ago
to_do.md Add inactivity logout system and combat SFX 3 months ago

README.md

HikeMap - Location-Based RPG

A location-based RPG web application where you walk in the real world to explore trails, battle monsters, and level up your character. Also includes GPS track editing tools for trail mapping.

Features

RPG System

Character Creation

  • Choose from 4 races: Human, Elf, Dwarf, Halfling
  • Select your class (Trail Runner with running-themed skills)
  • Set your home base for respawning and skill management

Combat

  • Turn-based battles against MOOP (Matter Out Of Place) monsters
  • Skill-based combat with damage, healing, buffs, and multi-hit attacks
  • Hit/miss mechanics based on accuracy and dodge stats
  • XP rewards and leveling system

Skills & Progression

  • Unlock new skills at levels 2, 3, 4, 5, 6, and 7
  • Choose between two skills at each milestone (both unlock, one activates)
  • Swap your active skill loadout at your home base
  • Class-specific skill names (e.g., "Gel Pack" instead of "Heal")

Home Base

  • Set anywhere on the map as your respawn point
  • 3x HP regeneration when within 20 meters
  • Required destination when defeated
  • Skill loadout management location

Track Editing

  • Draw new GPS tracks directly on the map
  • Reshape existing tracks with rope physics simulation
  • Smooth tracks with a brush tool
  • Smart track snapping at endpoints with auto-splitting
  • Multi-track selection and merge operations
  • 20-step undo/redo history
  • Import/export KML files

Navigation Mode

  • Graph-based pathfinding using Dijkstra's algorithm
  • Automatic trail intersection detection
  • Real-time route recalculation when deviating from path
  • Map rotation to face direction of travel
  • Auto-center on GPS position

Quick Start

docker-compose up -d

Access at http://localhost:880

Local Development

npm install
node server.js

Access at http://localhost:8080

Game Mechanics

Stats

Stat Description
HP Health - reach 0 and you're defeated
MP Mana - used for skills, regenerates while walking
ATK Attack power
DEF Reduces damage taken
Accuracy Affects hit chance
Dodge Chance to evade attacks

Trail Runner Skills

Level Skill Choice A Skill Choice B
1 Kick-ems! (basic) -
2 Brand New Hokas (2x hit) Gel Pack (heal)
3 Downhill Sprint (power) Pace Yourself (defense)
4 Trail Blaze (AoE) Quick Feet (accurate)
5 Second Wind (MP buff) Trail Mix (quick heal)
6 Finish Line Sprint (3x hit) Zone In (accuracy buff)
7 Ultra Marathon (full heal) The Bonk (devastating)

See SKILLS.md for complete skill details.

Monsters

Monster Level Range Description
Sub Par Moop 1 Tutorial enemy
Moop 1-5 Standard enemy
Fancy Moop 1-5 Higher attack
Fanciest Moop 3-5 Stronger variant

MOOP = Matter Out Of Place (litter-themed enemies encouraging trail cleanup)

Technical Details

Architecture

  • Frontend: Single-page app in index.html
  • Backend: Node.js/Express server in server.js
  • Database: SQLite via better-sqlite3 in database.js
  • Real-time: WebSocket for live updates

Dependencies

  • Leaflet.js 1.9.4 (maps)
  • leaflet-rotate 0.2.8 (navigation rotation)
  • Express (API server)
  • better-sqlite3 (database)
  • jsonwebtoken (authentication)
  • ws (WebSocket)

Data Storage

  • User accounts with JWT authentication
  • Server-authoritative game state
  • LocalStorage as offline backup only

Browser Requirements

  • Modern browser with ES6 support
  • HTTPS or localhost for GPS features
  • Location services permission

Documentation

License

[Add your license information here]