Scorched Earth Presents:

How to edit a .bsp using Ripent

Introduction

I often see server admins asking, how can I edit a Half-Life map I run on my server to do this, or that. It can be done. While you can't change a map's architecture without causing file consistency errors, it's possible to extract it's entities, edit them, reinsert them, and install the hacked map on a server. Players don't have to download or change a thing, and the change exists only on the server that runs the modded map. See the FAQ for more information

The Tools

Zoner's Half-Life Tools(ZHLT) with ripent.exe

any text editor such as Notepad or Wordpad

an .fgd file for the particular mod for which you are editing (i.e. HLDM, TFC, CS, etc.)

The process

Before you do anything, back up your files (that is, the .bsp). If you make a mistake, you can at least revert back to the original and try again.
The first step to editing a map's entities is to extract them from the rest of the map. This is we use ripent.exe for. Unzip Zoner's Half-Life tools and locate ripent.exe. This is a command-line driven program, which can be run from a DOS window, the Windows|run window, or by a Windows shortcut to the .exe.

Ripent needs certain command line parameters to run correctly. These are the filename of the .bsp you want to edit, then either -import or -export. For example, let's say we want to get the entites out of the TFC map hunted, we'd use this command line. Yours may vary, depending on where you have ZHLT and HL installed.

After ripent runs successfully, we have a file called hunted.ent. You'll find it in the same folder as the .bsp. In this case, it's in ...tfc\maps\. This file contains all the entity information for the map. Open it in your text editor.

What is all this stuff!?! Don't worry. I'll teach you how to make sense of the .ent file in a moment. For now, I'll tell you how to use ripent to put the entities back in. Simply save the .ent file, then run ripent again, this time with -import in the place of -export. It will automatically update the map with the new entities.