Add fake-client dev scripts and GUI actions

Add developer-only fake-client scripts and UI actions for testing proxy behavior. Files updated: server/fake_player.py, server/dev_server_app.py, server/README.md, docs/dev-log.md. New scripts/actions: Walk Circle, Jump Once, Toggle Sneak, Leave Cell (Left Cell), Return To Cell, and Teleport Test. UI: added buttons and handlers in the DevServerWindow to trigger these actions. fake_player: implemented script/state handling, one-shot jump thread, teleport toggle, sneak flag, walk-circle movement, cell change transforms, a socket send lock, and protection for one-shot/action state. README and dev log updated with usage, testing notes, and known issues. Basic headless smoke tests and py_compile checks were performed; full in-game Fallout 4/F4SE validation remains manual.
This commit is contained in:
2026-06-02 15:46:59 +12:00
parent 0b73b1eff1
commit 0e67209ab1
4 changed files with 485 additions and 18 deletions
+66
View File
@@ -1095,6 +1095,72 @@ through the Python server.
---
## 2026-06-02 - Fake Client Test Scripts
### Summary
Added developer-only fake-client test scripts and actions to the PySide6 Fake
Clients tab. GUI-managed fake clients can now test jump state, sneak state,
circle movement, cell mismatch holding, return-to-cell behavior, and teleport
snapping without launching multiple Fallout 4 instances.
### Files Changed
- `server/fake_player.py`
- `server/dev_server_app.py`
- `server/README.md`
- `docs/dev-log.md`
### Details
- Added `Walk Circle` and `Left Cell` continuous fake-client modes.
- Added one-shot `Jump Once`, `Toggle Sneak`, `Return To Cell`, and
`Teleport Test` actions.
- Kept fake clients as external TCP clients that send normal newline-separated
JSON transform packets through the existing server socket.
- Preserved the existing `Idle` and `Walk To Player` controls.
- Added Fake Clients tab buttons for `Jump Once`, `Toggle Sneak`, `Walk Circle`,
`Leave Cell`, `Return To Cell`, and `Teleport Test`.
- Kept Fake Clients table columns unchanged while continuing to refresh script,
cell, and position snapshots from the manager.
- Added a socket send lock and protected script, pose, movement flags, and
one-shot action state with the existing client lock.
- Left the Fallout 4 plugin, protocol, `server/server.py`, `server/fake_client.py`,
and server networking behavior unchanged.
### Testing
- Ran `python -m py_compile server.py server_core.py client_session.py
fake_client.py dev_server_app.py fake_player.py` from `server`; it succeeded.
- Checked editor diagnostics for `server/fake_player.py` and
`server/dev_server_app.py`; no linter errors were reported.
- Ran a headless smoke test on alternate local port `7788`; a GUI-managed fake
client connected through the real server socket and exercised Walk Circle,
Toggle Sneak, Jump Once, Leave Cell, Return To Cell, and Teleport Test without
disconnecting.
- Not yet run: `python server.py` terminal launcher smoke test.
- Not yet run: `python dev_server_app.py`, start the server, add/remove fake
clients, and click each Fake Clients script/action button.
- Not yet run: Fallout 4/F4SE validation inside `F4TTestCell01` that Walk
Circle, Jump Once, Toggle Sneak, Leave Cell, Return To Cell, and Teleport Test
produce the expected proxy behavior.
### Known Issues
- Full Fallout 4/F4SE validation still needs to be run manually.
- Walk Circle is a simple mathematical circle only; it does not use pathfinding,
navmesh, or obstacle avoidance.
### Next Steps
- Manually validate the GUI scripts with a real Fallout 4 client in
`F4TTestCell01`.
- Consider future fake-client scripts such as Walk Square, Follow Player, Sprint
Toggle, Weapon Drawn Toggle, Disconnect After Delay, and multi-fake-player
choreography.
---
## Entry Template
Use this format for future updates: