momentum-mod / lumper

BSP lump editor and review tool
MIT License
23 stars 15 forks source link

Momentum Mod

Momentum Mod is a standalone game built on the Source Engine, aiming to centralize movement gametypes found in CS:S, CS:GO, and TF2.

Lumper Logo Lumper

Lumper is a program for viewing and manipulating the various "lumps" that constitute Source Engine map files (BSPs).

It is not a map authoring tool like Hammer, which operates on map source files (VMFs) that are then compiled to BSPs. Lumper is intended for small, destructive tweaks to existing maps. It's most similar to VIDE, which is unfortunately closed-source, inactive, and doesn't support more recent BSP versions.

Features

Entity Editor

View and edit the contents of the entity lump à la EntSpy/VIDE. Includes a "Raw Entities" view for editing the entire lump as plaintext.

Entity Editor

Pakfile Editor

View and edit the contents of the pakfile lump with a built-in file tree, text editor, and VTF viewer. It supports importing files/directories, exporting to the filesystem, and can automatically update references to paths in other lumps when items are moved.

Pakfile Explorer

Texture Browser

Displays every VTF file packed into the pakfile, like Hammer's texture UI.

Texture Browser

Jobs

Jobs are a way of automating repetitive tasks, particularly for Momentum map porting. Multiple jobs can be ordered sequentially, and export/imported as JSON "workflow" files. The current jobs we support are:

Jobs

Compressed Exporting

Lumper can load and save LZMA compressed BSPs, including the pakfile, producing the same result as bspzip.

JSON Diffs

Lumper can serialize the contents of the BSP to JSON files, helpful for analysing a BSP in a human-readable format and diffing BSP versions in Git.

Download

See the Releases tab on the right! This program is very new, and we don't currently have any kind of auto-updater, so worth checking back here for updates regularly.

Momentum

Lumper is developed by the Momentum Mod team and contributors. We frequently need to adjust BSPs slightly when porting for official map submission. Out of respect for mappers we avoid modifying the original BSP as much as we possibly can. Manipulating existing BSPs is much less intrusive than decompiling, adjusting, then recompiling. Lumper lets us:

Technical Details

Lumper is written in C#, targeting .NET. It's divided into three subprojects:

See our wiki for more info!

Contributing

We are happy to accept contributions! Whilst we prioritize Momentum-related use-cases ourselves, we hope this tool is helpful to anyone using Source 1, and we welcome contributions and bug reports from people not involved with Momentum.

Besides this repo the best way to contact us is on the Momentum Mod Discord server, ideally in the #tooling channel.