Same script with comments - hopefully that will make it clearer - and also changed the state var values so it's clearer (look at what happens in the order that it happens - the blocks are executed in order 1,2,3,4 etc, even though they're not in that order in the script).
begin CharGen;chargenstate 1 start -1 finishedfloat timerif ( CharGenState == 1 ) ;CharGenState is set by the engine when you start a new game DisablePlayerControls ;disable everything until chargen is done DisablePlayerJumping ;not sure if all this is necessary but you at least DisablePlayerViewSwitch ; need to stop the player looking at themselves DisableVanityMode ; (inventory, vanity mode, fighting, spellcasting) DisablePlayerFighting ; - since they'll have default appearance DisablePlayerMagic Player->PositionCell -10608, -71301, 189, 0 "Seyda Neen (-2, -9)" ;puts player in the world ChangeWeather "Bitter Coast Region" 1 ;sets beginning weather to cloudy, looks nicer set CharGenState to 2 return ;wait until next frame to do next bitendifif ( MenuMode == 1 ) ;nothing from here on gets done in menumode returnendifif ( CharGenState == 2 ) EnableNameMenu ;one menu at a time set CharGenState to 3 return ;wait until next frame, this makes it go through the menumode check ;state 3 is after the timer (lower down!)elseif ( CharGenState == 8 ) EnablePlayerControls enablestatsmenu enableinventorymenu enablemagicmenu enablemapmenu enableplayerfighting enableplayermagic EnablePlayerJumping set CharGenState to 9 returnelseif ( CharGenState == 9 ) enablestatsmenu ;a number of enable commands are repeated a few times - Bethesda did this enableinventorymenu ;just to make sure, I figured it was a good idea to imitate them enablemagicmenu enablemapmenu enableplayerfighting enableplayermagic AddTopic "background" ;this part just adds things you'd get if you went through AddTopic "Balmora" ; chargen the normal (slow) way AddTopic "Caius Cosades" AddTopic "duties" AddTopic "my trade" AddTopic "the Empire" AddTopic "Uriel Septim" ShowMap "Balmora" ShowMap "Pelagiad" ShowMap "Moonmoth Legion Fort" journal "A1_1_FindSpymaster" 1 player->AddItem "bk_a1_1_caiuspackage" 1 player->AddItem "bk_a1_1_directionscaiuscosades" 1 "chargen door hall"->unlock set CharGenState to -1 ;chargen is finished stopscript CharGen returnendifif ( timer < 1 ) ;wait 1 second in addition to menumode check set timer to ( timer + GetSecondsPassed ) returnendifset timer to 0 ;reset timer for next timeif ( CharGenState == 3 ) Enableracemenu set CharGenState to 4 returnelseif ( CharGenState == 4 ) EnableClassMenu "CharGen Boat"->Disable ;this part just gets rid of the prison ship etc "CharGen Boat Guard 1"->disable "CharGen Boat Guard 2"->disable "CharGen Dock Guard"->disable "CharGen_cabindoor"->disable "CharGen_chest_02_empty"->disable "CharGen_crate_01"->disable "CharGen_crate_01_empty"->disable "CharGen_crate_01_misc01"->disable "CharGen_crate_02"->disable "CharGen_lantern_03_sway"->disable "CharGen_ship_trapdoor"->disable "CharGen_barrel_01"->disable "CharGen_barrel_02"->disable "CharGenbarrel_01_drinks"->disable "CharGen_plank"->disable set CharGenState to 5 returnelseif ( CharGenState == 5 ) EnableBirthMenu ;note that since all of these are below the timer, they all wait 1 second set CharGenState to 6 returnelseif ( CharGenState == 6 ) EnableStatReviewMenu set CharGenState to 7 returnelseif ( CharGenState == 7 ) StartScript RaceCheck ;RaceCheck script sets global used in dialgoue to check PC race EnableStatsMenu ;need to re-enable everything that was disabled at start EnablePlayerViewSwitch EnableVanityMode EnableMagicMenu EnableRest set CharGenState to 8 returnendifend