HomeJavaModsAuto Cart System
Auto Cart System
ModsJava

Auto Cart System

by nathanhoel · on Modrinth

New types of carts that can automate digging, laying rails, laying bridges, coupling carts together, train signals, and hopper filters. All so you can…

⬇ Download on Modrinth
Auto Cart System — screenshot 1

AutoCartSystem

Build rail networks that build themselves. AutoCartSystem turns minecarts into a self-laying, self-mining, self-bridging, driveable train system — so reaching distant places by rail is finally faster than walking there.

Lay track, bore tunnels, span chasms, haul resources, and signal stations, all from carts on the rails. Then couple them into trains and drive them with a real engine.

Requires Minecraft 26.x or newer (Paper)


Why?

The idea of mining with a minecart to send resources back to your base is enticing, but ultimately impractical. The effort required to build the rail network is many times harder than just mining out a mineshaft on foot and walking back.

The preparation needed to bore holes, make bridges, lay the track, and add powered rails is high. Then you start to strip mine near your cart and before you know it you're 1000s of blocks away from your cart in far less time than it took to just get the cart there. This plugin seeks to address those problems and more.


Features


Quick start

  1. Drop the AutoCartSystem .jar into your server's plugins/ folder.

  2. Start (or restart) your Paper 26.x+ server. A default config.yml is generated on first run.

  3. Give yourself some carts and place them on rails:

    /acs give engine
    /acs give track_layer 64
    /acs give drill true
    
  4. Couple them up, fuel the engine, hop in the cart behind it, and drive forward.

ACS carts are not creative-menu items — there is nothing new to find in the creative inventory. Get them by crafting (see Crafting recipes) or with /acs give <type> (op by default).

Filling & configuring carts

The functional carts (engine, drill, track layer, bridge layer) each carry their own storage. Sneak + right-click a placed cart to open its storage GUI:

Each storage only accepts items it can use. Breaking a cart drops whatever it was holding.

Need to tweak a setting? Edit plugins/AutoCartSystem/config.yml, then run /acs reload — no restart required.


Crafting recipes

Cart Ingredients
Minecart Minecart + Iron Chain
Driver Cart Minecart + Lever + Iron Chain
Chest Minecart Chest Minecart + Iron Chain
Hopper Minecart Hopper Minecart + Iron Chain
Furnace Minecart Furnace Minecart + Iron Chain
TNT Minecart TNT Minecart + Iron Chain
Auto Track Layer Minecart + Dispenser + Rail + Iron Chain
Auto Bridge Layer Minecart + Dispenser + Cobblestone + Iron Chain
Drill Cart Minecart + Diamond Pickaxe + Piston + Iron Chain
Engine Cart Furnace Minecart + Block of Redstone + Iron Chain
Long Hopper Hopper + Iron Chain

Carts & trains in detail

Coupling carts

Auto track layer

Auto bridge layer

Drill cart

Engine cart

Driver cart

Long Hopper


Sign commands

Hopper signs

[ACS:HOPPER]
<ITEM_ID>
<ITEM_ID>
<ITEM_ID>
[ACS:HOPPER]
diamond
[ACS:HOPPER]
coal
charcoal
coal_block

Trash signs

[ACS:TRASH]

Train signal signs

[ACS:SIGNAL]
<CONDITION 1>
<OPERATOR> <CONDITION 2>
<OPERATOR> <CONDITION 3>
[ACS:SIGNAL]
ALL_EMPTY
OR WAIT 30
OR NO_TRAIN 10
[ACS:SIGNAL]
ALL_FULL
AND WAIT 80

Examples

Loading and unloading cart systems have always been possible, but now you can keep multiple trains running reliably and use signals to prevent them from crashing into each other. The examples below combine the carts above, the [ACS:SIGNAL] signs, and the long hopper into complete, working setups.

Signals only affect engine-driven trains (not trains a player is driving), so every loop below relies on at least one engine cart per train. See Train signal signs for the full condition/operator reference.

1. Auto-drilling strip mine with a two-train haul loop

The headline setup: a self-digging strip mine that lays its own track, plus a pair of hauler trains that shuttle the ore back to base — all without crashing.

The digging train

Couple a drill cart to the front, an engine cart behind it, and one or more track layer carts loaded with rail. (Add a bridge layer with cobblestone if you expect to cross gaps.) Because a drill is present, the drill is cart #1 and the engine is #2 — it pulls the whole train forward into the rock.

Doubling the track into a loop

Lay a second, parallel track alongside the freshly-dug main line and join the ends so it forms a loop: trains run out to the mine face on one rail and back to base on the other. Run two hauler trains on the loop, each an engine cart + chest carts, spaced apart so one is loading at the mine while the other is unloading at base.

