FromHolland's approach of just copy clubbing the main game's scripts works and feel free to use it, but let's see if we can peer a little deeper into the why in hopes of understanding what's going on a little better.
Character Creation is mostly hard coded into the the game, so as a result it's actually pretty easy to get working, although difficult to modify very much.
To set up Character Creation, make a new mod, drop some terrain, drop down one or two characters from Root Templates (I suggest FemalePlayer or MalePlayer) and make them Global. Sorry, you can't character create more than two characters (or, if you can, I haven't found a way), Character Creation seems to fire exactly once, just after GAMEEVENT_GameStarted is finished.
So to hook into to that hard coded magic, we need to add a new story script with this code to our mod:
IF
GameEventSet("GAMEEVENT_GameStarted")
AND
CharacterAddToCharacterCreation(CHARACTER_Player1, 0, 1)
AND
CharacterAddToCharacterCreation(CHARACTER_Player2, 0, 1)
THEN
TimerLaunch("Doesn't Matter, just need something in the then statement", 100);
Note that by default your characters will be named something like FemalePlayer_000 and you'll either need to use that name or change it to Player1 (or whatever you want to use in scripts). You can change the name in the character tab of the editor (open it up by clicking on the red person next to the box). Don't be confused and change the display name on the sidebar, the code doesn't care about that.
Once we generate definitions + build our script without any errors, we're almost there. All we need to do is close the editor and copy over the Mods/Main/CharacterCreation folder to Mods/(your mod name)/CharacterCreation
Note that CharacterCreation doesn't fire when you test the level in the editor, but if we go start it up in the game itself, we see that character creation is working. You can change classes, customize abilites, assign portraits that don't look like your character--all that good jazz. Once you click finish, the screen will fade to black then fade back and you'll have control of your characters.
Woo we did it! Now of course, the actual character creation has cool cinematic cameras, and we can add those too. To add cameras you either drop them down from Root Templates (SpectatorCameraTrigger) or you can maneuver the editor camera and the use tools -> place spec cam here to drop a camera where you're looking. You can then rename those cameras in the trigger list (list is open by default, click on the trigger box on top if you've closed it), to get Character Creation to use them.
The four camera names that the game recognizes are:
Camera_Creation_Main //The default camera you see when Character Creation starts
Camera_Creation_1 //The view for customizing first player
Camera_Creation_2 //The view for customizing second player
Camera_Creation_Start //Don't know what this is used for
Once you've added and named your cameras properly, you can again start your mod up and see that everything is working, but this time with cinematic cameras.
Now of course, you may not want to have your character creation happen on the same level or area as the beginning of the game.
If you want to teleport your characters after character creation finishes to a new area, we can add to our Story Editor the new function:
IF
CharacterCreationFinished(CHARACTER_NULL)
THEN
CharacterTeleportPartyToTrigger(TRIGGER_TheGameBegins, "");
The trigger can be named anything and can be on either the same level or another level. The only requirement is that the trigger is global. We can also do stuff like add items here without fear of them being overwritten by the character creation process.
Hold it! you say, I don't want to create boring old classes like Battlemage, I want to create sweet new classes. And I don't want to play as a human, I want to be a skeleton, can I do that? Well you can, but you're going to have to wait for the next tutorial on CharacterCreation properties and classes if you want to learn it from me. If you want though, you can just go fiddle around in CharacterCreation/properties.lsx and figure it out.