Minecraft Blogs / Tutorial

Making a Minecraft server from scratch for beginners and pros [NO CODING!]

  • 1,501 views, 7 today
  • 6
  • 1
  • 4
HopperElecYT avatar HopperElecYT
Level 19 : Journeyman Engineer
So, you're wanting to make a Minecraft server. Whether it's for you and your friends, you want something to do or if you're looking for money. It's a great thing to do and there are so many ways to do it! This post should tell you everything you'll ever need to know if you want to make a Minecraft server!
If anything in this post confuses you, feel free to comment and I'll make sure to edit it to make it more beginner friendly. If you have any suggestions for things to add to this post, also let me know! I'll be more than happy to personally help you start up your big Minecraft server; just hit me up on my Discord which you can find on my PMC profile :D If this post helps you at all, please give it a diamond as it really helps motivate me :D

Paid or unpaid?
First thing you'll want to decide is if you're wanting to pay for the server. If it's just a server for you and your friends to mess around with each other, there's several ways you can make a server for free including everything you'd have in an ordinary server. However, if you're not able to host the server on your own computer 24/7 but you plan for it to have a 100% uptime, you'll be looking at paid options. Here are some quick things to think about if you're willing to pay but unsure if you'll need to:
- Are you planning on it being a public server? If so, you won't want to host it on your own computer unless you have knowledge in DNS which I'll get into later because it means that you'll have to leak your IP. Also, most likely if it's a public server, you'll want it online all the time which will be a big hit as you'll either have to keep your computer on 24/7 or update the site every few hours, putting up with the annoying ads in the server chat!

- If you plan on making money from your server, you'll want a paid version as the limitations set by free hosting often requires you don't make a profit or that the hosting company takes a cut which ruins the point of it being free!

- If you don't have the best computer and the server you plan on running may be quite big (such as a modded server), you'll have to pay for extra resources from a hosting company

Hosting options:
Now that you've decided whether you're willing to pay, what are your hosting options?
1. Host it via LAN - This is by far the easiest option if you're wanting to play with people in your house. It's a bit more difficult if you live separately but besides what many people may suggest, it is possible for people not connected to your network to connect to your LAN server depending on your router! However, LAN is a completely vanilla version of hosting included with Minecraft meaning you can't use mods or plugins with it. It's just the same as making a new world and letting your friends connect to it! If you live in the same house as the people you want to play with on your server, simply open the [​ESC] menu in the world you want to host and click 'Open to LAN'. Now, your friends will see your world in their Multiplayer menu! If the people you want to connect to your server are not in your network, however, while there are ways to share ports that are not enabled in every router, if you know how to do that you probably wouldn't be reading this blog post! Find out how to do this in the 'Port forwarding' section

2. Host it locally - While a lot more challenging than LAN, it's another free option that doesn't require you to look into a hosting service! It also gives you full control of everything to do with the server including plugins and mods, but if you plan on keeping it on 24/7, it means keeping your PC on 24/7 and unless your internet plan includes advanced DDoS protection. I explain how to setup a server manually in it's own section as it's a lot more complicated and is also needed for VPS hosting.

3. Host it using a free Minecraft server host - There are very few free Minecraft server hosts and they all have disadvantages, but they're extremely useful if you want to mess with plugins or play mods with your friends without a good PC or if you don't want to go through the hassle of making one yourself. The 2 most popular free server hosts are https://server.pro and https://aternos.org . While there are a few more out there such as https://freemc.host, they're all very similar and not very difficult to find with just a quick Google search! The main disadvantages of free server hosts is that they're not 24/7, the player count is limited and you usually don't get much RAM. However, they usually give you a free subdomain meaning that allowing people to connect to your server is as easy as pie! They shouldn't be too hard to configure and they even give you easy access to plugins, but if you'd like to read up more about plugins you can see my section on them.

4. Host it on a Virtual Private Server - A VPS is simply put a virtual machine running on another computer which you can control from your local machine using software such as Virtual Desktop, AnyDesk and Teamviewer. The most popular are Microsoft Azure, Google Cloud (GCP) and Amazon Web Services (AWS) but they are very challenging to setup. The ones I just listed give you it for free for a year but you then have to pay a pretty high price to continue using it. If you'd like to find a good VPS with specific specs, I recommend the website serverhunter. I won't go into too much detail on them but once you're connected to a VPS, you can just follow the same steps as you would if you were hosting the server on your local machine (see the section 'Manually making a server')

