I will explain it to scratch for you, beginning with the things not connected to others:
asName: the name of the checkpoint itself. With this name, you can difference between multiple checkpoints. Think of it like this: There's a person named person1, and another person named person2. The name is the only way to difference them, since you can not see them, hear them, or touch them. Please note that it is
needed to set names for the checkpoints once you got 2 or more, or else it won't work.
asStartPos: The Starting Position for where the player spawns after he dies. To make a Starting Position, go to the level editor>Areas>PlayerStart. Place it where you want the player to spawn, and use the rotate tool(select mouse icon on the left, click on the playerstart area, then on the right use the red circle) to rotate the blue arrow to where you want the player to look.
asCallback: Not always needed. If you just want the player to spawn, leave it blank(""). If you want the player, for example, to say something, or that something changes everytime he spawns at that position, use a Callback. Read more on Callback syntax below if you want more info about that.
asDeathHintCat + Entry: In your custom story folder, there should be a file named "extra_english.lang". If there isn't, you didn't add it yet. In there, define a category with any name you want, and a Entry with any name you want, which holds the text what should be displayed after he died. Then, add the names at the command itself(only the names, example: "DeathHints", "Checkpoint1")
Callback syntax + more on callback: As I said above, if you want more to happen than just getting the player to respawn, include a name as the callback(example below). After that, you make a new function using the callback syntax. Just copy/paste the whole thing and
only edit MyFunc to the name you defined as the callback. Nothing else of it. Inside that self made function, you can do what ever you want.
Now for a example, the bold words are the callback parts:
CheckPoint ("Checkpoint1", "PlayerStartPos_1",
"CheckPointFunction1", "DeathHints", "Checkpoint1");
void
CheckPointFunction1(string &in asName, int alCount)
{
Whatever should happen here
}
Now for your question about
AddEntityCollideCallback:
If you want to activate a checkpoint if the player enters a specific room for example, you use AddEntityCollideCallback. Place a script area(in level editor>areas>script) and size and place it like you need. Then, add the AddEntityCollideCallback command in OnStart(), which calls a function which then makes that checkpoint.
The big example of the whole stuff, together with the example above:
void OnStart()
{
AddEntityCollideCallback("Player", "ScriptArea_1", "CheckPointMaker", true, 1);
}
void CheckPointMaker(string &in asParent, string &in asChild, int alState)
{
CheckPoint ("Checkpoint1", "PlayerStartPos_1", "CheckPointFunction1", "DeathHints", "Checkpoint1");
}
void CheckPointFunction1(string &in asName, int alCount)
{
//Whatever should happen here
}