Files
EscapistsReintroduced/docs/evidence/starting-rifles-2026-10-26/README.md
T
2026-10-28 14:43:43 +01:00

3.2 KiB

Starting-rifle investigation — 2026-10-26

The native Kolobok starting backpack rejects the full-length vanilla M16A2 (3E413771E1834D2F). The shorter M16A2 carbine with M203 (EF73725A81669E2C) fits with the map and pistol used in this test. This is not a blanket rifle-type ban.

Baseline R1 ran the existing site preparation and real inventory code in an isolated Workbench profile. The required map entered the backpack; the M16 was rejected on each inspection. After 60 quarter-second polls the code deleted the optional rifle and returned READY. This reproduces a 15-second inventory wait and lost selected weapon, not a permanent mission-start failure.

The fix retains the exact rejected starting item as loose loot, looking for dry, clear, reachable ground near the backpack. It does not create replacement items or pull an item out of a storage that already owns it. If no nearby clear spot exists, the item remains at its original starting-container spawn position. The shared map remains mandatory, accepted asynchronous inventory moves are not resubmitted, and normal inventory failures at non-starting sites remain errors.

Native evidence:

  • baseline/ (R1): original behavior, one M16; required map remains after the rifle is removed, preparation completes at poll 60.
  • stock-fix/ (R2): the same small stock fixture completes at poll 2 (0.5 s), without removing the rifle.
  • full-mission/ (R5): full ordinary mission preparation and player admission, with one full-length M16, one M16/M203 carbine, one pistol and the mandatory field map. The loose M16 is approximately 1.21 m from the backpack and appears in the server spawn-scene snapshot. The carbine, pistol and map remain inside. A native inventory operation then moves the exact loose M16 into the admitted player's inventory; replicated slot/storage visibility is verified.

R3 also passed a full mission with one M16 and pistol. R4 exposed an incorrect fixture assumption that the shorter carbine would also be rejected; the mission itself started, but the fixture failed its loose-item assertion. R5 corrects that assumption and verifies both fitting and non-fitting weapons together.

All recorded final runs compiled native scripts, reached smoke-completed, kept source/dependency inputs unchanged and confirmed private-process cleanup. The strict engine reporter still lists installed world-resource unknown-property errors; see the raw runner output. These are local Workbench integration tests, not dedicated multiplayer or physical mouse-input certification.

tests/test_start_stock_overflow.py executes the actual stock loop with boundary substitutes for rejected/accepted/delayed/missing custom items, idempotence, required-map failure, timeout and preservation of insertion request counts. The transport test executes the extracted helper when checking readiness order. The complete repository suite passed after the change; see repository-checks.log.

Reproduce the mixed-loadout/full-start/pickup test with:

python3 docs/evidence/starting-rifles-2026-10-26/isolated-runner.py UNIQUEID --full --carbine

The runner copies sources into /tmp, uses the existing private Tools prefix and a fresh disposable profile, and does not touch a live server or installed addon.