A rail transit system with pathfinding, item transportation and anticollision.
A cart with a player, or a storage cart, with a ticket in inventory, will be routed through the network to the destination station matching the station name.
Bytecart provides automatic intersections, smart pathfinding and multi-user capability to rail systems, giving the possibility to join thousands of stations with a cart in a secure and reliable manner accross a Minecraft world and beyond. Moreover, autonomous storage carts can travel in the network with no player interaction.
See what ByteCart can do for your community:
ByteCart enhances your cart system to a new level, allowing to build a service of automatic transportation of players and goods to hundreds or thousands of stations connected together. ByteCart aims to provide a
reliable player-oriented transportation service.
ByteCart networks can cross all kind of gates transparently: since information is stored in books in inventory, all gate implementations that provide player and/or storage cart ability to cross the gates with all its content are compatible with ByteCart. This works with cross-world gates and cross-server gates.
ByteCart works with BungeeCoord portals. Extending the network to other servers is possible, providing that gates exist between servers.
While other plugins are centered on minecart as a vehicle, ByteCart has a global view of a railed network, where carts are managed. ByteCart applies the principles of Internet network : each part of a ByteCart system has a limited part of calculation to switch the carts to the right direction. It was made
simple, cheap and scalable. Bytecart provides the ability to build a small rail system and extend it to a worldwide transportation network without transformation work, and at a very small cost of CPU and memory.
By storing a ticket directly in the inventory of a player or a storage cart, Bytecart can manage
trips with no player interaction. Moreover, ByteCart can manage trains to transport wagons full of anything.
ByteCart cart system is resilient to server crash, trip interruption or whatever trip incident (unfortunately, some trains may be broken after a server crash and loose wagons).
All pathfinding data are embedded in game, and pathfinding algorithm is distrubuted among the nodes of the network. Trips do not depend on a path computed and stored in memory at start. Players are free to interrupt their trip forever or for a while, and continue later.
ByteCart provides collision-avoidance embedded features. The collision management layer is in charge of collision prevention in every sensitive location. Trips may be longer, but
delivery is guaranteed without user interaction.
ByteCart is really helpful if you plan to offer to your players a real and reliable transportation system for them and their material, with easy extension up to millions of stations, and low resource consumption.
Bytecart provide some tools to automatically setup the configuration of the network, so that players don't have to learn network skills.
There is a little cost to pay before using ByteCart : building the network and the devices described in this wiki, at intersections and stations. Building a small network without anti-collision feature is very easy : a tutorial is available. Some IT skills in LAN design are welcome if you plan to build a huge network or make weird things.
Installation
Dependency
You will nedd to install SQLibrary (https://dev.bukkit.org/projects/sqlibrary)
Installation
Download ByteCart.jar and drop it in your plugin folder. If you want to use the dynmap layer, install dynmap now.
Restart your server. Open ByteCart folder and edit config.yml to fit parameters to your needs (default parameters are OK for most servers). Restart your server again.
Features
- Routing layer that enables pathfinding and automatic intersection switching
- Anticollision layer that guarantees secure transportation of players and goods in a multi-user world
- Address layer to attach an address to each station
- Station name database (sqllite or external mysql) with automatic name resolution
- Compatible with BungeeCoord
- Compatible with TrainCarts trains
- Compatible with Vehicles !
- Dynmap layer with stations
- Utility blocks to manage trains and other stuff
- Commands to configure and use the network
- Compatible with PermissionEx
- API for developpers
Compatibility
ByteCart is compatible with TrainCarts but
DON'T USE TRAINCARTS PATHFINDING. ByteCart is a pathfinding plugin that replaces the one provided by TrainCarts. All other features are supported. You can use ByteCart on the top of Train Carts and build a transit network using Train Carts for everything related to train management, and ByteCart for pathfinding.
Both ByteCart and TrainCarts (and other plugins) provide a way to load chunks automatically, only activate this feature in a single plugin. In ByteCart, there is a parameter to set to false in config.yml.
Content
ByteCart provides:
- signs to build devices of the network (access points, intersections and routers),
- useful signs to control trains,
- instructions to build a network with routing layer only (no anti-collision),
- additional instructions to provide anti-collisions features if desired,
- Player-friendly signs and commands to configure and use the network.
ByteCart
does not provide:
- material to play with carts (except start/stop). Please use any minecartmania clone for this,
- material to build you network automatically (you must build everything on your own following instructions),
- commands to have control on the network (except setup and update administration commands),
- real train features (ByteCart trains are virtual, use TrainCarts to have real trains).
Tutorial
Download and give a try to a world with a network. Routers and stations schematic files are also provided.
Video:
Tutorial - A simple network
Tutorial - Adding stations, routers and subnets in a ByteCart region
Tutorial - All about trains
Text:
This step-by-step tutorial will guide you through the creation of your first ByteCart network.
Step 1 : A simple circular line
Step 2 : Connect rings together
Step 3 : Expand your network
Permissions
See
permission file dump
Documentation
The full documentation of the project and API can be found in the
Wiki.
Credits
Station name database feature was adapted from the code source of
CartDNS.
API
An API is available and can be downloaded from the download page. An alternate method is to use maven.
See
API
Sources
Source files can be found
here
.