QuarterBukkit | (PluginManager) | MinecartRevolution

Please don't write ticket and issue comments! Use the issue-system here


Recode Progress: ==================== (100 %)

There are stable versions of MinecartRevolution available! Get them from here

Basic Description

What is MinecartRevolution? It's a modern Minecart-Plugin for Bukkit which features simple functions for beginners and professional ones like an own english-like natural scripting language (RevoScript).

You can use it simple with control signs and control blocks, define the expression scripts and create new controls in configuration files. You can also write plugins for more complicated controls and new RevoScript elements.


  • Create Boosters, Brakes, Elevators & Reverses with only placing a block below a rail!
  • Create Announcements, Farming, Stations, Holds, Intersections, Sensors, Chest-Transfers, Collectors, Effects & more with high-customizable control signs!
  • You can customize your plans even more with a whole human-like expression language!
  • Everybody can write auto-updating plugins for MinecartRevolution which can modify most of the properties and add new expressions & controls. Such plugins are written in Java!


  • MinecartRevolution requires QuarterBukkit-Plugin which is automatically downloaded by MinecartRevolution after the user agreed to the download (restart of the server, see the QuarterBukkit page).
  • MinecartRevolution and all MinecartRevolution plugins feature auto updating (disabled by default) and new version availability notification (enabled by default). You can enabled or disable both behaviors in the main config file under "plugins/MinecartRevolution/config.yml".
  • MinecartRevolution features metrics integration. Metrics collects your server settings (like auth mode) and system properties (like architecture), as well as game stats (like the amount of online players). You can disable that by setting "opt-out" to "true" in the metrics config file under "plugins/PluginMetrics/config.yml".

Wiki Pages

Source Repository

Unverified Builds

MinecartRevolution Plugins



