The Sassilization Inline Patcher is a utility application which fixes “bad inline model number #, worldmodel not yet setup” errors in Source engine BSP files. These errors are very common and cause many people to crash on certain maps, regardless of game or gamemode. Valve recently made an attempt to fix them, but the problem remains.
How it works
The cause of bad inline model errors is the presence of static content (decals) on dynamic brush entities (doors, moving platforms, breakable glass panes, rotating parts and so on). This application analyzes the map and tries to find such occurences using a procedural lookup method based on the brush models' faces. This is what the number in the errors represents — the index of the inline model causing problems. If invalid decals are found, they are removed from the entity lump and the new, patched map is saved.
Click a link on the right to download Inline Patcher. “Latest build” will download the latest working version from the Sassilization website, whereas “Latest test build” will download an experimental (but working) version from the author's Dropbox. Note that the latter is not official and may contain bugs. To see what's changed between the versions, check the Changelog section below.
To start Inline Patcher, first extract the archive to a folder and then open inlinepatcher.jar. Alternatively, run inlinepatcher.bat if you're on a Windows machine, or inlinepatcher.sh if you're on Mac OS X or Linux.
Path / progress bar
Displays the path of the input BSP file on the file system. Pasting a valid path into this field and then pressing Enter or clicking “Browse” will open the file chooser at that location according to rules outlined in the Browse section below.
Once the patching process is started, this turns into a progress bar which shows how many brush–decal pairs have been analyzed and processed, in percentage. The percentage is calculated as follows:
where D is the set of decals; B the set of brushes; and i and j the indices of the decal and brush currently being parsed, respectively.
Opens the input file chooser used to select the BSP file which will be patched. If you have Source SDK installed, the chooser will be opened displaying your Steam user directory (Steam/steamapps/username); otherwise, it will default to the directory where the application's JAR is located. If the path text field is not empty, its contents will be evaluated as a file path and the chooser will be opened at the associated location. This button is disabled during the patching process.
Turn OrigFace mode on/off
Toggling this on will make the patcher use data from the original face lump (27) rather than the face lump (7). This means that the lookup volumes used for procedurally finding decals will be generated from an array of brush faces before they were split by VBSP. Non-split faces are closer in shape to the faces from the original VMF, and there's fewer of them. Depending on the map being patched, this may or may not positively affect the speed and quality of the patch.
Open help page
This takes you to the very page you're reading.
Edit dynamic brush list
Opens the dynamic brush list edit dialog, which allows you to change which brush entities the patcher will use to look for decals. When the patcher goes through the entity lump and finds a brush whose classname is in the list, it constructs lookup volumes around its faces, within which it searches for decals. The list starts out with about 40 default entries (mostly func_ brushes), but you can add and remove entries as you please. Custom entries are highlighted with a pale yellow color. Pressing and holding Alt will display a pair of buttons which you can use to import/export brush lists from/to external text files.
Logs output from the patcher (prefixed with “[info]”) in an easily scrollable text area. You can either use the arrow buttons on the side or your mouse wheel to scroll. The diskette button copies the contents of the log, if non-empty, to your clipboard. Caught exceptions (prefixed with “[error]”) are displayed as well, but only from the patcher; exceptions from GUI components (if any) are displayed in pop-up dialog boxes instead.
Once an input BSP file has been chosen, this opens the output file chooser which allows you to pick a file to which the patched map will be saved. The chooser starts in the input directory, with an automatically generated filename (input_map_name_ip.bsp), which you can change if you wish. After the output destination has been selected, the patcher itself will start. This button is disabled during the patching process.