# Agrarian Multiplayer Latency Test Plan

This is the MVP latency test gate for 0.1.L. It is intentionally small and
repeatable so the first two-player tests can find obvious replication and
interaction problems before dedicated-server hosting is stable.

## Scope

Run these tests against the current Ground Zero map:

```text
/Game/Agrarian/Maps/L_GroundZeroTerrain_Test
```

The test can use either:

- listen server while dedicated-server packaging is blocked;
- Linux dedicated server at `play.agrariangame.com:7777` once the gameplay VM is
  available.

## Network Profiles

Use Unreal packet simulation console variables on the client being tested:

| Profile | Commands |
| --- | --- |
| Clean LAN | `Net PktLag=0`, `Net PktLoss=0` |
| Mild WAN | `Net PktLag=80`, `Net PktLagVariance=20`, `Net PktLoss=1` |
| Rough WAN | `Net PktLag=160`, `Net PktLagVariance=40`, `Net PktLoss=3` |

Reset after testing:

```text
Net PktLag=0
Net PktLagVariance=0
Net PktLoss=0
```

## Smoke Steps

For each profile:

1. Start a listen server or dedicated server on the Ground Zero map.
2. Connect two packaged Windows clients.
3. Confirm both clients see the same world time and weather.
4. Gather from a resource node on client A and confirm depletion on client B.
5. Drop an item on client A and confirm client B sees the pickup only when
   nearby.
6. Place or interact with a campfire/shelter and confirm replicated state.
7. Damage/harvest wildlife if available and confirm state replication.
8. Trigger `AgrarianServerTravel GroundZero` and confirm clients return to the
   Ground Zero map.
9. Record visible hitching, missed interactions, delayed stat updates, or
   disconnects.

## Pass Criteria

- Both clients remain connected through the clean LAN and mild WAN profiles.
- Core interactions eventually reconcile under rough WAN conditions.
- No client can create authoritative inventory, survival, resource, fire,
  shelter, or wildlife state locally.
- Any failure is reproducible with the profile, map, client build, server build,
  and logs recorded.

## Helper Script

`Scripts/LatencyTestProfiles-Windows.bat` prints the console commands for each
profile and the reset command. It does not automate a full playthrough; the MVP
gate still requires human observation until gameplay automation matures.
