[1.8-1.15] BungeeCord

Discussion in 'BungeeCord Discussion' started by md_5, Jan 20, 2013.

  1. md_5

    Administrator Developer

    Quick Links
    • Downloads - Latest build is generally stable and recommended!
    • Source Code - Use this to browse the code, make pull requests or start hacking on a Bungee plugin.
    • Bug Reports - Issues posted on these forums will be ignored, use this tracker instead.
    • Wiki - Need more information about BungeeCord than provided by this thread? See the wiki for more information.
    • IRC - Come here if you have any questions or difficulties. See the support section below for more information.
    For a long time, Minecraft server owners have had a dream; a dream of a free, easy and reliable way to connect multiple servers together. BungeeCord is the answer to this dream. Whether you are a small server wishing to string multiple game modes together, an established 250 player server wishing to expand your capacity, or the megalithic monolith of the ShotBow Network, BungeeCord is ideal for you.

    The author has been writing similar systems for over a year now, and BungeeCord is the pinnacle of this. Written from the ground up, using all new development practices and principles, BungeeCord aims to be the most efficient, reliable and feature packed system around, already dominating similar systems costing hundreds of dollars each month. With the ability to load BungeeCord plugins, written against BungeeCord's expansive API, and many plugin message based hooks available for use by Bukkit plugins and back-end servers, the BungeeCord system can not only seamlessly integrate with existing setups, but can be limitlessly expanded to create anything from custom global ban integration to your very own MMO multiverse.

    Getting Started
    BungeeCord works best on a VPS / dedicated server, however it can also work on various control panels such as Multicraft. If you choose to install BungeeCord, it is expected that you are familiar with Minecraft server administration, and if you own a VPS / dedicated server, it is expected you have a basic knowledge of SSH and Linux servers.

    1. Make sure that your server is equipped with Java 7
    2. Make a new folder to run your BungeeCord in with the command
      Code (Bash):
      mkdir bungee && cd bungee
    3. Download your preferred BungeeCord version and upload it to this folder. You can do this straight from the server by issuing the
      Code (Bash):
      wget 'http://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/bootstrap/target/BungeeCord.jar'
    4. Start BungeeCord with the command
      Code (Bash):
      java -jar BungeeCord.jar
      . This will generate the necessary configuration files.
    5. Then type /end into the console to stop BungeeCord
    IP Forwarding
    If you previously ran your server in offline mode, you must enable IP forwarding in your BungeeCord and Spigot configuration in order to retain your player data. See the Wiki for more info on doing this.
    If you are using Multicraft, you can get their official config file from here:

    Please see https://www.spigotmc.org/wiki/bungeecord/ for information on how to install and configure BungeeCord.

    For reasons unknown to me, some people need a video to watch before they attempt to setup BungeeCord. Over the months we have amassed a few videos from users in order to help you get started with BungeeCord, you may view them below.

    Post Installation
    As your servers will now be running in offline mode, they are open to users connecting as whoever they want to, and wreaking havoc. Unfortunately for them, this is something that we don't want to happen. Whilst you may be tempted to install an IP whitelist plugin, there are much better ways of preventing users from even getting to the login stage, and thus safeguarding yourself from whatever they may throw at you.

    BungeeCord on same machine as all servers
    Simply open up the server.properties file on each of your servers, and set the server-ip option to, and then restart the server.

    BungeeCord on different machine to some servers
    First you need to set connection-throttle to -1 in bukkit.yml. This is a VERY important step, and if you don't do it, BungeeCord will NOT work properly.

    The only way to secure this setup entirely is to use a firewall to prevent access to them at all from the outside world. Luckily most Linux distributions include an easy to use firewall named iptables. Once you have everything set up you can activate this firewall with the command below, but first replace $BUNGEE_IP with the server running BungeeCord, and $SERVER_PORT with the port of your Minecraft server.
    Please note that all commands in this section must be run as root.
    Code (Bash):
    iptables -I INPUT ! -s $BUNGEE_IP -p tcp --dport $SERVER_PORT -j DROP
    Next you must make these rules automatically apply each reboot. The commands used to do this vary depending on which Linux distribution you use:
    Code (Bash):
    /etc/init.d/iptables save
    Debian / Ubuntu
    Code (Bash):
    apt-get install iptables-persistent
    /etc/init.d/iptables-persistent save
    If at any time you find yourself unable to connect to your servers after messing with the firewall, simply enter this command to completely reset it:
    Code (Bash):
    iptables --flush
    Inbuilt Commands
    • <required argument>
    • [optional argument]
    BungeeCord currently has an expansive plugin API to allow developers to create rich Java plugins. Currently there isn't much documentation, however you may review and download all Bungee plugins from the resources tab above.

    If you have a question or problem and don't mind waiting a little for a reply, you may post it in this thread. For development related questions, please post them in development subforum, and for issues, bugs and feature requests, please post them on the issue tracker at the top of this post.
    The preferred way to get to support is via realtime IRC chat. You can join us at #md_5 on irc.spi.gt, or for your convenience a webchat link is provided below. If you do ask for help on IRC, be sure to stay for as long as you can, or until you get an answer. Also please be sure to pastebin any relevant errors and logs longer than 3 lines.

    Various individuals, companies and servers have made BungeeCord what it is today; for a full list of code contributions you may check the commit logs on GitHub. Staminus Communications however plays a bigger role than most, providing fantastic hosting and sponsorship for these forums and my other projects.
    If you find yourself in a spot of trouble with DDOS attacks, BungeeCord hosted on a Staminus server is a great, cost effective way to mitigate their impact. For more information click the logo below.
    #1 md_5, Jan 20, 2013
    Last edited: Jun 22, 2014
    • Like x 99
    • Winner x 28
    • Useful x 15
    • Agree x 10
    • Informative x 6
    • Optimistic x 4
    • Friendly x 3
    • Creative x 3
    • Funny x 1
  2. Less people are gonna put this on their plugins folder now. :]
    • Funny x 32
    • Like x 4
    • Agree x 3
    • Winner x 3
    • Useful x 2
    • Optimistic x 2
  3. md_5

    Administrator Developer

    Well, you got one of the reasons for moving :)
    • Agree x 6
    • Funny x 6
    • Like x 2
    • Winner x 1
    • Useful x 1
  4. I'm sure that was the idea behind this post.... Only Server Admins with enough know-how will be able to run this properly.
    • Agree Agree x 12
    • Like Like x 2
    • Useful Useful x 1
    • Creative Creative x 1
  5. Typo!!!
    "Grab the latest stable release from here at BukkitDev"
    Anyways, aside from that. I may be just a dumby, but is there any way to force people to always return to the default server after they rejoin?
  6. Forced Servers. It's in the config.
  7. Thanks :D

    Works with few problems! Nothing huge though, most mistakes were just my fault. If I see anything bad I will report it though!
    #7 bowser123467, Jan 20, 2013
    Last edited: Jan 20, 2013
    • Funny Funny x 3
    • Optimistic Optimistic x 1
  8. PhanaticD


    say you are connecting to another server or dont want to bind to localhost

    Code (Text):
    iptables -I INPUT \! --src -m tcp -p tcp --dport 25570 -j DROP
    this will only allow connections on port 25570 from the IP

    should also run iptables-save so it stays across restarts
    • Agree Agree x 2
    • Like Like x 1
    • Informative Informative x 1
  9. Will it ever be possible to 'query' the proxy?
  10. HeyHo, I´d like to have Spout Support for this Plugin. I´m not speaking of the new Spout thing, but of Spoutcraft which work perfectly with Bukkit. An Error comes when I try to switch a Server. It should be easy to fix it. ^^
  11. BaseJump isn't still going to be a thing right?
  12. md_5

    Administrator Developer

    It was fixed before, there is a chance a recent Spoutcraft release broke it. Currently focusing hard on the API release which is coming as soon as I can test and verify there are no new bugs.

    Yes, it is still on our roadmap, the API competition (which is nearing), represents the first phase. Then its a matter of overhauling the networking system and writing a custom Minecraft server to go inside Bungee.

    What kind of query?
    • Agree Agree x 1
    • Useful Useful x 1
  13. Where exactly does it go? I hear this often, but it isn't exactly clear where to put it.
  14. PhanaticD


    its a java application you put it wherever you want
  15. Then what's so terrible about plopping it in your plugins directory? :confused:
    • Funny Funny x 1
  16. PhanaticD


    because it is not a plugin.... and craftbukkit will try to load it then it cant and youll be like wuttt its not working
    • Funny Funny x 2
    • Informative Informative x 2
    • Like Like x 1
  17. Good point, but it worked fine for me regardless. I'll move it anyways.
    • Funny Funny x 5
  18. Been stalking this project for about a month now, time to give it a go wish me luck!
  19. Whenever I try to log in to my server, I get this:
    [Proxy] Could not connect to server - RuntimeException

    Fixed for some reason or another
    #19 Chakyl, Jan 20, 2013
    Last edited: Jan 21, 2013
    • Like Like x 1
  20. The server its trying to connect you to is not up, probably your default set one.
    • Agree Agree x 1