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:
@@ -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
@@ -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.
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user