5. Pay for a dedicated server or paid Minecraft server host - Simply put, if you want a good quality server that runs 24/7, has your choice of player slots, has a good amount of RAM and is easy to config, you'll have to invest in a dedicated server or a paid Minecraft server host. Despite the name, https://freemc.host has a great paid option, but I would personally recommend minecraft-hosting.pro as they have great cheap plans for your server. Before making a final decision, please go look into other options too! Paid hosting will also usually provide you with a personal assistant who will be able to help you with everything you need to know to make your server grow!

Server types:
1. Vanilla / Snapshot - Pretty much just LAN but you don't have to be in the world for others to connect and it has a few extra settings!
2. Bukkit - A simple plugin handling server
3. Spigot - A fork of Bukkit which has a few more plugins but may use more resources
4. Bungee - Allows you to connect multiple servers in a network (To use this, you'll need atleast 2 other servers including a hub)
5. Forge - A simple mod handling server
6. Modpack - A server built specifically for a specific modpack, usually released by the modpack creator if supported
7. Paper - A fork of Spigot which has a few more plugins and is a bit less resource-heavy but doesn't receive as many updates
There are a few other server types but these are the most popular!

Using a domain:
Using a domain means that if you host your server locally, you don't have to give out your IP for people to connect and some free hosts give you a free subdomain to connect to your server such as 'myserver.serv.gs' by server.pro but they're not quite as fancy enough like 'myserver.com'. There are very limited free domains out there, but if you aren't willing to pay for one you can get a tld from https://freenom.com such as 'myserver.tk' or you can get a subdomain you prefer from https://freedns.afraid.org. However, if you are willing to give up some money, the cheapest good domain I know is '.co.uk' which I'm paying £4/year for from https://OVH.co.uk! There's too many possible tlds to go through though so you should look yourself. I recommend the site https://tld-list.com.
Once you've found and ordered the domain you'd like, the site you've gotten it from will likely have a DNS area. If not, you'll have to connect a different nameserver. I recommend https://cloudflare.com. Once you've found where you can enter DNS, if you're hosting through LAN or locally, you'll want to Google 'IP'. Google should then give you a dot separated IP. If it gives a colon separated set of characters, this is IPv6 and getting your public IP will be a bit more challenging, and I can't help you here. Once you have your IP, make an A record connected to this IP. If you want to use this domain for something else like a website too, you might also want to enter a subdomain such as 'mc.' or 'play.' to make it separate from things like 'www.' in your domain!
If you're hosting the server locally or through a LAN server and you find your IP changes, your IP is not static and you may need to pay your ISP to make it static or use a service like duckdns.org which you can install and connect to your original DNS as a CNAME which will track your IP and when it changes, update it in your DNS settings.

Manually making a server:
Disclaimer: This section will only be useful to Windows users. If using Mac, hosting servers is a lot harder and many things impossible. If using a Linux-based OS, your OS is optimal for a server but the instructions completely depends on the specific OS you're using and therefore I can't give an in-depth guide for you. Apologies!
To host it on a local machine, you'll need to download the server files which will depend on what type of server you'll be running, so refer to the 'Server types' section in this post! Below I will explain how to get the server files for your chosen server type:

1. You can get the latest version of vanilla from Minecraft's official site or older versions from https://mcversions.net/, an unofficial site which archives old versions of Vanilla servers.
2. You can download all versions of Bukkit from https://getbukkit.org/download/craftbukkit
3. You can download all versions of Spigot ironically from https://getbukkit.org/download/spigot! However, Spigot also has a tool called 'BuildTools.jar' which allows you to build your own version of Spigot. You can read up on that here
4. You can get Bungeecord here. Remember, however, this just handles traffic between other servers though and is a bit more complicated to config!
5. If you're using Forge mods, you should already have the Forge installer, but if not you can get it here. In the installer, simply select 'Server'
6. Download from the same page you got the modpack itself from. If not available, you can try and make your own using a Forge server
7. https://papermc.io/downloads

Once you have the .jar for your server downloaded, make a text file in the same folder as it then rename it from 'new.txt' to 'run.bat'. It doesn't have to be 'run' but this is what is generally used. Open this file in your text editor, usually by just right clicking it and clicking 'Edit' and enter the following, replacing [​ram] with the amount of RAM you want dedicated in MB and [​myserver] with the name of the server .jar file:

@echo off
title My Minecraft server
java -Xms512M -Xmx[​ram]M -jar [​myserver].jar

Let's run through the code:
@echo off stops command prompt from displaying every bit of code run onto the screen
title changes the window header
java -Xms512M opens a java executable with 512MB at all times
-Xmx specifies the max amount of RAM the server can use and the server tries to optimize itself to work at this amount
-jar specifies the jar file Java needs to load with the specified RAM allocations
If you're using a vanilla server, you may also want to add 'nogui' after the jar file to disable the GUI as the GUI takes up unnecessary resources.

Now it's time to run the server for the first time! Open run.bat and you're server is up... or not! Because you need to accept Minecraft's eula :D The server will have made a folder called 'logs' and a file called 'eula.txt'. Open the eula and change the value 'false' to 'true' which is pretty much a digital signature that says I agree not to make a server with too much P2W.

Now you can run the server and it is online, but you'll need to change a few settings before people are actually able to connect to it. All we need to do for this is Enter the server-ip option in server.properties as your private IP (IPv4) which you can find by opening up command prompt (If you don't know how to do this, doing Win+R then typing 'cmd' should do the trick) then type 'ipconfig'. If you're using ethernet, look under 'Ethernet adapter Ethernet' and if you're using Wi-Fi, look under 'Wireless LAN adapter Wi-Fi'. You're just looking for the value labeled 'IPv4 address'. Now, you'll want to select a port for your server. Unless you're already hosting something on the port 25565 (but if you were you probably wouldn't be reading this!), then you should forward to this port as this is the one Minecraft looks for by default, so enter this in 'server-port' and, if you have the option, 'query.port'.

