--[[ shot_shells.luau -- render the built cars for visual confirmation. Numeric cues have now been wrong twice in this investigation (wheel-name probes silently matched the chassis; the "asym" proxy gave verdicts that contradicted the boot cue). The boot check is self-consistent but cannot judge hatch_junk or hyper_x -- which are precisely the two cars in question. So look at them. Places all five cars in a row, all facing the SAME chassis direction (forward = -Z), and points a camera down the row from the side. On a correct fleet every nose points the same way; a backwards shell is obvious. Leaves the cars in Workspace under a folder so a screenshot can be taken from Studio. ]] local ServerScriptService = game:GetService("ServerScriptService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local RunService = game:GetService("RunService") local Shared = ReplicatedStorage:FindFirstChild("Shared") local Cars = require(Shared.Cars) local Chassis = require(Shared.Chassis) local orig = ServerScriptService:FindFirstChild("Server", true):FindFirstChild("CarManager") local cm = orig:Clone() cm.Parent = orig.Parent local CarManager = require(cm) local old = workspace:FindFirstChild("ShellReview") if old then old:Destroy() end local folder = Instance.new("Folder") folder.Name = "ShellReview" folder.Parent = workspace local pad = Instance.new("Part") pad.Size = Vector3.new(200, 4, 120) pad.Position = Vector3.new(0, 4998, 0) pad.Anchored = true pad.Color = Color3.fromRGB(70, 70, 75) pad.Material = Enum.Material.SmoothPlastic pad.Parent = folder local out = {} local i = 0 local ids = {} for _, t in ipairs(ReplicatedStorage.CarModels:GetChildren()) do table.insert(ids, t.Name) end table.sort(ids) for _, id in ipairs(ids) do local car = Cars.Get(id) if car then local m = CarManager._buildForDiag(car, Chassis.tuningFor(car)) m.Name = "car_" .. id m.Parent = folder -- All cars share one orientation: forward = -Z, i.e. identity rotation. m:PivotTo(CFrame.new(-60 + i * 30, 5003, 0)) for _, p in ipairs(m:GetDescendants()) do if p:IsA("BasePart") then p.Anchored = true end end -- Label above each car so the screenshot is self-describing. local sign = Instance.new("Part") sign.Size = Vector3.new(0.2, 0.2, 0.2) sign.Transparency = 1 sign.Anchored = true sign.CanCollide = false sign.Position = Vector3.new(-60 + i * 30, 5010, 0) sign.Parent = folder local gui = Instance.new("BillboardGui") gui.Size = UDim2.new(0, 260, 0, 60) gui.AlwaysOnTop = true gui.Parent = sign local lbl = Instance.new("TextLabel") lbl.Size = UDim2.fromScale(1, 1) lbl.BackgroundTransparency = 0.3 lbl.BackgroundColor3 = Color3.new(0, 0, 0) lbl.TextColor3 = Color3.new(1, 1, 1) lbl.TextScaled = true lbl.Font = Enum.Font.GothamBold lbl.Text = id lbl.Parent = gui table.insert(out, id) i += 1 end end for _ = 1, 10 do RunService.Heartbeat:Wait() end -- Side-on camera: looking along +X at the row, so every nose should point -- to the SAME side of frame (screen left = -Z). local cam = workspace.CurrentCamera if cam then cam.CameraType = Enum.CameraType.Scriptable cam.CFrame = CFrame.lookAt(Vector3.new(0, 5022, 78), Vector3.new(0, 5004, 0)) end cm:Destroy() return "placed: " .. table.concat(out, ", ") .. "\nAll cars share forward = -Z (screen LEFT in this view)." .. "\nCamera set side-on. Every nose should point the same way."