Skip to content

Commit 1a3d735

Browse files
committed
feat: limit stepped rate to < 60hz
1 parent ade294b commit 1a3d735

2 files changed

Lines changed: 12 additions & 2 deletions

File tree

src/landvehicle/src/Client/Classes/Suspensions/WheelVehicleSuspensionClient.luau

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ local WheelVehicleUtils = require("WheelVehicleUtils")
1515

1616
local MAX_HEIGHT_PERCENTAGE = 0.8
1717
local FORCE_TO_MASS_CAP = math.huge -- 2 * workspace.Gravity -- Force to mass ratio cap, used to prevent unrealistic forces
18+
local STEPPED_INTERVAL = 1 / 60
1819

1920
local Suspension = setmetatable({}, BaseObject)
2021
Suspension.ClassName = "Suspension"
@@ -25,6 +26,7 @@ export type Suspension = typeof(setmetatable(
2526
_config: WheelVehicleTypes.SuspensionConfig,
2627
_links: WheelVehicleUtils.Links,
2728
_sign: number,
29+
_elapsedDeltaTimeSim: number,
2830
_vehicleObj: Model,
2931
_topLinkHeight: number,
3032
_lastHeight: number,
@@ -55,6 +57,7 @@ function Suspension.new(vehicleObj: Model, config: WheelVehicleTypes.SuspensionC
5557
self._sign = -1
5658
end
5759

60+
self._elapsedDeltaTimeSim = 0
5861
self._lastHeight = 0
5962
self._topLinkHeight = 0
6063
self._maxForce = 0
@@ -96,9 +99,16 @@ function Suspension.SetConstants(self: Suspension)
9699
self._maxForce = FORCE_TO_MASS_CAP * self._vehicleObj.PrimaryPart.Mass / 4
97100
end
98101

99-
function Suspension.UpdateStepped(self: Suspension, deltaTimeSim: number)
102+
function Suspension.UpdateStepped(self: Suspension, subDeltaTimeSim: number)
100103
debug.profilebegin("WheelVehicleSuspension:UpdateStepped")
101104

105+
self._elapsedDeltaTimeSim += subDeltaTimeSim
106+
if self._elapsedDeltaTimeSim <= STEPPED_INTERVAL then
107+
return
108+
end
109+
local deltaTimeSim = self._elapsedDeltaTimeSim
110+
self._elapsedDeltaTimeSim = 0
111+
102112
local contactLinkPosition = self._links.contactLink.WorldPosition
103113
local topLinkPosition = self._links.topLink.WorldPosition
104114

src/landvehicle/src/Shared/WheelVehicleConstants.luau

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ local DEFAULT_SUSPENSION_CONFIG = { -- Example right side suspension config.
2121
pivotPoint = CFrame.new(),
2222
spring = {
2323
stiffness = 4500,
24-
damping = 400,
24+
damping = 300,
2525
extraLength = 0.5,
2626
radius = 0.2, -- Visually, the radius of the coil strip
2727
},

0 commit comments

Comments
 (0)