uvtt-v2-specification

Universal VTT v2 (UVTT v2) Specification

The open-source, high-performance standard for interconnected TTRPG campaign mapping.

The UVTT v2 specification provides a modern, robust, and extensible framework for TTRPG map data. Designed to replace the legacy 2D-only flat formats (.dd2vtt / .df2vtt), UVTT v2 enables verticality, complex spatial triggers, hardware-accelerated rendering, and multi-file campaign networking.


πŸš€ Why UVTT v2?

Legacy V1 standards were ground-breaking, but they suffer from significant architectural bottlenecks. UVTT v2 solves these by treating maps not as static images, but as nodes within a Topological Spatial Network.

The Problem with v1

The Solution: v2 Architecture


πŸ“‚ Repository Structure

uvtt-v2-workspace/               # Open the parent folder directly in VS Code
β”œβ”€β”€ .github/                     # Automated repository workflows and templates
β”‚   └── workflows/
β”‚       └── validate-uvtt2-ci.yml # GitHub Actions automated CI validation pipeline
β”œβ”€β”€ .git/                        # Hidden directory (created automatically by 'git init')
β”‚   └── hooks/
β”‚       └── pre-commit           # Git Hook: Blocks commits on test/schema failure
β”œβ”€β”€ schemas/                     # Machine-readable standards validation files
β”‚   β”œβ”€β”€ manifest.schema.json     # Standard validation rules for global manifest properties
β”‚   β”œβ”€β”€ geometry.schema.json     # Standard validation rules for vector coordinates and walls
β”‚   └── entities.schema.json     # Standard validation rules for lighting, weather, and triggers
β”œβ”€β”€ reference-parsers/           # Zero-dependency reference parsing files
β”‚   β”œβ”€β”€ go/
β”‚   β”‚   └── uvtt2_parser.go      # Backend reference parser suite (zero-dependency)
β”‚   └── typescript/
β”‚       └── uvtt2_parser.ts      # Client-side parser with Web Crypto decryption and curve math
β”œβ”€β”€ clearinghouse/               # Zero-Knowledge-Storage serverless edge infrastructure
β”‚   β”œβ”€β”€ zks-clearinghouse-worker.js # Cloudflare Worker edge key-derivation script
β”‚   β”œβ”€β”€ wrangler.toml            # Deployment environment & database configurations
β”‚   β”œβ”€β”€ seed_revocations.js      # Utility script to bulk hash and seed revoked transactions
β”‚   └── manage_revocations.js    # Node.js command-line tool to manage revoked transaction IDs
β”œβ”€β”€ tests/                       # Programmatic validation & security checking engines
β”‚   β”œβ”€β”€ master-test-suite.py     # Consolidated master test runner (verifies schemas, geometry, & ZKS handshakes)
β”‚   β”œβ”€β”€ validate_conformance.go   # Go-based high-concurrency binary validation suite
β”‚   └── webgpu-purge-test.ts     # TypeScript unit tests validating WebGPU volatile RAM scrubbing
β”œβ”€β”€ tools/                       # Repository automation and campaign asset creators
β”‚   β”œβ”€β”€ verify-all.sh            # Unified Bash script coordinating all tests & environment audits
β”‚   └── generate-mock-uvtt2z.py  # Dynamic script to generate conforming signed test maps
β”œβ”€β”€ samples/                     # Compliant testing files to feed into validators
β”‚   └── tavern_three_story.uvtt2z # Multi-story sample campaign archive conforming to standard
β”œβ”€β”€ RFCs/                        # Request for Comments proposal directory
β”‚   └── rfc-template.md          # Standard proposal template for community extensions
β”œβ”€β”€ CHANGELOG.md                 # Detailed ledger of version milestones & technical fixes
β”œβ”€β”€ CONTRIBUTING.md              # Open-source developer rules of engagement & standards
└── README.md                    # Landing page, feature matrices, and getting-started guide

πŸ› οΈ Feature Matrix

Feature Legacy v1 UVTT v2
Asset Delivery Base64-in-JSON Zipped Directory (.uvtt2z)
Grid Logic Square Only Square, Hex, Isometric
Verticality Flat Plane 3D Bounds (Bottom/Top Z)
Curves Jagged Line Segments Native SVG BΓ©zier Paths
Visibility Symmetrical Directional (Right-Hand Rule)
Interoperability Disconnected Islands Topological Spatial Network
Weather None Bounded Particle Emitters
Graphics Baseline WebGL 1.0 / Canvas WebGL 2.0 / WebGPU (PixiJS v8 Native)

πŸ“ Governance & Contribution

The UVTT v2 specification is a Living Document. We welcome contributions from VTT engine developers and map-making tool authors.

The RFC Pipeline

To propose a new feature (e.g., new atmospheric shaders, advanced lighting physics), please follow these steps:

  1. Draft an RFC: Create a markdown proposal in the /RFCs directory using the provided template.
  2. Pull Request: Submit your RFC via a Pull Request.
  3. Community Review: We evaluate based on backward compatibility, performance impact, and interoperability.

The Backward-Compatibility Contract

Core featuresβ€”including basic walls, portals, and landing zonesβ€”are immutable. Any new functionality (e.g., advanced WebGPU compute shaders) must be implemented as additive, optional properties within the extensions block to ensure that existing engines remain compliant.


πŸ”— Getting Started