Aux-lane suppression + PA geometry fixes; probe/verify tooling
CI / quality (push) Failing after 1m9s

MapBuilder.luau
  - Suppress the aux lane across samples 525-550 (AUX_SUPPRESS_FROM/TO),
    honoring the user's hand deletion in Studio so a rebuild no longer
    regenerates it.
  - Smoothstep the width ramp over AUX_BLEND=5 samples on each side. A hard
    cut produced a 26-stud lateral fence jog; the blend removes it.
  - DO NOT remove this suppression. Re-enabling it resurrects geometry the
    user deleted by hand.

rokit.toml
  - rojo 7.5.1 -> 7.7.0 to match the auto-updating Studio plugin.
    Server older than plugin fails the handshake with
    "attempt to index number with 'protocolVersion'".

tools/
  - 34 read-only probe/verify/capture scripts used to measure the datamodel
    instead of reasoning from source.

Verified-good baseline at this commit:
  total parts       16788
  PAWestSlip        60 segs, 34.4 deg total bend, worst 1.4, 0 kinks >5
  PAEastSlip        60 segs, 30.7 deg total bend, worst 1.3, 0 kinks >5
  AuxLane parts     30 (samples 525-550 deliberately absent)
  barrier coverage  823 samples, 0 unguarded
  fence jogs >10st  0
This commit is contained in:
2026-08-06 08:27:47 -04:00
parent c297b20aed
commit 6e50f9718d
36 changed files with 3723 additions and 1 deletions
+56
View File
@@ -0,0 +1,56 @@
-- What is actually on screen right now? Don't assume "missing" means empty --
-- distinguish (a) no Map at all, (b) Map present but stripped, (c) Map fine.
local out = {}
local function say(s) table.insert(out, s) end
say("place: " .. tostring(game.Name))
local map = workspace:FindFirstChild("Map")
if not map then
say("workspace.Map: MISSING ENTIRELY")
else
local parts, total = 0, 0
for _, d in ipairs(map:GetDescendants()) do
total += 1
if d:IsA("BasePart") then parts += 1 end
end
say(("workspace.Map: present descendants=%d parts=%d"):format(total, parts))
local kids = {}
for _, c in ipairs(map:GetChildren()) do
local n = 0
for _, _d in ipairs(c:GetDescendants()) do n += 1 end
table.insert(kids, ("%s(%d)"):format(c.Name, n))
end
say("Map children: " .. (#kids > 0 and table.concat(kids, ", ") or "NONE"))
end
-- Is anything else sitting loose in workspace?
local loose = {}
for _, c in ipairs(workspace:GetChildren()) do
if c:IsA("BasePart") or c:IsA("Model") or c:IsA("Folder") then
table.insert(loose, c.Name)
end
if #loose > 15 then break end
end
say("workspace top-level: " .. table.concat(loose, ", "))
-- Where is the camera looking? If the map exists but the camera is parked in
-- empty space, "gone from my screen" means a camera problem, not a build one.
local cam = workspace.CurrentCamera
if cam then
say(("camera pos=(%.0f, %.0f, %.0f)"):format(cam.CFrame.Position.X, cam.CFrame.Position.Y, cam.CFrame.Position.Z))
end
-- Spawn / reference point so we know where the map SHOULD be.
local ref
for _, d in ipairs(workspace:GetDescendants()) do
if d:IsA("BasePart") and d.Name:match("Deck") then ref = d break end
end
if ref then
say(("sample deck part '%s' at (%.0f, %.0f, %.0f)"):format(ref.Name, ref.Position.X, ref.Position.Y, ref.Position.Z))
else
say("no Deck part found anywhere in workspace")
end
return table.concat(out, "\n")