Now all you have to do is port forward your chosen port, so follow the steps in my 'Port forwarding' section! Once you've done this, if you run the server again people will now be able to connect using your IP (and if you used a different port, they will have to enter the port number following a colon). If you already have a domain linked to your IP, they will also be able to use this, but if you'd like a domain (which you should if you plan on making the server public), then see my section on 'Using a domain'.

Don't get too ahead of yourself though as the first thing anybody should do after making their server is changing a few more of the configs, so see my section on 'Setting the basic configs'.

Port forwarding:
You'll first have to find out if your router allows port forwarding, which you can do by simply googling! if it does, that same Google Search will tell you how to, as it is different for every router, Once you get to the port forwarding menu, you'll want to forward the either the port shown in the Minecraft chat when you opened the world to LAN or the port you're binding your local server to. However, if you want to be able to host a LAN world all the time, you'll either have to use DMZ or port forward the range '25565 - 65535' as this includes all the ports Minecraft may randomly select when you open to LAN. However, this can be a security risk, so try to avoid doing this unless you know what you're doing!

Setting the basic configs:
So, you've made your server, people are able to connect to it and now you want to spice it up a little by changing a few of the default settings! This section will not directly go through every single option in the configs but instead link you to the most common websites that explain what all of them do!

Firstly, you should look at 'server.properties' as this is the only config you'll find in all server types. You can find more information about all of the options in this file here!
If you're using bukkit or a bukkit-based server, you'll also find bukkit.yml and commands.yml. More information on bukkit.yml can be found here and commands.yml is simply for adding your own custom command aliases which you can find out more about here!
If you use Spigot or a spigot-based server type, you'll find spigot.yml which you can find out more about here!
If you're using Bungee, you'll find it's own config.yml which is very important for connecting all your servers together so you can find more information about Bungee and it's config here!
If you're using Forge or a modpack, the configs completely depend on the mods you use, so you'll have to do research yourself.
If you're using Paper, you'll find paper.yml which you can find out more about here!
If you're using another server type, the config will usually still end in '.yml' and just googling the name should bring you to it's documentation.

Now that you've configured your server, if you use a plugin-based server you'll now be able to install plugins, but you should first make sure your server is actually working so run it and check in console to see if you get any errors. If not, you're good to go and you can find out more about plugins in my section on them 'Plugins'!

