Replace ineffective third-person zoom with FOV narrowing (40°) to magnify the character's face for easier facial-feature editing. Center the player on the fixed LooksMenu camera's optical axis for the first few polls to prevent off-center framing caused by the camera not being perfectly aimed at the player. Capture and restore FOV and player transforms on menu open/close. Add diagnostic logging to track camera position, player position, and menu camera behavior.
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.
Change first-time session launch to use the COVault109 start cell and invoke a start quest so the quest can place the player at its preset spawn. Replaces coc SanctuaryExt with coc COVault109, changes the spawn-detection to match the COVault109 editor ID, adds a g_vault109StartQuestIssued flag and IssueVault109StartQuest() to run `startquest CO_Vault109StartQuest` once, and updates logs and reset logic. Also updates docs (changelog.md, docs/dev-log.md) and includes the updated CommonwealthOnline_Vault109.esp binary.
Add host normalization and ResolveServerKey to match equivalent endpoints (localhost/127.0.0.1, bracketed IPv6, etc.) so reconnects reuse existing server profiles. Harden profile storage: sanitize save-folder components, use Documents fallback via _dupenv_s when needed, log write/open failures, and fix Windows build issues from unsafe getenv usage. Make session launch resilient to missing or rotated exit saves by accepting Exitsave... names, refreshing to the newest exit save, and falling back to first-time flow from the main menu (instead of hard-failing). Update session launch to prefer resolved profile keys, touch/bind profiles appropriately, and improve related load error handling. Also add a simple Creation Kit quest script (CO_Vault109StartQuestScript) and update changelog/docs to document these changes.
Add stage-mod.bat and update build scripts to stage the mod package instead of automatically deploying (build-all.bat now calls stage-mod.bat; build.bat prints plugin output path and packaging hint). Reorganize Creation Kit assets into DataFolder and RawAssets directories, add new mesh/texture files, and update CommonwealthOnline_Vault109.esp. Also include ancillary updates to deploy scripts, docs, and server code to reflect the new packaging workflow.
Add several new 3D assets for the creation kit: 109-Entrance-Test.fbx (stored via Git LFS), FurnitureMarkerSit.obj with its FurnitureMarkerSit.mtl (exported with NifSkope), Vault95Exterior.fbx, and VaultGearRoom assets including Vault109Exterior.fbx, Vault109Exterior.nif, and Vault109ExteriorCOL.obj/.mtl (collision mesh and material). These files provide exterior and furniture geometry for the Vault 109 area.
Add new wall mural assets (creation-kit/assets/WallMurals/VltWallFree01.obj and .mtl). Remove Substance Painter lock for the double-sided bench and update its NIF mesh (CO_VltDoubleSidedBench01.nif). Update creation-kit/esp/CommonwealthOnline_Vault109.esp (binary) to include or reflect these asset changes.
Add a complete DoubleSidedBench asset set: Blender source files, OBJ/MTL, Fallout 4 NIF and BGSM material files, many textures (DDS/PNG), decals and exports, and painter lock/spp LFS pointers. Remove legacy CO_DoubleSidedBench.fbx and duplicate FBX/spp files. Also reorganize VaultLeather textures into a VaultLeather subfolder and update related .blend and .spp files.
Add DoubleSidedBench assets to creation-kit/assets/DoubleSidedBench: the FBX model (CO_DoubleSidedBench2.fbx) and associated .spp file are added as Git LFS pointers, along with the Blender source file (DoubleSidedBench.blend) and its autosave/backup (DoubleSidedBench.blend1). These files provide the new double-sided bench model and source for the creation kit.
Add a new DoubleSidedBench asset to creation-kit/assets. Includes model files (CO_DoubleSidedBench.fbx, CO_DoubleSidedBench.mb, CO_DoubleSidedBench.spp), three reference images (concept, top plan, isometric technical), and two textures (VaultLeather diffuse and VaultLeather normal). These provide the mesh, scene/project files, visual references, and material maps for the Vault bench prop.
Add Ronin's Vault Workshop wide door assets: material files (BGSM, alpha), glass shader (BGEM), NIF mesh, and diffuse/normal/specular DDS textures for RVP_VltWorkshopWideDoor01. Update CommonwealthOnline_Vault109.esp to include/integrate the new door assets.
Adds a new plugin file creation-kit/esp/CommonwealthOnline_Vault109.esp and updates the existing binary creation-kit/esp/CommonwealthOnline.esp. The change introduces a Vault 109-specific ESP alongside an updated main CommonwealthOnline ESP binary, likely to add or modify in-game records/assets for that location.
Add a ProxyGameAPI (F4TProxyGameAPI.h/.cpp) exposing PositionRemoteActor which centralizes positioning logic, play-space resolution, MoveRefrToPosition-style moves, and 20Hz throttling bypass for forced moves. Replace ad-hoc SetPosition/SetHeading calls across the proxy controller to use the new API, ensuring correct cell/worldspace migration, logging, and move-rate throttling.
Introduce support for Creation Kit placed proxy refs: detect CK-placed proxies by editor ID prefix or base form, populate a per-cell proxy pool, and prefer assigning CK-placed proxies for runtime remotes (with fallbacks). Update proxy spawn/holding logic (skip smooth frame once, handle settle states, preserve/reuse CK pool entries) and improve worldspace/cell mismatch checks to avoid incorrect movement across play spaces.
Other changes: add CommonwealthOnline.esp resource file, update setup.md with the new local FormID (0x002666) for COPlayerProxy, enable animation sync gating to require loaded 3D, and small logging/message improvements.
Add new Papyrus scripts (CoSync.psc, CoSyncPlayer.psc, CoSyncQuest.psc) providing native bindings and quest/player proxy logic for networking: connection/session APIs, entity management, world/weather/workshop/companion sync, consumable/pipboy/door/power-armor events, and proxy animation/initialization handlers. Refactor the proxy actor controller (F4TProxyActorController.cpp) to support dynamic/runtime proxy spawning and improved lifecycle/visibility handling: change proxy base/form IDs to COPlayerProxy/CommonwealthOnline, add process-list actor lookup, spawn helpers, play-space/cell checks, 3D visibility refresh, ActorHandle usage, and spawn mutexes and globals for safer spawning. Update docs and setup (architecture.md, limitations.md, plugin/setup.md) to describe global dynamic spawn behavior, max runtime proxies (kMaxRuntimeProxyActors = 4), and validation checklist; update launch-two-fallout4.bat to show instance log locations. Misc: small tweaks to logging and debug flags to gate diagnostics.
Replace occurrences of "Fallout 4 Together" with "Commonwealth Online" across docs and testing guidance. Add Interface assets and tooling: MainMenu/Pipboy SWFs, translation/fonts, exported scripts (Interface/exported/scripts/MainMenu.as) and a PATCH_MainMenu_Multiplayer.md describing how to add a Multiplayer menu entry that calls root.f4se.plugins.commonwealthOnline.openManager(). Also add build/run batch scripts and apply assorted updates to README, plugin, server and protocol documentation/source to align with the rename and UI changes.