Back to projects

BeePEE

Used by real people

A desktop editor for making custom Portal 2 Puzzle Maker items (via BEEmod). One button turns level geometry into a real game model.

BeePEE is an Electron + React app for making BEEmod packages, which are mods that add new items to Portal 2's Puzzle Maker. It's a full rewrite of the older BPE editor, merged with BeePKG's features, at about 50k lines and on v1.1.

The model pipeline

The hardest part was the custom model pipeline. One "Make Model" button takes a level instance (VMF) and turns it into a real game model, chaining Python and Valve's own compiler:

  • merges the instances and converts them to OBJ
  • optionally cartoonifies the textures with OpenCV
  • converts the textures to Valve's VTF format
  • writes a QC file and compiles an MDL with Valve's studiomdl
  • builds a matching 3DS collision model

All of that gets staged and only lands in the package when you hit save.

Everything an item needs, in one place

You can set up everything an item needs from one UI: info, inputs/outputs, VMF instances, right-click variables, and VBSP conditions. The conditions use a drag-and-drop block editor that compiles down to Valve's config format, so nobody has to write it by hand.

There's also an autopacker that scans an instance for custom assets (models, materials and their dependencies) and bundles them into the package automatically, plus a signage designer with SVG import and automatic glow masks.

Shipping it

It ships as a Windows installer and a Linux AppImage, with auto-updates, a beta channel and built-in crash reporting. Crash reports and bug reports go straight to BeeBOT, which triages them.