Railway Development Log

As some of you may know, I’ve been hired by Fed to create a train system for V3. This is where I’ll post updates and explain about the system. I’ll also answer any questions you have about the system.

First, some FAQs:

  • I don’t know how the train will be run and organized. It’s probably going to be under DOT control, but I’m not privy to DOT’s conversations about the train.
  • The train does not have a name yet, although I have proposed the name Firestone Railway Express (FRX for short).
  • The train is a light rail system and is based on the MAX of Portland and RTD of Denver.
  • The current route is a single-track loop around the island with stops in Providence, Arborfield, Greendale, Redwood, and the Airport. The route is subject to change.
  • The trains are CFramed ala Jailbreak. This is to eliminate derailments.
  • Automatic operation when train operators are not present is a hopeful feature.

First, some pictures of the route, as seen on the Discord. Note that these may not reflect the current state of the route.

The route runs parallel to 83rd ave in Providence and has a stop at Chevyrocks Blvd

The route crosses over SR 95 and runs parallel to it

The Meeting Complex station

Some of the new rail-specific signage

The route crosses over SR 98 on the way to Arborfield

As of this posting, I am working on the animation system for the train. The system to coordinate tracks is done, as is the code to move a point along the track and move between track segments.

This video shows a test configuration of the above.

The next step is to complete the animation code so the train doesn’t shrink or grow when it’s traveling along the track, and after that is the code to replicate train motion to the client for local animation.


Off topic question but are you planning to join the community here in Firestone? (Like join LE or going criminal or etc)

Well I’d like to get into DOT but they’re closed right now.


@NWSpacek Keep up the good work man, glad to see you back working with fedora


@NWSpacek Remember you from the TRC days with the cars, welcome back :+1:

1 Like

Will the crossbucks and crossing lights seen in various locations be operable/will the traffic lights at the two intersection RR crossings be somehow linked with the crossing and turn red whenever a train is crossing?
Also, will the trains be mainly mesh/blender textures or actual Roblox parts and how will this work with detecting collisions with vehicles (if you know this already)?
Anyways, looks really interesting already especially for only 2 days of work!

1 Like

The crossing gates and arms are currently setup for automatic operation only and operate on train detection. At some point in the future I will add the ability for FDOT employees to control crossings via their control boxes.

The stoplights will be tied to the train detection/pre-empt.

The construction of the train has not been determined yet.

1 Like

Sounds good :ok_hand:

This looks awesome! I can’t wait to see trains in V3!

1 Like

Just thinking already with the high amount of trollers/cop baiters in V2. What safeguards would be in place or what would happen if someone decides to sit in front of the train with their car?

I mentioned in the FAQ it’s going to be a CFramed chassis like Jailbreak. You’ll have better luck stopping the GTA V train.


‘I tried to stop the train in Roblox FS V3 - You won’t believe what happened!’


Someone give @NWSpacek a cookie :cookie:

1 Like

how long would the train block the roads

Big smoke in v3:



call it the FLUT.

https://en.wikipedia.org/wiki/South_Lake_Union_Streetcar HHAHAHAHAHAHA

Update 1: updated the animation system to plot chords and move. The significance of chords is the geometry of train cars. Train cars have two bogies, one at the front and one at the rear. The distance between those bogies is constant in world space (i.e. 3D) because there's a rigid chassis connecting the two together, but in curve space (i.e. 1D) the distance between the two increases as a curve gets sharper.

So, there’s two problems: how am I going to move the train but keep the chord distance the same? And how am I going to detect when the train reaches the end of the track, since you know there’s going to be rogue operators.

To make collision detection easy, the side the train is going towards has a constant velocity and detects if the end of the track is reached (and maybe in the future, if there is a train to couple to).
If that side of the train hits an obstacle (like the end of the track or another train), it can tell all the bogies and cars behind it to slow down so everything doesn’t crumple into an incomprehensible pile.

This is a cheat.

Simulating the trains in this manner does not represent how real trains operate, and the reason has to do with chords.

Not quite guitar chords

The front (or rear) of the train moves at a constant speed, insofar as its speed is not affected by the issue outlined below.

Trains, like cars, have front wheels and they have back wheels. The distance between those wheels is constant, because they’re connected by a steel frame that won’t shrink even if you ask real nicely.

Here’s the funny thing, when the train is moving between straight track and curved track, or between curved track and straight track, the front wheels are not spinning at the same speed as the back wheels. When entering a curve in real life, the front wheels will speed up and the rear wheels will slow down, and when exiting a curve, the front wheels will slow down and the rear wheels will speed up. This is because the distance along the curve is increasing and decreasing, even though the straight line distance is not (that straight line distance is a chord).

The reason that’s an issue is because the front of the train (or the back, if it’s reversing), goes at a constant speed in this animation system, because as much as I like realism, it’s a bit beyond what Firestone needs and just takes up valuable computation time.

You might ask why I don’t drive the train from the center, to be able to limit the speed changes caused by the chords, and the answer is collision detection, as mentioned above.

So why even bother with chords? I’ve made several CFrame train systems in the past that didn’t require this behavior. They were all for model trains, not full-size ridable trains, and did not have turning bogies. At a small scale, these oversights are exusable. But Firestone has used physics since its inception, and to have static bogies would look out of place. If I implemented turning bogies without the chord system (and relied solely on curve space), the wheels beneath the train would scrunch up underneath the train when it goes around a corner. For loose corners it might not be that noticeable, but the meeting complex corner is very sharp! It would look completely wrong if it were to happen. So I spent the whole day implementing this one feature because you guys deserve it.


I can’t wait to see this in V3. It’s going to be really nice.

1 Like

Amazing work so far on the train system, can’t believe I read that whole paragraph. Surprisingly understood some of it as well.

1 Like

trains wont work in fs, kthxbye