You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of NomicCraftMC NomicCraftMC Sep 14, 2014 at 01:51 UTC - 0 likes

    Could you add the config option to stop players from stopping/blocking a minecart when the player walks on the rail.

  • Avatar of LoadingByte LoadingByte Jul 12, 2014 at 17:41 UTC - 0 likes

    @uncovery: Go

    Currently, it is not possible to create custom control blocks with revo expressions. Right now, the only way to implement custom blocks is to create a MinecartRevolution plugin (if you want to do that, take a look at the MinecartRevolutionTags source code for some information on how to write plugins).

    Here's some technical information on RevoScript:

    • Each expression has the following format: [+/-] <command> [argument]
    • By using + or - in front of the expression, it will be executed each time the minecart moves (being in motion for one tick).
    • +/- can be used with and without an argument. If there's no argument, all expressions with the given command are removed. If there's an argument, only the expression with the given command and argument are removed. See the samples for more information on this.
    • Variables (internally, they are called constants) can be written in the format $<variable>.
    • If you are able to read Java code, you can take a look at this page which lists all available commands.
    • You can also take a look at this page which lists all available variables.

    Here're some sample expressions (note that both the long and short forms of the commands are provided):

    # Set the weather of the world the minecart is in to "sunny".
    weather sun
    w sun
    # Permanently set the speed of a passing minecart to 0.3.
    # That means that the minecart will keep that speed forever.
    + speed 0.3
    + sp 0.3
    # Remove the speed setting of the previous expression.
    - speed
    - sp
    # Print the current location coordinate of the minecart to the passenger (multiple variables are used here).
    announce $x,$y,$z
    a $x,$y,$z
    # Add the flames effect to the minecart.
    + effect flames
    + ef flames
    # Add the smoke effect to the minecart.
    + effect smoke
    + ef smoke
    # Remove the flames effect without removing the smoke effect.
    - effect flames
    - ef flames

    Some more information can be found in this comment.

    The latest development build (go here and click on the big red button on the right) fixes some minor bugs. However, it has not yet been checked by the bukkit staff.

    Last edited Jul 13, 2014 by LoadingByte

    QuarterCode: BukkitDev, Website

    Popular Plugins:

  • Avatar of uncovery uncovery Jul 10, 2014 at 04:05 UTC - 0 likes

    Hi, I want to move from Minecart Mania to this plugin. I have issues finding out how to create custom control blocks and other items. Are there some samples? Where can I learn more about revoscript? The term seems to be overused for other items so google is not helpful.

    I have found the german wiki and found it alreadu helpful.

    Concrete question: Is it possible to assign a set of actions that are possible at signs such as "spawn", "grab" etc to a control block? Or do I always need a sign for this?

    Last edited Jul 10, 2014 by uncovery
  • Avatar of pulpius pulpius Mar 16, 2014 at 19:23 UTC - 0 likes

    Tomorrow the article will be finished

  • Avatar of LoadingByte LoadingByte Mar 16, 2014 at 12:38 UTC - 0 likes

    @rustyshakelford2: Go

    We're currently setting up the wiki pages. There will be some documentation on the control sign part soon :)

  • Avatar of rustyshakelford2 rustyshakelford2 Mar 15, 2014 at 22:46 UTC - 0 likes

    How do you use the control signs? I can't find any documentation on it.

  • Avatar of pulpius pulpius Feb 27, 2014 at 19:41 UTC - 0 likes

    Thank you, thats great news. I would help you to create the wiki if I'm back in Berlin (now I'm on holidy) probably next week. Have a nice evening!

  • Avatar of LoadingByte LoadingByte Feb 27, 2014 at 18:27 UTC - 0 likes

    @pulpius: Go

    It's great that you try to create a documentation for MR! Sadly, I don't have enough time to create a wiki or any kind of documentation by myself, so it's good news that you want to do that :)


    The effect command can be used for playing effects (particles, some sounds, lighting strikes, explosion particles etc.). The expression command is "effect <effect here>", the sign syntax is:

    [+/-] <effect>

    The second line also applies to the third and fourth line, the "+" or "-" in front of the effect just means "add or remove the effect from the minecart" and is equal to a + or - in front of an expression. Have fun playing around! (you can get the available effects from the "com.quartercode.minecartrevolution.basicexpressions.util.EffectUtil" class in "basicexpressions")


    The sensor command can be used for detecting different states of a minecart ("terms"), like if there's a player in it or if the passenger is holding a specific item. It outputs signals to levers which are attached to a block that is located near the sign. The system is too deep for a quick rundown, my solution for that is put after this list.


    Yes, the file sign can be used for executing scripts. You can put text files which have the ending ".revo" into the "plugins/MinecartRevolution/scripts" folder and write a file control sign like:

    <file name without .revo ending>

    Such script files are simple sequences of expression commands like:

    + speed 0.1
    + effect flames
    + effect smoke
    lock +

    The script above would set the speed of the minecart to 0.1 every tick. It will also spawn flames and smpke every tick and lock the minecart once.

    You can see that a "+" in front of a command lets the minecart execute the command every tick, it "adds" the command to the minecart. You can also remove added commands by using a "-" and the command:

    - speed
    - effect flames

    Note that you don't need the command parameter when using "-", it is optional. If you don't provide a parameter, every added command with the provided command name will be removed. If the "- effect flames" would be replaced with just "- effect", the smoke effect would be removed as well.


    You can also use the "[Revo]" sign to implement small scripts. You will use this sign most of the times you want to use the RevoScript expressions.

    You can put script lines on the second, third and fourth line, but they could also be empty. In order to use up less space (the character amount of a sign is somewhat limited), you can use shortcuts for all of the available expression commands. The script from above would look like this on a sign (without the second effect command):

    + sp 0.1
    + ef flames
    l +

    Hope you understood that :)

    My Test World

    You can download by test world here in order to check out most of the implemented features:



    Since you already try to create a documentation for MinecartRevolution, would you like to write the official wiki for MR (or at least some parts of it, if you don't feel to motivated)? As mentioned in the beginning, I sadly don't have enough time for writing docs, so would you like to do that?

    - LoadingByte/QuarterCode

    Last edited Feb 27, 2014 by LoadingByte
  • Avatar of pulpius pulpius Feb 26, 2014 at 18:24 UTC - 0 likes

    Thanks a lot! I have begun to write some documentation for my community. I have found out a lot of things while trying and reading your code but there are thrre features where I don't exactly know what they do.

    What does [Effect],[Sensor],[File] probably load a script? do? What is the syntax for Signs?

  • Avatar of LoadingByte LoadingByte Feb 24, 2014 at 21:04 UTC - 0 likes

    @pulpius: Go

    That's a great idea, I totally forgot about that.
    It'll be fun to play around with different algorithms in order to achieve a nice routing. Thank you for the tip!

    And of course, thank you for the testing! I forgot to check the whole container logic before releasing.


Date created
Feb 27, 2012
Last update
Feb 27, 2014
Development stage
  • deDE
  • enUS
GNU General Public License version 3 (GPLv3)
Curse link
Reverse relationships
Recent files