Add staging step and reorganize assets

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.
This commit is contained in:
2026-06-17 23:03:30 +12:00
parent f56b6cf113
commit 3d14918ee8
148 changed files with 385 additions and 79 deletions
+4 -2
View File
@@ -14,8 +14,10 @@ both send and receive paths:
1. The Fallout 4 plugin reads local player transform data.
2. The plugin derives basic movement state on the game-thread polling path and
sends it as optional data on transform packets.
3. The plugin sends transform packets to the local Python server on
`127.0.0.1:7777`. Normal movement sends are throttled separately from
3. The plugin sends transform packets to the Python relay server. The default
dev setup connects to `127.0.0.1:7777` on the same PC; the server itself
listens on `0.0.0.0:7777` so other machines can connect using the host
PC's LAN IP and port. Normal movement sends are throttled separately from
movement logs, targeting roughly 10 Hz while the player is moving.
4. The server assigns `playerId` values and sends `welcome` packets.
5. The plugin receives its `welcome` packet and stores its assigned `playerId`.
+98 -1
View File
@@ -7,6 +7,66 @@ failed experiments, successful tests, and next steps.
---
## 2026-06-17 - Fallout 4/Data Build Layout + Creation Kit Assets
### Summary
Mod staging now uses a proper `build/Fallout 4/Data` path, includes ESP plugins from `creation-kit/esp`, and copies Materials/Meshes/Textures from `creation-kit/assets`.
### Files Changed
- `stage-mod.bat`
- `deploy-all.bat`
- `build-all.bat`
- `build.bat`
- `plugin/setup.md`
- `docs/setup.md`
### Details
- Staging root is now `build/Fallout 4/Data/` instead of flat `build/`
- ESP files (`*.esp`) copied from `creation-kit/esp`
- Asset folders staged from `creation-kit/assets/{Materials,Meshes,Textures}` or `creation-kit/assets/DataFolder/{...}` as fallback
- `deploy-all.bat` copies from `build/Fallout 4/Data` into the resolved game `Data` folder
### Testing
- `stage-mod.bat` run locally; confirmed ESPs, Materials, Meshes, Textures, F4SE, and PrismaUI_F4 layout under `build/Fallout 4/Data`
### Known Issues
- None currently known
### Next Steps
- Run `build-all.bat` end-to-end and verify in-game ESP + mesh assets load
---
## 2026-06-17 - Root build/ Mod Package Staging
### Summary
Full mod builds now assemble into a `build/` folder at the repo root with the correct Fallout 4 `Data` layout, ready to drag-and-drop or install via mod manager.
### Files Changed
- `stage-mod.bat` (new)
- `build-all.bat`
- `build.bat`
- `deploy-all.bat`
- `plugin/setup.md`
- `docs/setup.md`
### Details
- `stage-mod.bat` collects plugin DLL, PrismaUI_F4 DLL, Ultralight libs/resources, HTML views, and cursor asset into `build/`
- `build-all.bat` builds plugin + PrismaUI then stages; no longer auto-deploys to Fallout 4
- `deploy-all.bat` stages fresh then copies `build/` into the resolved `Data` folder
- `build/` remains gitignored
### Testing
- Batch scripts not run in this session (requires local xmake + submodule builds)
### Known Issues
- None currently known
### Next Steps
- Run `build-all.bat` and verify `build/` contents install correctly into Fallout 4 `Data`
---
## 2026-06-11 - Portable Fallout 4 Deploy Paths
### Summary
@@ -5203,4 +5263,41 @@ Sender-side holds (`kMovementStopHoldDuration` 300ms, `kJumpStateHoldDuration` 4
### Build Status
✅ **SUCCESS** — `xmake build` in `plugin/`.
✅ **SUCCESS** — `xmake build` in `plugin/`.
---
## 2026-06-17 - Server LAN and WAN listen support
### Summary
Changed the Python relay server to bind on all network interfaces (`0.0.0.0`)
instead of localhost only, so other devices on the LAN (and eventually the
internet via port forwarding) can connect using the host PC's IP and port.
### Files Changed
- `server/server_core.py`
- `server/dev_server_app.py`
- `server/README.md`
- `server/config/README.md`
- `docs/architecture.md`
### Details
- Default bind address is now `0.0.0.0:7777`.
- Startup logs list `127.0.0.1` for same-machine clients and detected LAN IPv4
addresses for other devices on the network.
- Dev server GUI host stat shows detected LAN connect targets when running.
- Fake clients and local Fallout 4 instances still connect via `127.0.0.1`.
- Remote players use Direct Connect with the host PC's LAN or public IP.
### Testing
- Not run in this session (no live multiplayer test from separate machines).
- Expected: server starts, logs LAN address, local `fake_client.py` and plugin
still connect on `127.0.0.1:7777`, second PC on LAN connects with host IP.
### Known Issues
- Windows Firewall may block inbound connections until port 7777 is allowed.
- Router port forwarding is required for connections from outside the LAN.
### 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.
+56
View File
@@ -60,6 +60,62 @@ This includes:
`build-prismaui.bat` links the Ultralight SDK submodule into the PrismaUI build tree automatically. Override the SDK location with `ULTRALIGHT_SDK_PATH` if needed.
## Build and Install
From the repository root:
```bat
build-all.bat
```
This builds the plugin, PrismaUI_F4, and stages a complete mod package into `build/Fallout 4/Data` at the repo root. The layout mirrors the real game path under your Fallout 4 install.
```text
build/
└─ Fallout 4/
└─ Data/
├─ CommonwealthOnline.esp
├─ CommonwealthOnline_Vault109.esp
├─ F4SE/
│ └─ Plugins/
│ ├─ CommonwealthOnline.dll
│ └─ PrismaUI_F4.dll
├─ Materials/ (from creation-kit/assets)
├─ Meshes/ (from creation-kit/assets)
├─ Textures/ (from creation-kit/assets)
└─ PrismaUI_F4/
├─ libs/ (Ultralight runtime DLLs)
├─ resources/ (Ultralight assets)
├─ misc/
│ └─ cursor.png
└─ views/
└─ CommonwealthOnline/
└─ browser/
└─ index.html
```
Merge `build\Fallout 4` into your game install directory, or copy the contents of `build\Fallout 4\Data` into `Data\`. Mod managers can point at `build\Fallout 4` as the mod root.
To install directly into a Fallout 4 install:
```bat
deploy-all.bat
deploy-all.bat "D:\SteamLibrary\steamapps\common\Fallout 4"
```
`deploy-all.bat` re-stages `build/Fallout 4/Data` then copies it into the game's `Data` folder. On first use it prompts for the install path and saves it in `.fallout4-path` (gitignored).
Individual steps:
```bat
build.bat REM CommonwealthOnline.dll only
build-prismaui.bat REM PrismaUI_F4.dll only
stage-mod.bat REM assemble build/ from existing DLL outputs
deploy-ui.bat REM HTML views only (requires PrismaUI_F4 installed separately)
```
See also `plugin/setup.md` for plugin-specific build notes.
## Folder Notes
Do not copy Fallout 4 game files into this repository.