Files
tokyo-wangan-racing/tools/diag_editstate.luau
T
jesse c8dabea53a Daikoku PA: lift mainline over the apron, rebuild both ramps
The PA ring road and the expressway mainline were both at ground level, so
the ring parapet stood INSIDE the carriageway (measured -10.0 studs of
vertical overlap: a wall in the middle of the road).

Reference photos of the real Daikoku Futo PA show the expressway flying
OVER the parking apron on pillars, with the PA at ground level and ramps
climbing up to meet it. Rebuilt to match:

- mainline lifted 38 studs through the junction, eased in/out (max 5.26%
  grade, within real expressway limits)
- PA ring + apron stay at ground level; legacy PARingPillar props removed
- both on/off ramps regraded over the full rise with smoothstep easing,
  segments overlapped 3 studs so wheels can't catch a seam, plus support
  pillars and edge kerbs where the deck is high

Verified in-engine against built parts (tools/diag_daikoku.luau), not just
source: clearance now +28.0 studs, both ramps continuous (max step 5.62,
no gaps). tools/plot_daikoku.py renders the plan/section for comparison.
2026-08-02 15:56:13 -04:00

73 lines
2.4 KiB
Luau

--[[
diag_editstate.luau -- read CarManager in the EDIT datamodel.
This is the datamodel that PERSISTS (unlike Play, which is a sandbox that
is discarded on stop -- the thing that silently ate every previous push).
Purpose: capture a BEFORE snapshot so that after Rojo connects we can prove
the sync actually replaced the source, rather than assuming it did. Records
length and the two markers unique to the current fixes:
SHELL_YAW_OVERRIDE -> facing fix for hatch_junk / hyper_x (NEW, x3 in src)
bestVol -> pre-existing var, NOT a freshness signal (x6 in src)
Note bestVol existed in the old code too (git HEAD line 479), so it proves
nothing on its own -- SHELL_YAW_OVERRIDE is the real discriminator.
Disk source is 41650 bytes; anything at 30631 is the old pre-fix version.
]]
local ServerScriptService = game:GetService("ServerScriptService")
local out = {}
local function log(...)
local parts = {}
for i = 1, select("#", ...) do
parts[#parts + 1] = tostring((select(i, ...)))
end
table.insert(out, table.concat(parts, " "))
end
log("=== EDIT datamodel: CarManager state ===")
local found = {}
for _, d in ipairs(ServerScriptService:GetDescendants()) do
if d:IsA("ModuleScript") and d.Name == "CarManager" then
found[#found + 1] = d
end
end
log("instances found: " .. #found)
if #found == 0 then
log(" !! no CarManager in ServerScriptService at all")
log(" Rojo sync will CREATE it under ServerScriptService.Server")
end
for _, m in ipairs(found) do
local src = ""
pcall(function()
src = m.Source
end)
local hasOverride = src:find("SHELL_YAW_OVERRIDE", 1, true) ~= nil
log(string.format(" %s", m:GetFullName()))
log(string.format(" len=%d (disk source = 41650, old = 30631)", #src))
log(string.format(" SHELL_YAW_OVERRIDE=%s <-- the real freshness marker", tostring(hasOverride)))
log(string.format(" verdict: %s", hasOverride and "FIXED source present" or "OLD pre-fix source"))
end
-- Also note whether the stale proof marker survived (it should NOT have --
-- it only ever existed in the discarded Play sandbox).
local marker = nil
for _, d in ipairs(workspace:GetDescendants()) do
if d.Name == "HERMES_PROOF_MARKER" then
marker = d
break
end
end
log("")
log(
"HERMES_PROOF_MARKER in Edit: "
.. (marker and "present (unexpected)" or "absent (expected - Play sandbox discarded)")
)
return table.concat(out, "\n")