--[[ diag_frontjoint.luau -- is the front wheel still ATTACHED? My RWD change returns early before creating the motor hinge, which is the ONLY joint that ever connected Wheel_F* to Knuckle_F*. If nothing else joins them, the front wheels are now free-floating parts that merely start in the right place -- which would explain both observations at once: the servo turns perfectly (it has nothing to fight) AND the car generates no lateral force (the front tyres are not attached to the chassis). The same doubt applies to the earlier V7 "front motors disabled" result: Enabled=false may have freed the servo for the same wrong reason. ]] local ServerScriptService = game:GetService("ServerScriptService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local RunService = game:GetService("RunService") 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 local Shared = ReplicatedStorage:FindFirstChild("Shared") local Cars = require(Shared.Cars) local Chassis = require(Shared.Chassis) local orig = ServerScriptService:FindFirstChild("Server", true):FindFirstChild("CarManager") local clone = orig:Clone() clone.Parent = orig.Parent local CarManager = require(clone) local pad = Instance.new("Part") pad.Size = Vector3.new(6000, 8, 6000) pad.Position = Vector3.new(0, 5000, 0) pad.Anchored = true pad.Parent = workspace local padTop = pad.Position.Y + 4 local car = Cars.Get("gtr_r34") local tuning = Chassis.tuningFor(car) local model = CarManager._buildForDiag(car, tuning) model.Parent = workspace model:PivotTo(CFrame.new(0, padTop + 3, 0)) local function get(n) for _, d in ipairs(model:GetDescendants()) do if d:IsA("BasePart") and d.Name == n then return d end end end log("Joints touching each WHEEL part:") for _, wn in ipairs({ "Wheel_FL", "Wheel_FR", "Wheel_RL", "Wheel_RR" }) do local w = get(wn) local found = {} for _, d in ipairs(model:GetDescendants()) do local p0, p1, kind if d:IsA("WeldConstraint") then p0, p1, kind = d.Part0, d.Part1, "Weld" elseif d:IsA("Constraint") then p0 = d.Attachment0 and d.Attachment0.Parent p1 = d.Attachment1 and d.Attachment1.Parent kind = d.ClassName .. "/" .. d.Name end if p0 and p1 and (p0 == w or p1 == w) then found[#found + 1] = string.format("%s(%s<->%s)", kind, p0.Name, p1.Name) end end log(string.format(" %-10s %s", wn, #found > 0 and table.concat(found, " ") or "*** NO JOINTS -- DETACHED ***")) end -- Drop test: a detached wheel will not follow the body when the body is moved. log("") log("TELEPORT TEST (move body 300 studs; attached wheels follow):") local body = model.PrimaryPart for _ = 1, 60 do RunService.Heartbeat:Wait() end local before = {} for _, wn in ipairs({ "Wheel_FL", "Wheel_RL" }) do before[wn] = get(wn).Position end model:PivotTo(model:GetPivot() * CFrame.new(0, 0, -300)) for _ = 1, 60 do RunService.Heartbeat:Wait() end for _, wn in ipairs({ "Wheel_FL", "Wheel_RL" }) do local w = get(wn) local moved = (w.Position - before[wn]).Magnitude log( string.format( " %-10s moved %7.1f studs %s", wn, moved, moved > 100 and "followed the car" or "*** LEFT BEHIND (detached) ***" ) ) end model:Destroy() pad:Destroy() clone:Destroy() return table.concat(out, "\n")