evo-civ6-map-parser

SkillDatabases & data

Parses .Civ6Map SQLite database files to extract map dimensions, terrain, features, resources, and river edge data. Provides hex coordinate utilities for odd-r pointy-top hex grid.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the evo-civ6-map-parser skill

What this skill tells your AI

The instructions your AI receives, as published by openlair/openskill in tasks-evolved/civ6-adjacency-optimizer/environment/skills/evo-civ6-map-parser/SKILL.md and read by ahel’s review.

Parses Civilization VI .Civ6Map files (SQLite databases) and provides hex grid utilities.

Usage

import sys
sys.path.insert(0, '/app/environment/skills/evo-civ6-map-parser/scripts')
from utils import parse_civ6map, get_hex_neighbors, hex_distance, is_land_tile, is_mountain, is_tile_river_adjacent, get_land_tiles

map_data = parse_civ6map('/path/to/map.Civ6Map')
neighbors = get_hex_neighbors(5, 3)
dist = hex_distance(0, 0, 3, 3)

Key Functions

  • parse_civ6map(db_path) - Returns dict with width, height, tiles, rivers
  • offset_to_cube(col, row) - Odd-R offset to cube coords
  • cube_to_offset(q, r, s) - Cube to odd-R offset coords
  • get_hex_neighbors(x, y) - Get 6 neighboring tile coordinates
  • hex_distance(x1, y1, x2, y2) - Hex distance between tiles
  • is_tile_river_adjacent(map_data, x, y) - Check if tile touches a river
  • is_land_tile(map_data, x, y) - Check if tile is land
  • is_mountain(map_data, x, y) - Check if tile is a mountain
  • get_land_tiles(map_data) - Get all land tile coordinates

Signals

GitHub stars
89
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
evo-civ6-map-parser
Source
github.com/openlair/openskill