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