Files
BT411/players
arcattackandClaude Opus 4.8 eb618fe9e6 BT_EXPIRE: tester builds stop working 14 days after build (compile gate)
Distributed test zips go stale and stray.  BT_EXPIRE (CMake option,
DEFAULT ON so a zip can never accidentally ship without it) makes the
exe refuse to start BT_EXPIRE_DAYS (default 14) after its build day:
boot logs the remaining window, an expired build logs + shows a
"test build expired -- ask the operator for the current build" box and
exits.  btversion.h now stamps BT_BUILD_UNIX (UTC-midnight-rounded so
the only-on-change header churns once per day, not every build) +
BT_BUILD_DATE.  Dev is unaffected: every build re-stamps the day.

-DBT_EXPIRE=OFF builds a non-expiring exe; mkdist reads the cache and
marks such a zip "-noexpire" + prints a warning, and the tester README
expiry note is {EXPIRE}-marker-gated like the steam lines.  Second
compile-gate exception after BT_STEAM (convention updated in
glass-cockpit.md).  Quality gate, not DRM -- a clock rollback defeats it.

Verified live: default build logs "test build window: 14 day(s) left";
a -DBT_EXPIRE_DAYS=0 build logs TEST BUILD EXPIRED and parks on the
explanation box (window title checked) without starting the game;
restored to 14 and rebuilt clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 13:39:19 -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
   (waits for the operator's session if it's not up yet)
TO JOIN A LAN GAME:         double-click  join_lan.bat  (operator's LAN)
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 and mech are assigned automatically by the operator.
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
  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.  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.