uvtt-v2-specification

Universal VTT v2 (UVTT v2) Specification

The open-source, high-performance standard for interconnected TTRPG campaign mapping.[cite: 4]

The UVTT v2 specification provides a modern, robust, and extensible framework for TTRPG map data[cite: 4]. 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[cite: 4].


πŸš€ Why UVTT v2?

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

The Problem with v1

The Solution: v2 Architecture


πŸ’» The Upgrader Application (Web & Desktop Pro)

Included in this ecosystem is the UVTT v2 Upgrader, a hardware-accelerated WebGPU/PixiJS authoring tool that imports legacy maps and upgrades them to the v2 standard[cite: 4]. It operates on a unified Svelte 5 codebase across two tiers[cite: 4]:

  1. The Web SPA (Free): An offline-first, browser-based app featuring genuine CAD tools, Rubber-Sheet grid alignment, and a 50-step deep-cloned History Engine[cite: 4].
  2. Desktop Pro (Paid): A native OS executable built with Wails/Go unlocking FFmpeg cinematic video rendering, a Topology Validation queue, and live-syncing local asset folders[cite: 4].

πŸ“‚ Repository Structure

uvtt-v2-workspace/               # Open the parent folder directly in VS Code
β”œβ”€β”€ .github/                     # Automated repository workflows and CI validation
β”œβ”€β”€ docs/                        # πŸ“š Official Documentation Suite
β”‚   β”œβ”€β”€ UNIVERSAL_VTT_V2_SPEC.md # The core mathematical and structural schema
β”‚   β”œβ”€β”€ developer-quickstart.md  # 5-step implementation guide for VTT devs
β”‚   β”œβ”€β”€ storefront-api-blueprint.md # Distribution architecture for premium content
β”‚   β”œβ”€β”€ RE-SIGNING-API.md        # Dynamic watermark injection for anti-piracy
β”‚   └── Universal_Visibility.md  # Specs for secret doors and event targeting
β”œβ”€β”€ schemas/                     # Machine-readable standards validation files
β”‚   β”œβ”€β”€ manifest.schema.json     # Validation rules for global manifest properties
β”‚   β”œβ”€β”€ geometry.schema.json     # Validation rules for vector coordinates and walls
β”‚   └── assets.schema.json       # Validation rules for media assets and paths
β”œβ”€β”€ reference-parsers/           # Zero-dependency reference parsing files
β”‚   β”œβ”€β”€ go/uvtt2_parser.go       # Backend reference parser suite
β”‚   └── typescript/uvtt2_parser.ts # Client-side parser with Web Crypto decryption
β”œβ”€β”€ tests/                       # Programmatic validation & security checking engines
β”œβ”€β”€ tools/                       # Repository automation and campaign asset creators
β”œβ”€β”€ samples/                     # Compliant testing files to feed into validators
β”‚   β”œβ”€β”€ tavern_three_story.uvtt2z # Multi-story sample campaign archive
β”‚   β”œβ”€β”€ sample-manifest.json     # Unpacked sample of a valid manifest
β”‚   β”œβ”€β”€ sample-geometry.json     # Unpacked sample of valid CAD vectors
β”‚   β”œβ”€β”€ sample-entities.json     # Unpacked sample of valid interactive points
β”‚   └── sample-assets.json       # Unpacked sample of valid asset metadata
β”œβ”€β”€ RFCs/                        # Request for Comments proposal directory
β”œβ”€β”€ CHANGELOG.md                 # Ledger of version milestones & technical fixes
β”œβ”€β”€ CONTRIBUTING.md              # Open-source developer rules of engagement
β”œβ”€β”€ SECURITY.md                  # Threat models and vulnerability reporting
└── README.md                    # Landing page, feature matrices, and start guide

[cite: 4]


πŸ› οΈ Feature Matrix

Feature Legacy v1 UVTT v2
Asset Delivery Base64-in-JSON Zipped Directory (.uvtt2z)
Content Security None AES-256-GCM Dual-File Encryption
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
Topology Keying N/A (Single Map) Strict Map ID Keying
Weather None Bounded Particle Emitters
Graphics Baseline WebGL 1.0 / Canvas WebGL 2.0 / WebGPU (PixiJS v8 Native)

[cite: 4]


πŸ“ Governance & Contribution

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

The RFC Pipeline

To propose a new feature (e.g., new atmospheric shaders, advanced lighting physics)[cite: 4]:

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

The Backward-Compatibility Contract

Core featuresβ€”including basic walls, portals, and landing zonesβ€”are immutable[cite: 4]. Any new functionality must be implemented as additive, optional properties within the extensions block to ensure existing engines remain compliant[cite: 4].


πŸ”— Getting Started