A custom story has many parts to it.
First, go to your amnesia the dark descent folder, find the "custom_stories" folder inside. Then create a folder there and, in this example, name it "Practice". In that folder, create a text document. Rename it to "custom_story_settings.cfg" Make sure that it doesn't end in ".txt", but in ".cfg". Inside the document, put this in there:
<Main
ImgFile = ""
Name = "The End Of Time"
Author = "Author Name"
MapsFolder = "maps/"
StartMap = "practice.map"
StartPos = "PlayerStartArea_1"
/>
Save the document and then create another document named "extra_english.lang" and once again make sure it ends in ".lang" and not ".txt". Open it and paste this into it and keep the capitalized letters the way they are.
<LANGUAGE>
<RESOURCES>
</RESOURCES>
<CATEGORY Name="CustomStoryMain">
<Entry Name="Description">My custom story descript!</Entry>
</CATEGORY>
</LANGUAGE>
Save the document and then make a folder named "maps". In it, create a file named "Practice.hps" and it has to end in ".hps" and not ".txt".
In the "maps" folder, this is where the script goes (Practice.hps) and where the map goes (Practice.map) which both need to have the same names.
In the "Practice.hps" file, put this in there:
void OnStart()
{
}
void OnEnter()
{
}
void OnLeave()
{
}
Then you make the map and set the rest up for playability.