After introducing a new boat system to our game, we began experiencing severe server performance degradation on live servers. While all internal testing, including multiplayer sessions, showed no issues, production servers began to exhibit frame rate drops to nearly 0 FPS after a period of uptime.
Upon investigation, we identified a consistent and critical symptom: a gradual increase in ContactsCount, reaching values of 200,000+, whereas prior to this update it consistently remained at or near zero.
Reproduction:
- Environment: Live servers (not reproducible in Studio or test environments)
- Trigger: Unknown — occurs gradually over time following boat usage
- Persistence: Performance degradation continues even after all boats are destroyed, and
ContactsCountdoes not decrease
Diagnostics & Observations:
We performed diagnostics on affected servers and compared them to unaffected (pre-boat) servers using MicroProfile. Key findings include:
-
Substantial increase in:
updateNOUOwnersStep Contacts
-
ContactsCountincreases over time and does not reset, even after boat models are removed
Attachments:
- Affected Server (with boats): https://devforum-uploads.s3.dualstack.us-east-2.amazonaws.com/uploads/original/5X/1/f/e/f/1fef1568c4c9d47ccd238086b6721ab3e0dd21d9.html
- Healthy Server (no boats): https://devforum-uploads.s3.dualstack.us-east-2.amazonaws.com/uploads/original/5X/8/c/3/9/8c3946aa63a8c048d020e7bb7f90d4cf64830d9e.html
- Sample Boat Model:
Boat.rbxm (59.6 KB)
Boat System Details:
- Based on a heavily modified version of a public boat chassis
- Most computational logic is offloaded to the client
- Boats use Roblox terrain water for collision
- Network ownership is set to clients where possible
Key configurable parameters in the chassis include:
AccelerationInSecondsDockingMultiplierGyroTorqueMultiEngineThrottleMultiplierTurnMultiplier
Troubleshooting Performed:
- Reproduced issue only in live server environments
- Tested with multiple users and sessions in Studio – no issues observed
- Destroyed all boats mid-session –
ContactsCountand lag persisted - No observed memory leaks or runaway physics instances via internal logging
We’ve conducted additional testing using a completely different boat system (unrelated to our original implementation), and we are still experiencing the same issue — server performance degradation over time, with ContactsCount steadily increasing.
This strongly suggests that the problem is not tied to the specific boat chassis or codebase, but rather to something more fundamental — potentially physics interactions with water or terrain-based collisions.
Additional Observations: The issue only seems to occur when players interact with water (e.g., entering boats, physics-based objects floating, etc.)
In test environments (Studio or isolated multiplayer tests), the problem remains non-reproducible In production, the issue reliably appears over time.
The affected experience is linked: [BOATS!] Fire Response: Kenterbury - Roblox