Skip to content

Repository files navigation

VibeyMapTools Banner

VibeyMapTools (VMT)

Modern BSP compilation tools for Quake engine mapping

Formerly ericw-tools, now with extra sparkle ✨🎧🛠️

Build Status Release License

Download | Documentation | Wiki | Changelog


🧰 Tools (aka the toolbox)

vmt-bsp Compile .map to .bsp
vmt-vis Calculate PVS visibility
vmt-light Calculate lightmaps with Embree CPU ray tracing
vmt-bspinfo BSP information utility
vmt-bsputil BSP manipulation utility
vmt-maputil Lua scripting for .map workflows
vmt-hub Map build hub (Qt)

🔁 Coming from ericw-tools? Here is the glow-up 💡🧥✨

Same bones, new polish. If you used qbsp/vis/light before, your muscle memory still works. Flags and map formats are familiar. VMT adds modern build + packaging and a pile of shiny upgrades. 🧃🛠️

Rename cheat sheet (old -> new):

ericw-tools VibeyMapTools
qbsp vmt-bsp
vis vmt-vis
light vmt-light
bspinfo vmt-bspinfo
bsputil vmt-bsputil
maputil vmt-maputil
hub vmt-hub

What stayed the same (cozy mode):

  • Classic compile flow: bsp -> vis -> light
  • Quake II + Remaster support is still here (-q2bsp, -lightgrid, -world_units_per_luxel) 🧠🎮
  • CLI flag vocabulary, map formats, and output expectations
  • Upstream docs still apply: ericw-tools docs 📚

What is new & shiny (and yes it is a lot):

  • vmt- prefix on every binary so ericw-tools can live side-by-side 🧹✨
  • Semantic versioning + tag-driven releases with CI-built packages 📦🚀
  • Build metadata + version.hh for scripting and diagnostics 🧾🛠️
  • Improved Half-Life support (updated behavior + smoother compatibility) 🎮✨
  • Numerous bug fixes and improvements across the toolchain 🧰🐛

🚀 Quick Start

# Standard compilation (classic flow ✨)
vmt-bsp mymap.map
vmt-vis mymap.bsp
vmt-light mymap.bsp

# High-quality lighting with extra samples and bounces 🔥
vmt-light -extra4 -bounce 2 mymap.bsp

🌟 Key Features

  • 🧠 Fast CPU ray tracing via Embree
  • 🌈 HDR lightmaps (-hdr) for engines that support it
  • 📜 Opt-in, path-sanitized lighting manifests (-embedsettings) for reproducible relights
  • 🌤️ Stock GoldSrc light_environment and light_spot compatibility in Half-Life BSPs
  • 🗂️ Safe loose/PAK texture discovery with both traditional textures/ and prefix-free layouts
  • 🖥️ A Qt-powered map build and preview workflow in vmt-hub

📦 Downloads

Platform Package
Windows vibeymaptools-windows-*.zip
Linux vibeymaptools-linux-*.tar.gz
macOS vibeymaptools-macos-*.tar.gz

Latest Release

🧪 Building from Source

git clone --recursive https://github.com/themuffinator/VibeyMapTools.git
cd VibeyMapTools && cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

macOS 10.15+ prep: brew install cmake embree tbb qt@6 (Qt6 only needed for vmt-hub)

Requirements
  • CMake 3.16+
  • C++20 compiler (Visual Studio 2019 16.11+, GCC 10+, or Clang 12+ with a C++20 standard library)
  • macOS 10.15+ (Catalina) recommended for Apple builds
  • Embree 4.x + oneTBB (required for vmt-light)

Optional extras:

  • Qt6 (for vmt-hub)

See BUILDING.md for detailed instructions.

📚 Documentation

Document Description
BUILDING.md Build instructions, versioning, CI/CD
CHANGELOG.md Version history and release notes
WIKI.md Documentation hub and quick reference
docs/ Full tutorials and reference

🧾 License

GPL v3 - See COPYING

🙌 Third-party attribution

The BSP JSON texture exporter includes an adapted Base64 encoder by tomykaira, used under the MIT License; its copyright and permission notice are retained in the source.

The reproducible build and test stack uses pinned, MIT-compatible submodules: {fmt}, JsonCpp, nanobench, and pareto. Their tested revisions are recorded as Git links so a recursive clone receives the same dependency set. 🔗

Based on ericw-tools by Eric Wasylishen;
selected compiler ideas are informed by Xonotic NetRadiant's q3map2.

About

UNDER DEVELOPMENT! Level build tools for idTech2 games

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages