This is just me theorycrafting for now (to get my thoughts and code down), but I have plans...
First, the code I have so far:
IF
CharacterLearnedSkill(_Char, _skill)
AND
NOT DB_LearnedSkills(_Char, _skill)
THEN
DB_LearnedSkills(_Char, _skill);
PROC
ProcRememberSkills((CHARACTER)_Char)
AND
NOT DB_LearnedSkills(_Char, _)
THEN
ProcRestoreSkillDB(_Char);
PROC
ProcRememberSkills((CHARACTER)_Char)
AND
DB_LearnedSkills(_Char, _skill)
THEN
CharacterAddSkill(_Char, _skill);
NOT DB_LearnedSkills(_Char, _skill);
DB_LearnedSkillsTemp(_Char, _skill);
ProcRememberSkills(_Char);
PROC
ProcRestoreSkillDB((CHARACTER)_Char)
AND
DB_LearnedSkillsTemp(_Char, _skill)
THEN
DB_LearnedSkills(_Char, _skill);
NOT DB_LearnedSkillsTemp(_Char, _skill);
ProcRestoreSkillDB(_Char);
IF
CharacterCreationFinished((CHARACTER)_Char)
THEN
ProcRememberSkills(_Char);
Code for skills to be added later-
IF
CharacterUsedSkill((CHARACTER)_Char, "SKILL_RecallSkills")
THEN
ProcRememberSkills(_Char);
IF
CharacterUsedSkill((CHARACTER)_Char, "SKILL_CharacterCreationStats")
AND
CharacterAddToCharacterCreation(_Char, 1, 1)
THEN
ProcRememberSkills(_Char);
IF
CharacterUsedSkill((CHARACTER)_Char, "SKILL_CharacterCreationAppearance")
AND
CharacterAddToCharacterCreation(_Char, 2, 1)
THEN
ProcRememberSkills(_Char);
The idea is to quite simply have character creation be accessible anytime, anywhere, with the use of a custom skill.
From what I have been able to gather, CharacterCreation with a respec value of 1 resets all attributes/talents/etc, while a respec value of 2 allows you to change the character's appearance. The rest of the code is there to make learned skills somewhat permanent and not disappear forever after being learned.
What I am wanting to do eventually is have a psuedo-4 player mod, where people can drop in to a companion and customize the character before accompanying the main player on their journey.