launcher logs: rotate, never delete -- and solo/joyconfig must stop destroying the MULTIPLAYER log
Prompted by "does the steam path still generate our logs?". Answer: yes -- play_steam.bat sets BT_LOG=steam.log with append, and matchlogs arm because both Steam launch paths pass -net (the default trigger). But the audit found two evidence-destroying bugs on the way: 1. play_steam.bat DELETED the previous steam.log at every launch -- the same pattern fixed in join.bat/join_lan.bat last night. A Steam player who crashes and relaunches loses the stack. Now rotates to steam.old.log. 2. WORSE: play_solo.bat and joyconfig.bat deleted content\join.log -- the MULTIPLAYER log, not theirs. A player who crashed in MP and then ran solo to investigate (or ran the joystick wizard) DESTROYED THEIR OWN CRASH EVIDENCE. That is a very plausible part of how Conn Man's owens-laser stack vanished (#35) -- he had every reason to poke around after crashing. Each bat now writes its OWN log (solo.log / joyconfig.log), rotates it, and never touches join.log. Their launch-forensics + "send the operator" lines are repointed to match. VERIFIED in the zip layout (the bats need build\ + content\ beside them, so a repo-relative test is meaningless -- my first two attempts hit the badpath guard and proved nothing): solo.log = [boot] btl4 4.11.599 ... (the NEW run) solo.old.log = OLD-SOLO-CONTENT (rotated, not deleted) join.log = SEEDED-MP-EVIDENCE (untouched by the solo run) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
e26f4e6285
commit
39cb8647c7
@@ -15,8 +15,13 @@ set BT_START_INSIDE=1
|
||||
set BT_DEV_GAUGES=1
|
||||
rem one fresh log per bat run; the menu->game relaunch chain APPENDS
|
||||
rem so every generation's lines survive (0-byte logs = killed pre-start)
|
||||
if exist content\join.log del content\join.log
|
||||
set BT_LOG=join.log
|
||||
rem KEEP the previous run's log (a crash report died 2026-07-26 because a
|
||||
rem re-run deleted the only evidence). Rotate, never delete.
|
||||
rem ...and do NOT touch join.log (the MULTIPLAYER log) -- the wizard used to
|
||||
rem delete a player's MP crash evidence. The wizard writes joyconfig.log.
|
||||
if exist content\joyconfig.old.log del content\joyconfig.old.log
|
||||
if exist content\joyconfig.log ren content\joyconfig.log joyconfig.old.log
|
||||
set BT_LOG=joyconfig.log
|
||||
set BT_LOG_APPEND=1
|
||||
set BT_FE_SOLO=1
|
||||
cd content
|
||||
@@ -27,8 +32,8 @@ echo [%DATE% %TIME%] launching btl4.exe > launch_report.txt
|
||||
..\build\Release\btl4.exe
|
||||
set BT_EXITCODE=%ERRORLEVEL%
|
||||
echo [%DATE% %TIME%] btl4.exe exited with code %BT_EXITCODE% >> launch_report.txt
|
||||
if not exist join.log echo join.log WAS NEVER CREATED: the exe was blocked before it could run (loader failure or antivirus) >> launch_report.txt
|
||||
if exist join.log for %%A in (join.log) do echo join.log size: %%~zA bytes >> launch_report.txt
|
||||
if not exist joyconfig.log echo joyconfig.log WAS NEVER CREATED: the exe was blocked before it could run (loader failure or antivirus) >> launch_report.txt
|
||||
if exist joyconfig.log for %%A in (joyconfig.log) do echo joyconfig.log size: %%~zA bytes >> launch_report.txt
|
||||
exit /b
|
||||
:badpath
|
||||
echo.
|
||||
|
||||
+11
-5
@@ -14,8 +14,14 @@ set BT_START_INSIDE=1
|
||||
set BT_DEV_GAUGES=1
|
||||
rem one fresh log per bat run; the menu->game relaunch chain APPENDS
|
||||
rem so every generation's lines survive (0-byte logs = killed pre-start)
|
||||
if exist content\join.log del content\join.log
|
||||
set BT_LOG=join.log
|
||||
rem KEEP the previous run's log (a crash report died 2026-07-26 because a
|
||||
rem re-run deleted the only evidence). Rotate, never delete.
|
||||
rem ...and do NOT touch join.log: that is the MULTIPLAYER log. A player who
|
||||
rem crashed in MP and then ran solo to investigate used to destroy their own
|
||||
rem crash evidence. Solo writes solo.log.
|
||||
if exist content\solo.old.log del content\solo.old.log
|
||||
if exist content\solo.log ren content\solo.log solo.old.log
|
||||
set BT_LOG=solo.log
|
||||
set BT_LOG_APPEND=1
|
||||
set BT_FE_SOLO=1
|
||||
cd content
|
||||
@@ -26,8 +32,8 @@ echo [%DATE% %TIME%] launching btl4.exe > launch_report.txt
|
||||
..\build\Release\btl4.exe
|
||||
set BT_EXITCODE=%ERRORLEVEL%
|
||||
echo [%DATE% %TIME%] btl4.exe exited with code %BT_EXITCODE% >> launch_report.txt
|
||||
if not exist join.log echo join.log WAS NEVER CREATED: the exe was blocked before it could run (loader failure or antivirus) >> launch_report.txt
|
||||
if exist join.log for %%A in (join.log) do echo join.log size: %%~zA bytes >> launch_report.txt
|
||||
if not exist solo.log echo solo.log WAS NEVER CREATED: the exe was blocked before it could run (loader failure or antivirus) >> launch_report.txt
|
||||
if exist solo.log for %%A in (solo.log) do echo solo.log size: %%~zA bytes >> launch_report.txt
|
||||
|
||||
rem ------------------------------------------------------------------
|
||||
rem HANDOFF WAIT (2026-07-25). The front end does NOT stay resident: it
|
||||
@@ -59,7 +65,7 @@ if defined BT_STILL_RUNNING (
|
||||
)
|
||||
echo.
|
||||
echo The game has exited. If it closed unexpectedly,
|
||||
echo send the operator content\join.log.
|
||||
echo send the operator content\solo.log.
|
||||
pause
|
||||
exit /b
|
||||
:badpath
|
||||
|
||||
@@ -9,7 +9,10 @@ if not exist "build\Release\btl4.exe" goto badpath
|
||||
if not exist "content\BTL4.RES" goto badpath
|
||||
set BT_PLATFORM=glass
|
||||
set BT_STEAM_NET=1
|
||||
if exist content\steam.log del content\steam.log
|
||||
rem KEEP the previous run's log (a crash report died 2026-07-26 because a
|
||||
rem re-run deleted the only evidence). Rotate, never delete.
|
||||
if exist content\steam.old.log del content\steam.old.log
|
||||
if exist content\steam.log ren content\steam.log steam.old.log
|
||||
set BT_LOG=steam.log
|
||||
set BT_LOG_APPEND=1
|
||||
rem Cockpit view + MFD gauges -- the same client flags the join bats set
|
||||
|
||||
Reference in New Issue
Block a user