# vPOD — virtual pod / game-client stand-in A test tool that impersonates a Tesla game client (Red Planet's `rpl4opt.exe` or BattleTech's `btl4.exe`) so the operator **consoles can be exercised without real cockpit hardware**. It speaks the Munga command/control protocol as a server on TCP 1501 — the console connects to it exactly as it would a real pod — emulates the pod `ApplicationState` machine, reassembles the streamed egg, and shows everything on a live display. ## What it does - **Listens on TCP 1501** (configurable) and answers the console's `StateQuery` with a `StateResponse`, reporting the game (`ApplicationID`) and the current `ApplicationState`. - **Walks the mission lifecycle** the console drives it through: `WaitingForEgg → LoadingMission → WaitingForLaunch → LaunchingMission → RunningMission → …`, reacting to the egg stream and to Run / Stop / Abort / Suspend / Resume messages, and acknowledging the egg. - **Reassembles and shows the egg** the console streams (the `EggFileMessage` chunks), one field per line, with a summary line (adventure / map / scenario / pilot count). - **Game toggle** — a Red Planet ⇄ BattleTech switch on the window changes which `ApplicationID` the pod reports, live, so one vPOD can stand in for either game. (`-app rp|bt` sets the initial choice.) - A **newest-first protocol log** of the traffic. ## Running it ``` vPOD.exe [-net ] [-app rp|bt] [-lc|-mr] [-host ] [-res W H] ``` - `-net ` Munga control port (default **1501**). - `-app rp|bt` which game to report initially (also switchable in the UI). - `-lc` / `-mr` live-camera / mission-review role (cosmetic; the state model is identical to a game machine). - `-host ` responding host id reported in state responses (default 1). - `-res W H` accepted and ignored (real clients take it; kept for drop-in launch compatibility). ## Deploying from the console (Manage Site → Install Product) vPOD is a catalog product (`RedPlanet\Apps.xml`, id `0041C870-…`) with Game Client / Live Camera / Mission Review entries, so it appears in **Manage Site → Install Product** like any game. Build the deployable package first: ``` pwsh -File pack.ps1 # produces dist\vPOD.zip ``` The zip lays out `vPOD\vPOD.exe` (+ `Munga Net.dll`) so the launcher extracts it to `C:\Games\vPOD` and the catalog entry launches `C:\Games\vPOD\vPOD.exe`. ## Testing locally against the console The default site ships a **`local` pod at 127.0.0.1**. Run vPOD on the console machine, open a game window (e.g. *Games → Red Planet: Death Race*), and enable the local pod — the console connects to `127.0.0.1:1501` (vPOD), and you can drive Load → Run → Stop and watch vPOD's state and egg viewer follow along.