HPL2/AMFP/Introduction

From Frictional Wiki
< HPL2‎ | AMFP
Revision as of 17:46, 5 December 2020 by Darkfire (talk | contribs) (→‎Modding MFP: Added a CS paragraph)
Jump to navigation Jump to search

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 apply.

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.

Note icon.png Note: the custom config files include hints made by the community. These are not official and lack parts which couldn't be deducted from the files.

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

Custom Stories

You can use the CS version of MFP. As per the license of the source code it was compiled from, you need to copy the license file if you redistribute the .exe file. Alternatively, you can link that download for your players to download separately.

If you use it, Custom Stories in MFP work exactly the same as in TDD. You are only bound by the limitations of the game itself.

Full Conversion

MFP doesn't support passing a custom config file as an argument to the executable file, so until someone ports that feature, you can use this little hack to create FC mods.

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 for all systems.

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.

Alert icon.png Warning: Do not alter the main config files when the game is running! This might cause issues.


Icon tip.png Tip: If the game crashes, you might need to rename the folders manually. Including this information with your user manual for the mod might be a good idea.

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.