Skip to content

bergerhealer/TrainCarts

Repository files navigation

⤓ Modrinth / ⤓ Spigot / ⤓ Jenkins Dev Builds / Source on GitHub / Javadocs / Discord

About TrainCarts

Trains in Minecraft! Automated metro networks, rollercoasters, gondolas, ski-lifts or amusement park rides. TrainCarts does it all with support for custom models, animations, automation with signs and a large API that supports add-ons that can do even more!

This plugin requires BKCommonLib

Join our discord server for help: https://discord.gg/wvU2rFgSnw

Please do not use very old versions with older versions of Minecraft. The latest release of TrainCarts and BKCommonLib are backwards-compatible with older Minecraft versions.

Discover how to use this plugin over at https://wiki.traincarts.net/p/TrainCarts

Custom Trains

With the Attachment Editor you can customize the appearance of your trains. Create custom cart models in Blockbench and ride inside them in-game. Large models are possible by adding multiple sections of a model as separate (Armorstand) item models. TrainCarts will do the animating for you and move the parts as a whole.

Recommended reading before going into this: Custom Item Models in 1.9 and Up

Ingame Map Editor

Animations

For custom ride enthusiasts, trains can be fully animated. This means you can have doors that open and close, carts that spin around, or even create theme park rides like Ferris wheels, spinners and merry-go-rounds!

Demo Resource Pack

TrainCarts has a demo resource pack that you can download that includes a couple of train and rollercoaster cart models. You can already play around with these without having to delve into Blockbench yourself

The locomotive and carriages were made by Nullblox. Maxi made the different color rollercoaster carts.

Installation Instructions 1.19.3

Option A Configure the resource pack in server.properties

The preferred way is to configure the resource pack on the server end. This way not only will clients automatically load the resource pack, Traincarts can read the resource pack and show the models ingame in the attachment editor. This also makes the models listable under /train model search and automatically loads the saved trains from them.

resource-pack=http://resourcepack.host/dl/7WhMys1sduesiVlWz0m521zXkg5OU46L/TrainCarts_Demo_TP_v4.zip
resource-pack-sha1=CB87E9E06E3CC72627F5A9A597688845CA3C3CD4

Option B Download the resource pack and host it yourself

Download it from Dropbox here

Host the zip file somewhere on a FTP, your own server, a public resource pack host or some form of cloud storage that allows for a direct download. Then add the URL to your server.properties:
resource-pack=https://your-domain/path/to/TrainCarts_Demo_TP_v4.zip

Installation Instructions (Old Minecraft Versions)

1. Download the resource pack

Download it from Dropbox here

2.A: Host it

Host the zip file somewhere on a FTP, your own server, a public resource pack host or some form of cloud storage that allows for a direct download. Then add the URL to your server.properties:
resource-pack=https://your-domain/path/to/TrainCarts_Demo_TP_v3.zip

This is the recommended way, as this way the train models also show properly inside the attachment editor.

2.B: Enable it in your client

You can follow this tutorial on the Minecraft Wiki to install the zip file as a resource pack in your Minecraft client.

Important note: you will get a warning about the resource pack being outdated, but it works just fine on modern versions of Minecraft. That warning can be ignored.

3. Download the train configurations

Download a zip file with the configuration from Dropbox here

4. Extract the zip file

Extract the zip file, you should now have a fairly large tcdemo.yml file. This file is going to be installed on the server.

5. Install the tcdemo.yml

Install this file at plugins/Train_Carts/savedTrainModules/tcdemo.yml

6. Reload saved trains

Either restart the server, or use /train globalconfig reload --savedtrainproperties


Usage Instructions

Spawn the trains

The new models are bound to durability values of the golden pickaxe. You can spawn these trains using:

The following train names can be spawned

  • loco - Spawns locomotive without animations
  • carr / carg / carb - Spawns red/green/blue carriages without animations
  • loco_anim - Spawns locomotive with animated wheels and pistons
  • carr_anim / carg_anim / carb_anim - Spawns red/green/blue carriages with animated wheels
  • ferris - Animated Ferris wheel, use animation 'spin' to control it (WARNING: VERY LAGGY)
  • spinner - Animated spinning ride with 3 controllable animations ('spin', 'turn' and 'arm')
  • rolr / rolg / rolb - Rollercoaster carts with 4 seats

