I’ve been working on a train simulator named LTA: Strongstead Island RR since 2021, which is based on the bustling North American commuter rail system, Long Island Rail Road in NY/Long Island. I’ve equipped my train, the LinearVelocity, with sufficient power and a realistic suspension system, as well as efficient couplers. The game operates with a gravity setting of 35, which is equivalent to real-world gravity, to ensure a smooth suspension experience. However, despite these efforts, the train remains unstable, exhibiting stuttering, jumping, and erratic behavior, particularly during acceleration.
I’ve tried several methods to resolve this issue, but only achieved a success rate of 30-80%. These attempts include increasing the weight of the train, improving the coupler’s efficiency, reducing the weight of the bogies, and even increasing the gravity setting. While these efforts have reduced the instability to some extent, the problem persists.
This is how the train is supposed to run:
Good to hear, Although I don’t recommend using springs for your suspension as they are unreliable, use terrible ROBLOX physics and could potentially be a serious optimisation issue. I recommend learning about raycasting and CFrame train driving systems.
I don’t understand what’s the deal with CFrame. Physics is easier and it’s way better in my opinion. I like realism, CFrame is bland to me. I think CFrame would be better for something more simple other than a Driving System.
CFrame allows for more customization. You can work with a lot of different properties to how you like. Physics does work your for your case, but I feel it would be a good experience to learn CFrame as roblox continued to improve its physics.
By Cframe do you mean Raycast or are they different things? I’m not familiar with neither of them so I don’t know if they are two different things that go by hand or if they’re the same.
CFrame based trains have their positions changed so if a player was standing inside it they wouldn’t change position and remain in the same place, even though the train is “moving” it doesn’t use physics so the actual speed is 0, the position is being updated, that’s usually it. To fix this i recommend using AssemblyLinearVelocity for each floors in each cars so that way the train can still “move” while
players don’t glitch and be stuck in the same position.
also raycasts are better than .Touched for CFrame trains as CFrame trains cannot use .Touched, because an object being CFramed is simply having its position and orientation changed, so there’s no physical interaction with other objects.