Keeping them from colliding

Place signal signs beside the track (on the ground or a block beside it), facing the direction trains approach from.

At the mine face — hold the front train for 5 minutes so you can load it by hand:

[ACS:SIGNAL]
WAIT 300

While it sits there, dump everything you strip-mined — diamonds, coal, emeralds, ores — into its chest carts. When the 5 minutes elapse the signal goes green and it heads home.

Just behind it — keep the second train from rear-ending the first:

[ACS:SIGNAL]
NO_TRAIN 10

This signal stays red while the first train is still within 10 tracks ahead, then goes green once that train has pulled away — so the trailing train only advances into the loading zone after the leader leaves.

At the base drop-off — hold each train until its chests are empty:

[ACS:SIGNAL]
ALL_EMPTY

The train parks over the unload point and won't leave until every regular chest cart has been drained (by hoppers underneath — see the next example), then rolls back out to the mine. Combined, the three signs give you a continuous out-and-back loop where loaded and empty trains never meet.

2. Sorting the haul with long hoppers

The drop-off chest from Example 1 fills with a jumble of materials. Use the long hopper to fan it out into a sorting wall.

[ACS:HOPPER]
diamond
[ACS:HOPPER]
coal
[ACS:HOPPER]
emerald
[ACS:HOPPER]
coal
charcoal
coal_block

3. Auto-refuelling your engines from sorted coal

Engines burn fuel, and the coal you just sorted in Example 2 can refuel them for free.

[ACS:SIGNAL]
WAIT 5

4. Passenger stations with checkpoint stops

The same signals make a passenger line that waits for riders and pauses at each station.

[ACS:SIGNAL]
WAIT 10
[ACS:SIGNAL]
ALL_FULL_P
OR WAIT 60

Tip: because a driver cart overrides signals (and stops the engine from auto-driving), coupling a driver cart to a train and riding it lets you take manual control and drive it off the automated loop. Leave the driver cart off any train you want to keep running the loop on its own.

Mixing it all together

These build on each other: the strip-mine loop (1) feeds the long-hopper sorter (2), the sorted coal refuels the engines (3), and the same signal patterns drive a passenger network (4). Tune every limit — train length, hopper range, signal distances, wait times — in Configuration, and apply changes live with /acs reload.


Commands

AutoCartSystem provides a single base command.

/acs <subcommand> [args...]

Running /acs with no arguments (or /acs help) shows the in-game command list. See Permissions for the permission nodes.

/acs reload

Reloads the plugin: re-reads config.yml from disk and re-applies every setting at runtime. No server restart is needed for config changes to take effect.

Syntax /acs reload
Permission acs.command.reload (default: op)
Example /acs reload

/acs give

Gives an ACS item (a cart, or the long hopper block) to a player.

Syntax /acs give <type> [amount] [player]
Permission acs.command.give (default: op)

Arguments

Arg Required Description
type yes The item type (see table below).
amount no How many items to give (minimum 1). Defaults to 1.
player no Target player. Defaults to the sender; required when run from console.

The optional arguments are positional but each is detected by its shape (integer, then a name), so they must appear in the order shown above. Every ACS cart can couple — there is no longer a coupling/non-coupling variant to choose.

Types (case-insensitive)

Type Item given
rideable Minecart
driver Driver Cart
chest Chest Minecart
hopper Hopper Minecart
furnace Furnace Minecart
tnt TNT Minecart
track_layer Auto Track Layer
bridge_layer Auto Bridge Layer
drill Drill Cart
engine Engine Cart
long_hopper Long Hopper (a hopper block item, not a cart)

Examples

/acs give engine            # 1 engine cart to yourself
/acs give drill             # 1 drill cart to yourself
/acs give track_layer 16    # 16 track layers
/acs give chest 4 Steve     # 4 chest minecarts to Steve
/acs give long_hopper 2     # 2 long hoppers to yourself

/acs info

Shows AutoCartSystem details for the cart you are riding, or — if you are not riding one — the cart you are looking at (within 6 blocks). Player-only.

Reported details include cart type, how many carts it is coupled to, drill pattern (drill carts only), and, when the cart belongs to a tracked train: train size, position in train, heading, whether the train has an engine or drill, regular chest count, functional cart count, and the current driver.

Syntax /acs info
Permission acs.command.info (default: all players)
Example /acs info

/acs help

Lists the subcommands above with their usage. Requires only the base acs.command permission.

Syntax /acs help
Permission acs.command
Example /acs help

Configuration

All numbers and most features can be enabled or disabled in the config file (plugins/AutoCartSystem/config.yml).

