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
40 lines
1.5 KiB
Luau
40 lines
1.5 KiB
Luau
-- Is Studio actually CONNECTED to the Rojo server, or is it showing a stale
|
|
-- snapshot? A place can contain MapBuilder from an old sync and still be
|
|
-- disconnected, which is how you end up testing yesterday's geometry.
|
|
local out = {}
|
|
local function say(s) table.insert(out, s) end
|
|
|
|
-- Rojo's plugin leaves session state in the DataModel; look for its markers.
|
|
local found = {}
|
|
for _, d in ipairs(game:GetDescendants()) do
|
|
local n = d.Name
|
|
if n:match("Rojo") or n:match("ROJO") then
|
|
table.insert(found, ("%s (%s)"):format(d:GetFullName(), d.ClassName))
|
|
end
|
|
if #found > 12 then break end
|
|
end
|
|
say("Rojo-named instances: " .. (#found > 0 and table.concat(found, ", ") or "NONE FOUND"))
|
|
|
|
-- Does the in-place MapBuilder source contain the fix I just made? This is the
|
|
-- real test of whether the running place is current.
|
|
local SS = game:GetService("ServerScriptService")
|
|
local mb
|
|
for _, d in ipairs(SS:GetDescendants()) do
|
|
if d:IsA("ModuleScript") and d.Name == "MapBuilder" then mb = d end
|
|
end
|
|
if mb then
|
|
local ok, src = pcall(function() return mb.Source end)
|
|
if ok and type(src) == "string" then
|
|
say("MapBuilder source length: " .. #src)
|
|
say("has PARALLEL_RUN (today's ramp fix): " .. tostring(src:find("PARALLEL_RUN") ~= nil))
|
|
say("has PA_AUX_DECEL (decel lanes): " .. tostring(src:find("PA_AUX_DECEL") ~= nil))
|
|
else
|
|
say("could not read MapBuilder.Source (permission): " .. tostring(src))
|
|
end
|
|
else
|
|
say("MapBuilder NOT FOUND")
|
|
end
|
|
|
|
say("place: " .. tostring(game.Name))
|
|
return table.concat(out, "\n")
|