Skip to main content

Apr 26, 2026

The Perforce Sledgehammer: Surviving a Blueprint Purge

Why you never edit Blueprints offline, the death of VaRest, and deploying the init_unreal.py Sentry.

TL;DR: If your workspace isn’t connected to revision control, your work doesn’t exist. Today we purged the last of our illegal client-side API nodes.

We had a stark reminder today of why Perforce is the ultimate authority. While offline, some UI edits were made to our BP_Phone and Main Menu. Because we had just transitioned our backend to the headless C++ EchoProtocolAPI, the UI Blueprints completely shattered when compiling. They were full of legacy VaRest plugin nodes trying to make illegal, client-side HTTP POST requests with hardcoded API keys.

Because Blueprints are serialized binaries, you cannot use an AI or a Python script to blindly merge or delete nodes. You have to go in manually, revert the file to the Perforce baseline, check it out, and visually sever the dead nodes. We successfully purged the VaRest garbage and wired the UI to our new, secure C++ subsystems.

To ensure this never happens again, we deployed the final lock on the vault: an init_unreal.py Sentry. It hooks directly into the Editor’s save delegates. If a designer tries to save an asset with absolute local roots (like C:/), or creates a monolithic Blueprint with >150 nodes, the engine itself will now reject the save.