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].
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].
.uvtt2z): A zipped directory that detaches heavy image assets from lightweight JSON metadata[cite: 4]. This enables streamability, lazy loading, and sub-second directory browsing[cite: 4]..uvtt2k): Built-in AES-256-GCM encryption splits premium campaigns into a public encrypted payload (.uvtt2z) and a private cryptographic key (.uvtt2k) to securely distribute and protect creator content[cite: 4].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]:
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 | 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]
The UVTT v2 specification is a Living Document[cite: 4]. We welcome contributions from VTT engine developers and map-making tool authors[cite: 4].
To propose a new feature (e.g., new atmospheric shaders, advanced lighting physics)[cite: 4]:
/RFCs directory using the provided template[cite: 4].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].