It's simple: The messages go to the "Messages" category. So, the lang file should be something like:
<CATEGORY Name="CustomStoryMain">
<Entry Name="Description">What The Hell?</Entry>
</CATEGORY>
<CATEGORY Name="Inventory">
</CATEGORY>
<CATEGORY Name="Messages">
<Entry Name="Popup_1">What The?</Entry>
</CATEGORY>
<CATEGORY Name="Descriptions">
</CATEGORY>
<CATEGORY Name="Levels">
And the script:
AddEntityCollideCallback("Player", "Blowdoor_1", "Messagepopup", true, 1);
void Messagepopup(string &in asChild, string &in asParent, int alState)
{
SetMessage("Messages", "Popup_1", 3);
}
Also, get sure that notes work. If something in the .lang file is wrong, everything "dies".