fix: car now drives - collision groups, rigid hubs, pad spawn, anticheat grace
Four independent bugs kept the car immobile at the world origin: 1. Wheels collided with their own chassis. Wheel inner edge sits at 2.80 vs body edge 3.00, and wheel top -0.20 vs body bottom -0.70. The overlap is intentional styling, but in one collision group the wheels ground against the body: motors spun ~1 rad/s against 20,000 torque. Wheels now use a CarWheel group that ignores CarChassis. 2. Suspension exploded on spawn. PrismaticConstraint+SpringConstraint between a 0.6-stud hub and the ballasted body was unstable enough to fling knuckles ~10,000,000 studs out, past FallenPartsDestroyHeight, deleting the wheels. Replaced with a rigid welded hub mount. 3. Car spawned at world origin, not the pad. MapBuilder made a SpawnPad part but no SpawnLocation, so characters spawned at (0,0,0) and Sit() dragged the car to them. Added a real SpawnLocation and the model is now pivoted after parenting, with the character teleported first. 4. AntiCheat snapped that legitimate spawn teleport back. An ~8,500-stud server move reads as a teleport hack. Added AntiCheat.grant() so server-initiated moves are exempt for a short grace window. Verified in Studio: 881 studs in 6s, 496 studs/s top speed, 152 deg steering, braking 33 -> 0 studs/s, chassis stays upright.
This commit is contained in:
@@ -333,6 +333,21 @@ local function buildPA(map: Folder)
|
||||
})
|
||||
pad.Parent = pa
|
||||
|
||||
-- Roblox drops the character at (0,0,0) unless a real SpawnLocation exists,
|
||||
-- and CarManager spawns the car onto the character -- so without this the
|
||||
-- player starts ~8,600 studs off-circuit regardless of where SpawnPad is.
|
||||
-- Neutral + non-collidable so it never becomes an obstacle on the pad.
|
||||
local spawnLoc = Instance.new("SpawnLocation")
|
||||
spawnLoc.Name = "PASpawn"
|
||||
spawnLoc.Size = Vector3.new(24, 1, 24)
|
||||
spawnLoc.CFrame = CFrame.new(c + Vector3.new(0, 2, 0))
|
||||
spawnLoc.Transparency = 1
|
||||
spawnLoc.CanCollide = false
|
||||
spawnLoc.Anchored = true
|
||||
spawnLoc.Neutral = true
|
||||
spawnLoc.Duration = 0
|
||||
spawnLoc.Parent = pa
|
||||
|
||||
makeSign("大黒PA DAIKOKU PA", CFrame.new(c + Vector3.new(0, 26, -R + 10)), pa)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user