In this article we will cover the best way to make a Minecraft server on Windows in 2020 (I stress this is the easiest).

Running the server software on your computer without a clear understanding of what you are doing may make your system vulnerable to attacks from outside.

In order to run your server and stay out of trouble, we strongly recommend you should at least know about the following:

  • Using the command-line and editing configuration files
  • Networking in general (IP, DHCP, ports, etc.)
  • Your system configuration
  • Your network configuration
  • Your router configuration (if you want other people to connect over the Internet)

How to make a Minecraft server on Windows

Installing Java

The Minecraft server requires the Java Runtime Environment (also called JRE or simply Java). For your security, you should only use the most recent version of Java. To verify that you have the latest version, do one of the following:

  • Open Windows Control Panel, find Java (it may be inside the Programs category), and click on Update Now.
  • Visit http://java.com/en/download/installed.jsp. This will perform an automatic version check from your browser. However, the Google Chrome and Firefox browsers do not run Java content and therefore cannot check Java through the browser.
  • Open a command window and enter the command java -version. If a version number is reported, then check the Java website to see what the most recent version number is.

If you don’t have Java or your version is outdated, then download it at https://adoptopenjdk.net/ (OpenJDK) or http://www.java.com/download/ (Oracle “OTN” JDK)

Creating the script

The windows version of a script is called a batch file. Create a text file in the folder where you put the jar as “start.bat”, and then right-click it to edit using notepad. Paste the following in:

@ECHO OFF
java -Xms1024M -Xmx2048M -jar minecraft_server.jar --nogui
pause

Double click the file to start your server. You may get a “Class_Not_Found” and ServerGuiConcole error, just ignore these errors and you should see your “Server Thread/INFO” dialog start the server.

The “pause” command is there to keep the window open so you can read what happened after the server stops.

Port forwarding

When port forwarding, it varies on how your router will ask you for the information. If you don’t understand on how your router wants you to input the information, try visiting PortForward.com for a tutorial.

Press Win+R; this should be up to the “Run” dialog box. Type cmd and hit ↵ Enter. This should open a command window with a black background. From there, type ipconfig and press ↵ Enter. You should be given a list of text. Scroll up to “Wireless LAN” (if using wireless) or “Ethernet” (if using a wired connection), and look at “IPv4 address”. To the right of this should be a string of numbers (of the form xxx.xxx.xxx.xxx). Copy this down by right-clicking the window and selecting “Mark”, then highlight the area and hit Enter. Don’t copy any parenthesis or letters.

Configuring the Minecraft server

  1. Configure the server by editing the server.properties file, the format for which is explained here. Be certain to edit the file with a text editor that does not add formatting (e.g., for italics), such as Windows Notepad. Additional configuration may not be necessary as many servers run fine from the default values.
  2. To become or add an operator (op), type /op <player> into the server console or gui. This adds the specified user’s username and UUID to the ops.json file. Operator status will not be changed if you change your username due to the use of UUID.
    • Administrators and operators may execute commands. In other words, operator (op) privileges allow you to control certain aspects of the game (e.g., teleporting players).
    • ops.json contents:
 {
   "uuid": "",
   "name": "",
   "level": 4,
   "bypassesPlayerLimit": false
 }

  1. If your server.properties is configured to enable whitelist, you can add a user to the whitelist.json by typing /whitelist add <player> into the server console or gui. Due to the transition to the UUID system, it is not recommended to directly edit whitelist.json.

Connecting to the Minecraft server

  • If you are playing on the same machine on which the server is running, select the “Multiplayer” option in the game client, click direct connect, and then type in localhost instead of an IP address.
    • Both hosting and playing on the same machine is not a recommended practice unless you have a powerful computer (e.g. more than 6 gigabytes of ram (4 for the server, 2 for the client, and some for the rest of the system).
  • Users within your local network (i.e., that are accessing the same router) can connect using your internal IP address; port forwarding is not required for such local connections. The internal IP address of a specific network adapter can be found by typing “ipconfig” into the command prompt and looking for the IPv4 address, or by using this website. If the port is set to a number other than 25565 in server.properties, that port must be included. This address (both IP and port) will look something like 192.168.0.168:25565.
  • Users connecting from the Internet (i.e., outside of your local network) must connect using your external IP address. You must port forward for someone outside your network to connect to the server.

IP address notes

  • Unless you set a static IP for the computer that is hosting the game, the internal IP address can change. This affects port forwarding rules, and can make them invalid. Each modem or router has a different way of setting a static IP address. You should refer to the manual for your device(s) or online documentation for further instruction.
  • If you are having players connect to your external IP, your external IP can change if you do not have a static IP from your internet service provider. Use a tool such as WanIP to periodically check on the external IP address. You may also search “my ip address” on Google and it will show your IP address. Alternatively, you can look into a DNS service that will allow you to have a name, rather than an IP address, that will remain the same. The name will point to your external IP address, regardless of whether or not it changes (the DNS is updated when changes occur).
  • For troubleshooting purposes you can try running Minecraft on the server machine and connect locally. You can connect through either localhost, your home network IP (192.168.x.x) or your public (Internet) IP.
  • If for some reason you have trouble with connecting publicly over your IPv4, try connecting over IPv6. This should only be done for testing whether your server is online, external players should still use IPv4.