Ok, I sort of got this working, although it's a long way from a perfect world where you just get two more customize menus in character creation.
There's a respec trainer in the Homestead and my first thought was just to move him to the starting beach, but this doesn't work for two reasons.
1) All his triggers and scripts break
2) Since you haven't put the two extra player characters through character creation, they don't actually have the stat points/ability points/talent points to spend. They can't respec since they haven't specced in the first place.
So we need some way to hook those two extra characters we added into the character creation process. It turns out, we can do this by editing the Mods/(mod name)/Story/RawFiles/Goals/__Start.txt file.
The important line here is "CharacterAddToCharacterCreation(CHARACTER_Player1,0,1)". We want to duplicate that line for our two new characters, so go edit players.lsb to give them new names (I suggest Player3 and Player4) and then add
"AND
CharacterAddToCharacterCreation(CHARACTER_Player3,0,1)
AND
CharacterAddToCharacterCreation(CHARACTER_Player4,0,1)"
The game doesn't actually read from this file, so we have to go into the editor and boot up Story Editor (in fact, we could be doing this in the Story Editor). The Story Editor has a build button that will compile everything, and after we build our new script (make sure that there aren't any errors), we can start up the game and see that our two extra characters are no longer naked and have starting classes and appearances, although the UI still only lets us edit our two original characters.
But when the game starts, we see that they have equipment and stats allocated, just like they went through character creation normally.
Next, we need to find a way to respec them, so we go look at the respec trainer in the Homestead (his scripts are in HOM_Trainers). The relevant line turns out to be "CharacterAddToCharacterCreation(_Player,1,1)".
We want to trigger this as soon as we arrive on the beach, so we go to CYS_General, find the function that launches the starting movie (fortunately for us, it's the very first one!) and add "CharacterAddToCharacterCreation(CHARACTER_Player3,1,1)" right after InitStory().
This doesn't actually work because CharacterAddToCharacterCreation is a function with a return value, so we have to put it in the if statement, not the then statement, but if we go up a little and add
"AND
CharacterAddToCharacterCreation(CHARACTER_Player3,1,1)"
to the IF portion of our function, we see that when we start the game, Player3 gets all her stat points back to reallocate.
I haven't tried dropping the mirror on the beach, but my suspicion is that is it won't work without a little fiddling (and possibly a lot). However it should be possible to work out.
EDIT: You lose all your starting skills when you do this, so it might be worthwhile to add some skillbooks to the characters starting equipment.
Last edited by roguelike; 06/07/14 08:43 AM.