Improve Vault109 chargen flow and LooksMenu handling
Move first-time character menu orchestration out of Papyrus and into the C++ session-launch flow. CO_Vault109StartQuestScript.psc now only teleports the player and sets stage 10. F4TSessionLaunch.cpp adds camera preparation/restoration, direct PlayerCamera/ThirdPersonState face-camera tuning, primary console ShowLooksMenu 14 path, Actor.ShowLooksMenu fallback, retry/timeouts and guarded state resets. Added logging and counters for Looks/SPECIAL menu polling. Updated changelog.md and docs/dev-log.md to describe the new flow and testing notes.
This commit is contained in:
+48
-1
@@ -6198,4 +6198,51 @@ internet via port forwarding) can connect using the host PC's IP and port.
|
||||
|
||||
### Next Steps
|
||||
- Test two PCs on the same LAN using the host machine's IP in Direct Connect.
|
||||
- Add optional config file loading for `host` and `port` overrides.
|
||||
- Add optional config file loading for `host` and `port` overrides.
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-28 - Vault 109 post-spawn character setup flow
|
||||
|
||||
### Summary
|
||||
Updated the Vault 109 start quest script so first-time spawn now chains directly into
|
||||
character setup menus using compile-safe Fallout 4 Papyrus calls, then the SPECIAL/name setup menu.
|
||||
|
||||
### Files Changed
|
||||
- `creation-kit/scripts/source/CO_Vault109StartQuestScript.psc`
|
||||
- `plugin/src/F4TSessionLaunch.cpp`
|
||||
- `changelog.md`
|
||||
- `docs/dev-log.md`
|
||||
|
||||
### Details
|
||||
- Kept the existing spawn behavior (move player to `Vault109SpawnMarker`) and stage completion gate (`SetStage(10)`).
|
||||
- Reverted quest-side menu orchestration: `CO_Vault109StartQuestScript.psc` now only teleports to `Vault109SpawnMarker` and sets stage 10.
|
||||
- First-time character setup UI is now fully owned by plugin C++ session-launch flow (`Actor.ShowLooksMenu` then `ShowSPECIALMenu`) instead of Papyrus `ShowRaceMenu`.
|
||||
- Added C++ camera prep before Looks (`ForceThirdPerson`) without forcing global chargen state.
|
||||
- Changed primary Looks open path to C++ console `ShowLooksMenu 14` for compatibility in this runtime.
|
||||
- Added guarded fallback to existing `Actor.ShowLooksMenu` call if Looks does not open quickly, plus a max-open timeout that resets first-time state instead of hanging indefinitely.
|
||||
- Added post-open camera correction: when `LooksMenu` is detected open, C++ applies `SetInChargen 1` + `ForceThirdPerson`, then restores with `SetInChargen 0` after Looks closes.
|
||||
- Added direct `PlayerCamera` third-person state correction and repeated short camera nudges while `LooksMenu` remains open, so the menu cannot remain stuck in first-person due to ignored console camera commands.
|
||||
- Added face-edit camera tuning on `ThirdPersonState`: zero shoulder offsets, front-facing yaw based on player heading, free rotation, and closer zoom.
|
||||
|
||||
### Testing
|
||||
- Not run in this session (Creation Kit/Papyrus runtime not available in this environment).
|
||||
- Expected flow:
|
||||
- Start first-time join flow that triggers `CO_Vault109StartQuest`.
|
||||
- Player is moved to `Vault109SpawnMarker`.
|
||||
- C++ first attempts `ShowLooksMenu 14` with camera prep; if it fails to open, fallback `Actor.ShowLooksMenu` is issued.
|
||||
- Looks menu opens from C++ first-time flow after Vault 109 spawn quest completes.
|
||||
- On first LooksMenu-open detection, camera context is re-applied so customization does not remain in first-person.
|
||||
- Direct `PlayerCamera`/`ThirdPersonState` face-camera correction runs for the first few LooksMenu polls.
|
||||
- On exiting Looks menu, SPECIAL menu opens from C++.
|
||||
- Stage 10 remains completed and quest does not re-run on subsequent init.
|
||||
- Verify in logs:
|
||||
- `CommonwealthOnline.log` for quest trigger ordering around first-time launch.
|
||||
- Papyrus logs for timeout traces only if menu open/close fails.
|
||||
|
||||
### Known Issues
|
||||
- Not yet runtime-validated in-game; menu timing can vary with load state and other UI transitions.
|
||||
|
||||
### Next Steps
|
||||
- Run in-game first-time flow and verify C++ LooksMenu then SPECIAL menu sequence.
|
||||
- If SPECIAL does not reliably include name entry in your setup, evaluate explicit `ShowNameMenu` before or after SPECIAL based on observed FO4 behavior.
|
||||
Reference in New Issue
Block a user