Physics

Trains don't just follow a line or are limited by Minecraft's own Minecart physics. They are simulated in real-time with gravity physics, rail switching and wheels that track the rails.

New Speed Limits

It is possible to make trains move much faster than the usual 0.4 blocks per tick. Zoom! The default (configurable) maximum speed limit is 5 blocks per tick (300kph!).

Keep Chunks Loaded

Trains can be set to keep chunks loaded. Then they act as moving chunk loaders, keeping themselves and a small area around them loaded and animated. This way they can run autonomously, no matter if no players are nearby.

Waiter

Make trains automatically slow down or stop completely when another train or occupied mutex zone is up ahead. An acceleration and/or deceleration can be set to make trains stop and start realistically to avoid obstacles.
➦Wiki

Properties

There are lots of other properties to change the train's behavior, and more are added all the time.

  • Banking, gravity and friction: create realistic rollercoaster rides, or turn it off entirely
  • Collision: change whether mobs enter automatically, or what happens when a player collides with a train
  • Player enter and exit: Whether players can get in or out of your train
  • Change view distance of the occupants (Paper server only)
  • Tags: tag a train and route it through the train network, or do special things to it along the way

➦Wiki

Sign Actions

Signs placed along the rails are used to make the trains do things. Change train properties, launch trains, create stations or automatically switch junctions. With an extendable API anything is possible.
➦Wiki

Path Finding

Make your train network come alive with trains that automatically travel to destinations all over your Minecraft world.
➦Wiki

Commands

Everything that can be done with sign actions, and more, can also be done using commands.
➦Wiki

Selector Support

Use the @ptrain selector to use the player passengers of a train as an argument in other (non-TrainCarts) commands. Or use @train to perform actions on multiple trains at once. Trains can be selected by cuboid, distance, set properties and many more.
➦Wiki

Featured

This plugin uses the Cloud Command Framework for handling commands

If you're impressed by the quality of TrainCarts' command auto-completions, suggestions and help menu and want this in your plugin, check out Cloud by Incendo!

Addons

TrainCarts exposes an API that allows third parties to extend the plugin. Primarily it adds support for new rail types, new attachment types and custom action signs.

  • TC-Hangrail: Trains floating below iron fences and also below/above other kinds of blocks (by TeamBergerhealer)
  • TC-Coasters: Rails in the air without requiring actual rails blocks (by TeamBergerhealer)
  • SmoothCoasters: Minecraft Client Fabric mod that, if installed, smoothens armor stand animations and improves the first-person camera view
  • TCTicketShop: Use sign interaction to buy train tickets (by DefinitlyEvil)
  • LightAPI: Powers the built-in Light attachment. (Use this fork for MC 1.17.1 and below)
  • TCJukebox: Plays music for players inside the train using MCJukebox (by melerpe)
  • TC-Portals: Teleport trains between servers in a realistic way (by J0schlZ)

FAQ

When some players ride a train, the train glitches out and the player's cart gets stuck in position

NoCheatPlus thinks the player is cheating, because the cart is moving in unintended ways. The cart is teleported back to a valid state causing these strange glitches. To fix this, set the following to false in the NoCheatPlus configuration:

checks:
  moving:
    vehicle:
        enforcelocation: false
I'm on Minecraft 1.16 and players can get out of my playerexit=false train by pressing shift

Sadly, the Minecraft client had a bug in it where the server could not cancel players exiting from vehicles. Updating to Minecraft 1.17+ will fix this again. See also: SPIGOT-5891

When players are near, trains reach their destinations. With no one near, they don't.

Enable the keep chunks loaded property of the train.

I created an auto-spawner but trains are piling up somewhere closeby

Enable the keep chunks loaded property of the train. Trains will otherwise unload in the same spot when no player is near.

When I exit a train, the train disappears

If you have CraftBook installed on the server, this plugin can actually do exactly that. Turn it off in the CraftBook Configuration.

Donate

If you really like my work and want to give something in return, feel free to donate something small to me over PayPal using the button down below. Thank you! :)