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
+40
View File
@@ -0,0 +1,40 @@
-- Which Studio is the bridge actually driving, and can that place be PLAYED?
local out = {}
local function say(s) table.insert(out, s) end
say("place name: " .. tostring(game.Name))
say("PlaceId: " .. tostring(game.PlaceId))
say("GameId: " .. tostring(game.GameId))
local RS = game:GetService("RunService")
say("IsEdit: " .. tostring(RS:IsEdit()) .. " IsRunning: " .. tostring(RS:IsRunning()) ..
" IsClient: " .. tostring(RS:IsClient()) .. " IsServer: " .. tostring(RS:IsServer()))
-- Is the map present, and is there anything to actually spawn onto?
local m = workspace:FindFirstChild("Map")
say("workspace.Map: " .. (m and (#m:GetDescendants() .. " descendants") or "MISSING"))
say("SpawnLocations: ")
local spawns = 0
for _, d in ipairs(workspace:GetDescendants()) do
if d:IsA("SpawnLocation") then
spawns += 1
say((" %s at %s"):format(d:GetFullName(), tostring(d.Position)))
end
end
if spawns == 0 then say(" NONE -- a playtest has nowhere to spawn the character") end
-- StarterPlayer/StarterGui presence (a play session needs these to not error)
for _, svc in ipairs({ "StarterPlayer", "StarterGui", "StarterPack", "Players", "Lighting" }) do
local ok, s = pcall(function() return game:GetService(svc) end)
say(("service %s: %s"):format(svc, ok and "ok" or "FAIL"))
end
-- Rojo connection state: is the synced source actually in this place?
local SS = game:GetService("ServerScriptService")
local srv = SS:FindFirstChild("Server")
say("ServerScriptService.Server: " .. (srv and srv.ClassName or "MISSING"))
if srv then
local mb = srv:FindFirstChild("MapBuilder")
say(" MapBuilder present: " .. tostring(mb ~= nil))
end
return table.concat(out, "\n")