Aux-lane suppression + PA geometry fixes; probe/verify tooling
CI / quality (push) Failing after 1m9s
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:
@@ -0,0 +1,61 @@
|
||||
-- Does the game actually RUN? Exercise the real server startup path and report
|
||||
-- the first genuine error, rather than guessing from static analysis.
|
||||
local RS = game:GetService("ReplicatedStorage")
|
||||
local SS = game:GetService("ServerScriptService")
|
||||
local out = {}
|
||||
local function say(s) table.insert(out, s) end
|
||||
|
||||
-- 1. Are the Rojo-synced trees actually present in the DataModel?
|
||||
local shared = RS:FindFirstChild("Shared")
|
||||
say("ReplicatedStorage.Shared: " .. (shared and "present" or "MISSING"))
|
||||
if shared then
|
||||
local names = {}
|
||||
for _, c in ipairs(shared:GetChildren()) do table.insert(names, c.Name) end
|
||||
table.sort(names)
|
||||
say(" modules: " .. table.concat(names, ", "))
|
||||
end
|
||||
|
||||
local server = SS:FindFirstChild("Server") or SS:FindFirstChild("TS")
|
||||
say("ServerScriptService children:")
|
||||
for _, c in ipairs(SS:GetChildren()) do
|
||||
say((" %s (%s)"):format(c.Name, c.ClassName))
|
||||
end
|
||||
|
||||
-- 2. Try requiring every shared + server module. Report the FIRST failure with
|
||||
-- its message -- this is what actually stops a playtest.
|
||||
local function tryRequire(inst)
|
||||
local ok, err = pcall(function() return require(inst) end)
|
||||
return ok, err
|
||||
end
|
||||
|
||||
say("--- require sweep ---")
|
||||
local failures = 0
|
||||
local tested = 0
|
||||
for _, root in ipairs({ shared, server }) do
|
||||
if root then
|
||||
for _, m in ipairs(root:GetDescendants()) do
|
||||
if m:IsA("ModuleScript") then
|
||||
tested += 1
|
||||
local ok, err = tryRequire(m)
|
||||
if not ok then
|
||||
failures += 1
|
||||
say(("FAIL %s: %s"):format(m:GetFullName(), tostring(err):sub(1, 300)))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
say(("required %d modules, %d failed"):format(tested, failures))
|
||||
if tested == 0 then say("CONTROL FAIL: nothing was required -- wrong scope") end
|
||||
|
||||
-- 3. Script instances that would run on play, and whether any are disabled.
|
||||
say("--- scripts ---")
|
||||
for _, d in ipairs(game:GetDescendants()) do
|
||||
if (d:IsA("Script") or d:IsA("LocalScript")) and not d:IsDescendantOf(workspace) then
|
||||
if d.Name:match("init") or d:IsDescendantOf(SS) then
|
||||
say((" %s (%s) disabled=%s"):format(d:GetFullName(), d.ClassName, tostring(d.Disabled)))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return table.concat(out, "\n")
|
||||
Reference in New Issue
Block a user