HPL2/AMFP
Contents
Amnesia: A Machine For Pigs
Amnesia: A Machine for Pigs was developed by The Chinese Room, and as such has no official documentation. However, since it works like a Full Conversion mod for TDD (but redistributed with an altered .exe and shaders), it has been reverse-engineered by the community. Being technically almost identical to TDD, MFP only requires documenting the changes between it and its predecessor. This page lists the documentation of all found changes. Due to these reasons, most of the documents written for TDD still applies.
Documentation
Developer environment
The dev set-up is the same as in TDD. You can read the tutorial here.
However, there are some missing features. F1 still brings up the debug menu, but it doesn't contain some of the previously present features. Unfortunately, the game can't be sped up with F3 and the map can't be reloaded with F2 anymore. F8 still takes screenshots, though.
More information about the debug toolbar can be found here.
Script Functions
MFP uses a majority of TDD functions. There are some new ones, however. Some of the old ones are removed or replaced. You can see the documentation here.
New Area Types
MFP features new area types. You can read about them here.
New Entity Types
MFP features new entity types. You can read about them here.
Infection
Infection was a mechanic which was removed from the final product. Some of the functionality remained, however, and can be read about here.
Color grade textures
MFP added support for color grading. The main documentation is in the New Areas article. Instructions for creating custom color grade textures can be read here.
Contributing
Almost all the information about MFP was reverse engineered by examining the existing map files (via text editors) and existing scripts files. If you wish to contribute, you can look for undocumented things in the same vein.
Tools
There are no officially available tools for MFP. However, MFP files can be viewed and edited using modded TDD tools.
Installation
The original TDD tools are available here. Install the 1.3 version or newer as described on the page, but in the MFP directory.
The TDD editors, however, will have issues with loading certain assets. To make the TDD tools load MFP files properly, you will need to mod them with custom config files. These files fill in the missing new features, and allow for all files to be loaded without errors. Simply drag the new files into your MFP folder and replace all files when prompted.
You might be also missing the SDL.dll file; if you have TDD, just copy it from there to the main MFP folder. Otherwise, download the 32 bit version from the official website.
Known issues / solutions
Issue: LevelEditor crashing when the /enemies entity folder is picked.
- Solution: Find the folder and delete all .msh files. These files are cache, and as such, don't hold anything important. They will be regenerated by the game.
Issue: LevelEditor displays lights in a weird way.
- Solution: None. Unfortunately, the LevelEditor seems to have a portion of the TDD shaders hardcoded into it. This means that they cannot be fixed.
Modding MFP
The only way of modding MFP which doesn't alter the base files is a Full Conversion. There are no Custom Stories in MFP. You can download the FC mod template here. It is recommended to have modding experience with TDD before modding MFP.
The download only features a Windows start script, but it can be remade for other Operating Systems. The rest of the template stays the same. Since MFP doesn't support passing a custom config file as an argument to the executable file, the script does something else. When the mod is ran, the script renames the original folder into "config_original" and the specified folder (e.g. "config_YourMod") to "config". When the game gets closed, these changes are reverted.
Almost all information about TDD Full Conversions applies to MFP FCs. It is recommended to use the same asset folder names as the base game (e.g. "sounds"), as some assets might not work otherwise. Keep in mind that adding new assets while the game is running might not take effect until rebooting it.