If you use a server type that supports Bukkit or Spigot plugins, there's a wide variety of amazing tools you can install into your server which add a ton of great features to your server! In this section, I'll tell you how to manually install plugins if you're hosting your server locally or on a VPS and I'll tell you some of the best plugins, in my opinion, to start off with when making your first Minecraft server!

There are only 2 websites you should ever download plugins from (and sites linked officially from such as Jenkins); https://spigotmc.org and https://dev.bukkit.org. If you find a plugin on either of these sites that you like the look up, you need to find the version for the version of your server (often plugins work on all versions but you should check) and download it. If it's a .zip file, right click it, click extract and find the .jar file. Move the .jar file into the plugins folder in your server an when you next run the server, the plugin will run. You can also do /reload but not all plugins work when you do this and it can corrupt some plugin data. There's a plugin called plugman which allows you to reload specific plugins and this makes sure that nothing is broken and it usually works flawlessly!
Now for some common plugins you should probably use on your server!

1. EssentialsX - There is a plugin called Essentials which for a long time was the most popular plugin as it was really good! It provided great APIs for other plugins to use such as for colored chat, prefixes, suffixes, nicknames, economies and more. It has lots of great commands which you'll find on every server! But then EssentialsX was made, a fork of Essentials, and took over to the point that the original Essentials had to be discontinued! EssentialsX is a less resource-heavy but also more powerful version of Essentials that all server should have. For Essentials to fully work, you'll also need the plugin Vault, which is just an API plugin so I will not list here. Note that with EssentialsX, you get the APIs separately for example EssentialsXChat and EssentialsXSpawn

2. LuckPerms - Every server needs some sort of permissions plugin to handle who can do what.Whether it's to make it so that your spawn can't be griefed or so that only admin's can do /stop, you need one! The most popular permissions plugin by far was PermissionsEx but in 2016 the project was discontinued but then LuckPerms came to life with lots of amazing new features including a web GUI to make editing the permissions EVEN easier!

3. Worldedit & FAWE - Let's be honest, building is hard. You want to build a massive glamorous spawn for all to see on your server, but making it block-by-block would be so difficult, even with a good team of builders. That's where Worldedit comes in- it allows you to make massive extremely detailed shapes in just 1 command; whether it's just making a wall or copying the schematic for an entire spawn, it can do so much! However, doing massive tasks with Worldedit will take a big toll on your server as it does everything all at once and can cause massive lag spikes or even crashes, so FAWE (FastAsyncWorldedit) makes it so that Worldedit makes things in small chunks and adds even more features. However, note that you still need Worldedit for FAWE to work.

4. Worldguard - Imagine this- you build an amazing survival spawn using Worldedit and you're so proud of it! You spent a fair amount of time on it and you're happy for a player to be able to see it! But then a player comes on and starts to destroy it! You don't want that happening! You use LuckPerms to make it so the player can't break blocks and that solves it though. But now they can't play survival! It seems that their only option is to make them in separate worlds so you can have per-world permissions... or not! With Worldguard, you can use Worldedit to select a large area of your map and change how players can interact with that place! Not only that, but you can also allow players to pay Essentials money to be able to make their own regions to protect their survival bases from being griefed!

5. Enjin - Enjin is a plugin you connect to your server that gives you a free website and forums for your server.

6. DynMap - DynMap is a plugin that gives your server a web map plugin meaning that players can see a top-down view of the plugin from your server's website! You can also use it to make and configure Worldguard regions

7. Multiverse - Similar to EssentialsX, this is another plugin with multiple .jar so you can install just what you need. This plugin allows you to have multiple worlds in one server, and not just the overworld, nether and end! You could have 90 overworlds using this plugin! This means 1 world could be a void for your spawn, then you could have your overworld, nether and end and then you could even have a different world for a different gamemode such as Skyblock! While it isn't exactly the same, you can use this as an alternative to Bungeecord so you can have your hub in one world, Skyblock in another and then also have Factions, Minigames, Prison and more!

8. NoCheatPlus - Whether you like it or not, people are going to try and cheat on your server, so what NoCheatPlus does is try to detect and stop that! You'll get alerts if it's thinks someone's Xraying or you can even set it to just outright ban them!

