Files
BT411/players
arcattack 26439c2e1a Boot forensics: first-breath log line + generation-safe bat logging
Field 2026-07-23 (second night): a player's join.bat failed 3x in a row
with a 0-byte join.log -- indistinguishable from 'never ran'.  Two
causes of evidence loss fixed:

1. The first flushed log line now happens the INSTANT the log opens
   (version, pid, args, first-process vs relaunched-generation).  An
   empty log after this build means the exe was killed before WinMain
   -- an external cause (antivirus/loader), not ours.
2. The menu->game relaunch chain truncated join.log each generation
   (BT_LOG_APPEND was unset in the player bats): the crashed
   generation's evidence was erased by the next attempt.  The bats now
   delete the log once per bat run and append across generations.

Also explains the confusing 'The game has exited' bat message on
SUCCESSFUL launches (the menu process exits after relaunching the game
detached) -- the log now records the whole chain.
2026-07-23 21:33:27 -05:00
..

BattleTech {VERSION} -- multiplayer client
==========================================

IMPORTANT: FULLY EXTRACT this zip first (right-click - Extract All).
Do NOT run anything from inside the zip.  The .bat files must sit next
to the 'content' and 'build' folders.

TO JOIN AN INTERNET GAME:   double-click  join.bat
   -- pick your CALLSIGN and MECH, click JOIN (your choice is sent to
   the operator; waits for the session if it's not up yet)
TO JOIN A LAN GAME:         double-click  join_lan.bat  (operator's LAN;
   same callsign/mech menu)
SINGLE-PLAYER:              double-click  play_solo.bat  -- opens the
   mission menu: pick your mech (all 18), map, experience level,
   colours, weather and mission length, then launch
{STEAM}STEAM INTERNET PLAY:        double-click  play_steam.bat  (EXPERIMENTAL --
{STEAM}   needs the Steam client running; host or join from the menu)

Your seat is assigned automatically; you'll pilot the mech you picked
in the join menu (the operator can override it).
When a round ends your game AUTOMATICALLY rejoins for the next one
(same seat, same mech) -- just wait for the operator's next launch.
Close the window to leave for real.
If the game closes unexpectedly, send the operator content\join.log.

AFTER A MULTIPLAYER SESSION: the game writes a small match report,
content\matchlog_<date>_<time>_<number>.txt.  Please send the operator
the newest one -- we combine everyone's files to verify damage, kills
and scores worked correctly across all players.

You start INSIDE the cockpit with the pod's MFD panels composited
around the view (one window).  The red MFD buttons, radar rails and
joystick buttons are all MOUSE-CLICKABLE -- right-click a button to
latch it held.  Press V any time to toggle the external camera.

CONTROLS (keyboard):
  W/S or Up/Down ....... throttle lever        X / NumPad5 ... all stop
  A/D or Left/Right .... turn pedals           Alt ........... reverse thrust
  Q/E .................. torso twist           R/F ........... torso aim
  NumPad 8/2/4/6 ....... torso aim/twist (alt) Shift ......... throttle up
  1 or Space ........... main trigger          2 ............. middle thumb
  3 or Ctrl ............ upper thumb (missiles) 4 ............ pinky
  V view | B look-behind | M control mode | N schematic | J/K/L MFD pages
  - / = ................ game volume down/up (saved between sessions)
  H (hold) ............. coolant flush (dumps reservoir to cool everything)
  C .................... cycle a coolant valve.  CAREFUL: the detents go
     1 - 5 - 50 (max) - 0 (CLOSED!) - back to 1.  One press past max
     SHUTS THE LOOP OFF and everything on it will overheat -- watch the
     valve dial on the coolant screen.  Boosting one loop starves the
     others (the coolant supply is shared).
  A weapon gone quiet with ammo left has probably JAMMED (heat makes
  ballistic weapons jam -- authentic!).  Check its panel's ENG DATA page
  for the jam lamp (a cocked round with warning bolts).  The pod's fix
  is the EJECT button on that weapon's ENG DATA page: TAP to eject the
  jammed round (weapon reloads and returns to service), HOLD ~3s to
  jettison the whole bay before it cooks off.  Watch the TEMP strip and
  pace salvos.
  G (hold) + fire key .. regroup a weapon onto that trigger -- or hold a
     weapon panel's red PROGRAM button with the mouse and tap a fire key;
     the joystick diagram on the panel shows the binding live.

An Xbox controller works out of the box.  FLIGHT STICKS / HOTAS /
pedals: run joyconfig.bat ONCE -- a wizard asks you to move each
control (stick, twist, throttle, fire buttons), writes the bindings,
and drops you into the solo menu to try them.  Rebind keys in
content\bindings.txt (regenerates with defaults if deleted).

This build: {VERSION}.  Private -- do not redistribute.
{EXPIRE}Test builds STOP WORKING 14 days after they are made -- if the game
{EXPIRE}says it has expired, just grab the operator's newest zip.