Most features have a enabled master toggle. Numeric limits are tunable. After editing the file, apply changes at runtime with /acs reload — no server restart required.

Coupling carts (coupling)

Controls placement-time coupling (and its placement highlight) that joins carts into a recognised "train".

Key Purpose Type Default
coupling.enabled Master toggle for coupling. When off, placed carts never couple, the placement highlight is hidden, and coupled trains lose their collision immunity. boolean true
coupling.maxTrainLength Maximum number of carts in a single coupled train. No new carts couple once this length is reached. integer 20

Auto Track Layer (trackLayer)

The track layer cart lays rail at the front of the train.

Key Purpose Type Default
trackLayer.enabled Master toggle for the track layer cart. boolean true
trackLayer.lookAhead How many blocks ahead of the train front the layer looks to place rail. integer 1

Auto Bridge Layer (bridgeLayer)

The bridge layer cart lays bridging blocks ahead of the train when crossing a gap.

Key Purpose Type Default
bridgeLayer.enabled Master toggle for the bridge layer cart. boolean true
bridgeLayer.lookAhead How many blocks ahead of the train front the bridger looks to place a block. integer 1

Drill Cart (drill)

The drill cart mines blocks directly ahead of the train in a configurable pattern.

Key Purpose Type Default
drill.enabled Master toggle for the drill cart. boolean true
drill.defaultPattern Default mining pattern for newly created drill carts. One of: ONE_BY_TWO, TWO_BY_ONE, TWO_BY_TWO_RIGHT, TWO_BY_TWO_LEFT, THREE_BY_TWO, THREE_BY_THREE. string (enum) ONE_BY_TWO
drill.pickaxeConsumptionMultiplier Pickaxes are consumed this many times faster than normal durability loss. decimal 2.0

Engine Cart (engine)

The engine cart powers the train and can be driven by a player.

Key Purpose Type Default
engine.enabled Master toggle for the engine cart. boolean true
engine.fuelBurnRateMultiplier Fuel burns at this fraction of the furnace rate (0.5 => fuel lasts twice as long). decimal 0.5
engine.maxSpeed Maximum engine speed in blocks/tick. Vanilla minecart max speed is 0.4. decimal 0.4

Long Hopper (longHopper)

The long hopper pushes items into chests far beyond the block directly adjacent to it.

Key Purpose Type Default
longHopper.enabled Master toggle for the long hopper. boolean true
longHopper.range Maximum distance (in blocks) from the hopper output end to a target chest. integer 20
longHopper.reach How far the long hopper reaches per tick when searching for a target. integer 20

Recipes (recipes)

Controls the crafting recipes that produce ACS cart items (see Crafting recipes).

Key Purpose Type Default
recipes.enabled Master toggle for ACS cart crafting recipes. When false, carts are only obtainable via /acs give. boolean true

Signs (signs)

Controls all ACS sign command handling.

Key Purpose Type Default
signs.enabled Master toggle for all ACS sign command handling (HOPPER, TRASH, SIGNAL). boolean true

Signals (signals)

Controls engine train signal signs ([ACS:SIGNAL]).

Key Purpose Type Default
signals.enabled Master toggle for engine train signal signs. boolean true
signals.noTrainMaxTracks Maximum tracks a NO_TRAIN condition may scan ahead. integer 20
signals.waitMaxSeconds Maximum seconds a WAIT condition may specify. integer 600
signals.scanAhead How many rail blocks ahead of the train front to scan for signal signs each tick. integer 8
signals.stopDistance Distance (in blocks) over which an auto-driven train ramps down to a stop as it approaches a red signal. decimal 6.0

Debug (debug)

Key Purpose Type Default
debug Enables verbose console logging (e.g. train front/heading changes) for troubleshooting. boolean false

Permissions

AutoCartSystem declares the permission nodes below in plugin.yml. The default column shows who has the node out of the box:

Any node can be overridden per-group or per-player with your permissions plugin.

Placement and use

These control who can place ACS items to create the special carts (and the long hopper block).

Node Grants Default
acs.place Placing ACS items: cart items to create special carts, and the long hopper item to create a long hopper. true

Signs

These control which ACS sign types a player may create.

Node Grants Default
acs.sign.hopper Creating [ACS:HOPPER] item-filter signs. true
acs.sign.trash Creating [ACS:TRASH] signs. true
acs.sign.signal Creating [ACS:SIGNAL] train signal signs. true

Commands and admin

These control access to the /acs command and its subcommands.

Node Grants Default
acs.command Base access to the /acs command. true
acs.command.info Using /acs info. true
acs.command.reload Using /acs reload to reload configuration. op
acs.command.give Using /acs give to spawn ACS cart items. op
Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more