How would I go about scripting an automated train system?

I’m designing a city at the moment, and I plan for a people mover / metro system that obviously;

- Stops at stations, opens its doors and waits for a specified amount of time
- Slows down before stopping, and speeds up on straights
- Moves smoothly
Most importantly, follows the track.

I’m the textbook definition of a beginner scripter, most I know about is bare basics such as click detectors

I’m aiming to base my system on the sydney metro system.

I don’t really need a premade script, I would just like to know what I should know first, what types of functions/scripts to use, and how to eventually piece it together, i’d love to learn.

Thanks.

- Moves smoothly
Use TweenService to move the train smoothly.
https://developer.roblox.com/en-us/api-reference/class/TweenService

- Slows down before stopping, and speeds up on straights
You can change the tween speed to accomplish this.

- Stops at stations, opens its doors and waits for a specified amount of time
You can end the tween to stop it. To open the doors, you can tween them open if you want it smooth, or use position to open them. To wait, use the wait() function.
https://developer.roblox.com/en-us/api-reference/lua-docs/Roblox-Globals

Thanks, i’ll try my best to produce results.