9. Citizens - Those players at the hubs of most servers off course aren't really players- there isn't just some kid called 'KitPvP' who decides to AFK in the hub of every KitPvP server! These are actually NPCs made using Citizens. You can use this plugin to have guards walk around people's houses or on your prison server! Using the plugin CitizensCMD, you can also make the player run commands when the NPC is clicked too! A very useful plugin.

10. HolographicDisplays - This is an amazing tool that you can use to make those cool invisible armor stands you had on your creative world to show what everything is instead of signs, but for a server!

11. CreateYourOwnMenus - The title explains it all- it allows you to make intractable GUI inventories to make things like shops, lobby compasses and staff lists!

12. Buycraft AKA Tebex - This plugin allows players of your server to pay for extra cosmetics and ranks (or in servers based below 1.9, items and more) to help fund the server

13. Votifier - Allows you to reward players who vote for your server on certain server lists

14. DiscordSRV - Connects you Discord server and Minecraft server together so that admins of your Discord server can run commands in the servers console and so that Minecraft and Discord users can chat and interact with each other

15. ClearLagg - No, that extra g isn't a misspelling! But it's also exactly what the name suggests. it helps prevent lag on your server! There's many things it can do including clearing tile entities every interval.

Per-gamemode plugins
This section will feature plugins I don't exactly think all servers should have, but if you're making a specific gamemode you should probably look into.

1. Survival - mcMMO, Slimefun, Exotic Garden, AutoCrafters
2. Factions - Factions, SilkSpawners, Advanced RandomTP, PlayerVaults
3. Skyblock - ASkyblock, CrazyAuctions, ChestShop, ChestGenerator, SkyblockOres, TierHoppers
4. Creative - PlotSquared, PixelPrinter
5. Messing around! - Punishmental, LibsDisguises

Tips and tricks
I'll add tips and tricks over time after making this post here!

1. Server icon - You can give your server an icon to go next to it in server lists by renaming a .png image to server-icon.png and adding it to your server folder!
2. Server banner - Urgh, all the other servers have a really cool animated banner to advertise their server but I don't know how to make one... fear not, because TopG has their own animated banner generator! For whatever reason though, I'm unable to link to any TopG sites in PMC so you'll have to search for it yourself ):
3. Don't use multiple permission plugins - Often when I'm helping people make their servers I see people having both PermissionsEx and LuckPerms when they're only using 1 and they wonder why none of their permissions work! It is similar to having 2 anti-viruses; they clash together and will end up breaking your servers permissions.Also, people often use GroupManagerLP for LuckPerms when they've never even used Group Manager before. GroupManagerLP is for people who are used to GroupManager but have moved to LuckPerms and so the plugin makes the commands more friendly.
4. Use /pl instead of /plugins - /pl is an alias that makes it easier to quickly see what plugins the server believes are installed on the server for troubleshooting errors. The server will highlight corrupted plugins in red.
5. Don't spam connect when your server restarts - If the server is starting and you try to connect, you'll just make it slower!

Create an account or sign in to comment.

01/04/2020 10:55 pm
Level 24 : Expert Geek
Rami-slicer avatar
Little tip:

If you are going to locally host a server, I really would advise against using Windows as an OS. I would instead use a beginner-friendly Linux distribution like Ubuntu for maximum stability and very long uptime (how long your server can stay running before it needs to update). I've noticed that Windows has absolutely horrendous uptime and is really pushy about updates.
01/05/2020 12:46 am
Level 19 : Journeyman Engineer
HopperElecYT avatar
Agreed! Linux is always best for hosting websites, game servers and the sorts. It's also not resource heavy as Linux is often a very simple OS meaning more can be dedicated to the server itself. However, with Windows there are several ways to disable updates and the sorts
01/03/2020 11:38 pm
Level 21 : Expert Procrastinator
Energy Master
Energy Master avatar
Very useful, thankyou!
01/03/2020 11:45 pm
Level 19 : Journeyman Engineer
HopperElecYT avatar
You're very welcome! If you have any questions or even if you'd like me to personally help you with your server, feel free to let me know :D
Planet Minecraft


© 2010 - 2021