Skip to content

Unity level design plugin that adds support for Quake .MAP / Half-Life .RMF / Source .VMF, Q1 HL1 .WAD textures, and .FGD export.

License

Notifications You must be signed in to change notification settings

radiatoryang/scopa

Repository files navigation

Scopa

Scopa ("broom" in Latin) is a Unity level design plugin that adds supports for various Quake / Half-Life / Source file formats. Like Qodot but for Unity. To build levels, we strongly recommend TrenchBroom and the Quake 1 .MAP file format.

WARNING: in unstable early development, not ready for production use yet, might change a lot or break

  • MAP, RMF, VMF, JMF import generates model prefab with meshes, colliders, entities. (note: only core Q1 MAP features)
  • WAD import / WAD export (Quake 1 WAD2 / Half-Life WAD3 textures format, not Doom)
  • FGD creator can export entity definitions out to TrenchBroom
  • works at editor time or runtime (for modding support)

Trenchbroom to Unity

Installation

This is a Unity Package for Unity 2020.1 or later. To install, open Package Manager and add https://github.com/radiatoryang/scopa.git (more info and help) (TIP: You'll probably need to install Git first.) There's zero dependencies, but if you have Burst installed then map imports will be significantly faster.

Usage

Map import inspector

Put a supported file (MAP, RMF, VMF, JMF, WAD) in your /Assets/ folder and it'll import automatically, just like any other asset file. Defaults are tuned to typical Quake / Half-Life level design metrics, 32 map units = 1 Unity meter.

Do your edits in the level editor, not in Unity! Any in-editor changes may be erased when you re-import the .MAP again. Treat the .MAP file as the single source of truth.

For more info (i.e. runtime import for modding), see the full Documentation.

Limitations

This package doesn't have game code. It just imports and exports files. You still have to make the game yourself.

We treat the Quake 1 Trenchbroom .MAP v220 file format as the core feature set. Anything beyond these core features (brushes and entity keyvalue pairs) is not supported. For more info, see the Map Importer docs.

Contributions

  • Issues currently ARE NOT ACCEPTED at this time. Development is still very early.
  • Pull Requests ARE ACCEPTED if you know what you're doing / it can be merged easily / it's not a major feature that I'll have to maintain.

Acknowledgments / Credits

Advice