When setting up a Minecraft server, it is crucial to understand what the server.properties file does, as most changes you make to your Minecraft server are handled through this file. In this guide we have compiled an in-depth breakdown for the server.properties file, arguably the most important file for your server!
What Is the Server.properties File and How Do You Use It?
The server.properties file contains all the necessary settings for a Minecraft server. It is generated automatically the first time you start your server. This file can be edited using any text editor including the default Notepad in Windows. It is important to keep in mind that in order for any changes to take effect, the server must be restarted.
If the server.properties file is deleted, or If the Minecraft version is updated and there were changes made by Mojang to the server.properties file, then upon starting, the server will generate a new file, or rewrite the old file with a new one with all values set to their defaults.
Foundational Settings
These are the settings you will most likely want to change. They are important for creating your own personalized experience for you and your friends.
motd=A Minecraft Server
This stands for Message Of The Day. It is customizable text that will show up for everyone who has the server on their server list, it is displayed below the server name. This is a good website where you can edit and/or create your own motd.

gamemode=survival
This is the gamemode that will be set for any new players joining the server. Changing this will not change the gamemode for existing players. This value may also be represented by numbers, as follows:
0 – Survival
1 – Creative
2 – Adventure

difficulty=easy
Sets the difficulty of the server world. Possible values are, easy, normal, hard and peaceful. Numbers may also be used which are;
0 – peaceful
1 – easy
2 – normal
3 – hard.
A higher difficulty generally means hostile mobs deal more damage, the hunger bar can deplete all the way damaging the player. A more detailed elaboration on difficulties can be found here

online-mode=true
The toggle that allows cracked clients to join the server. Setting this to false will allow cracked players to join, however removing the skins from players using the game legitimately. It is possible to use plugins or mods such as skinRestorer to get back skins. When set to true, it requires all players attempting to join to be authenticated by Xbox Live.
level-name=world
The name of the world file you have generated, or are using for the server. The world file should be the same as the folder containing the world file information. For example, if your world folder is called ‘bestWorld’, your level name should be set to ‘level-name=bestWorld’.
level-seed=
The level seed is a value made up of characters, which dictate the generation of the world file. Different seed values will generate different looking worlds. If left blank, Minecraft will use a random seed. Some examples of seeds are: Mienkraft, 1234567890, etc.

Gameplay & World Customisation
The following settings are used to customise the gameplay and how your players interact with world
max-players=20
That max amount of players that are allowed to be online on the server at any time.
pvp=true
A toggle for whether players in the server are able to damage each other. Note that damage from external sources such as lava, TNT or magma still damage the player even if placed by another player.

generate-structures=true
A toggle for whether structures are generated when creating a new world or expanding an old one by generating new chunks. (Note: As of yet, dungeons still generate even with this set to false).

allow-nether=true
A toggle for whether to allow players to travel to the nether. Setting this to false will disable nether portals.

spawn-monsters=true
A toggle for whether to spawn hostile mobs. If difficulty is set to peaceful, this option will have no effect. Otherwise, when set to false, hostile mobs will not naturally spawn. (Note: Spawners can still spawn mobs even with this set to false)

spawn-animals=true
When set to false, animals; sheep, cows, chicken, etc will not naturally spawn and all existing animals despawn

spawn-npcs=true
Dictates whether villagers and traders can spawn. Setting this to false will not spawn them.

enable-command-block=false
Enabling this allows the use of Command Blocks in the world. These are blocks obtained through /give and can be used to run commands autonomously,

hardcore=false
The toggle for hardcore mode. Enabling this will disregard difficulty (set above) and default to hard. Difference being that in hardcore, after dying once, players will be set to Spectator mode and will not respawn.

force-gamemode=false
A toggle for whether to force default gamemode (set above) everytime the player joins the server. When set to true, players joining the server will be set to the default gamemode no matter what gamemode they left the server in previously. It is not recommended to turn this on as if you leave the server in creative and the default gamemode is set to survival, upon joining back, your gamemode will be forced into survival.
level-type=minecraft:normal
This is the world generation type, eg. flat, AMPLIFIED, Large Biomes, etc. Changing this will alter how your map is created.

generator-settings={}
Used in conjunction with level type, this setting is used to customize world generation; the format for which is available here. It can be used to force the world generator to, for example, create custom superflat worlds, or a world with only one biome and so on.
Player & Security Management
While regrettable, the sad reality is that sometimes, some players will take certain actions you may not want them to. The following settings are useful for controlling who gets in your server, what amount of power they have, and generally protecting your world and other players.
white-list=false
Enables whitelisting on the server, ie. Only players who are on the whitelist are allowed to join the server.
enforce-whitelist=false
Whether to enforce the whitelist. If set to true and the whitelist is enabled, players not on the whitelist are kicked from the server even without a restart. In effect, if you remove a player to whitelist while the server is running and reload the white using a command (/whitelist reload) It will actively kick the player from the server.
op-permission-level=4
The permission level for server operators.
Level 1 – User is able to bypass spawn protection.
Level 2 -User can use more commands and command blocks.
Level 3 – Users can use commands related to multiplayer management.
Level 4 – All commands
spawn-protection=16
Dictates the area on which to apply spawn protection. The formula used is (2x+1)2 as such, A value of 1 will apply spawn protection in 3×3 area, 2 will apply 5×5, and 0 will disable spawn protection. Spawn protection prevents players from building or breaking blocks around the spawn point, it will undo any attempt at placing or breaking blocks.
allow-flight=false
The toggle for whether players in survival mode are allowed to fly or not; primarily used to prevent griefers with mods that allow flight in survival. Players in survival that are in the air for 5 seconds or more are kicked. This should not affect the functionality of elytras.
enforce-secure-profile=true
If enabled, players attempting to connect without a Mojang assigned Public Key will be unable to join.
prevent-proxy-connections=false
If this setting is set to true, and the player’s IP address is different when connecting to your server compared to when they connected to Mojang’s authentication servers, the player will be kicked. This is to prevent players connecting using VPNs or proxies.
player-idle-timeout=0
Minutes after which an idle player (no movement input) will be kicked from the server.
log-ips=true
Whether IP Addresses are logged in the console and in server logs.
Performance & Network Tuning
These are the settings you will want to edit if you are experiencing lag or if you want to finetune the server in order to balance good performance with visual quality based on your server hardware.
view-distance=10
The maximum server render distance, meaning how far into the distance you are able to see. This is measured in chunks (16 x 16 Areas of Blocks) and is measured in a radius from every player. While it is possible for clients to use mods to be able to render more, this is the max amount of world data the server has to send to each player.

simulation-distance=10
This is the chunk radius (similar to above) from the player at which entities such as cows, sheep or chickens, are located and their AI behaviour is updated so that they are able to move, make sounds, etc. Outside this distance, entities will not be visible or updated.
max-tick-time=60000
The maximum amount of milliseconds the server will wait to calculate 1 tick (the measurement of time inside Minecraft). If it takes longer, the server will forcibly shut down considering it to be crashed. The default value is 1 minute.
network-compression-threshold=256
The maximum packet size that can be sent or received by the server before compression is applied. Setting this value lower may reduce bandwidth usage at the cost of higher CPU usage, and vice versa. A negative value disables compression entirely.
entity-broadcast-range-percentage=100
A percentage indicator for how far an entity has to be before the location data is sent to the client. This is similar to the Entity Distance slider on the client. Higher values may cause lag.
max-world-size=29999984
This is the maximum number of blocks (in radius) the world border can be set to. eg. a value of 500 allows the world border to be set at a maximum of 1000 x 1000 blocks.

sync-chunk-writes=true
Dictates whether region files are read or written in synchronous mode to help prevent data loss after a crash. Synchronous means the files will be updated one at a time one by one instead of in parallel multiple at once. While it is somewhat slower in terms of data reading or writing, it is much more reliable.
use-native-transport=true
A packet performance optimizer for linux operated servers.
max-chained-neighbor-updates=1000000
A value that sets the maximum number of block updates that can happen consecutively before additional updates are skipped. It is most useful for preventing lag from large redstone machines created to cause massive block updates. A negative value here will disable the limit.
rate-limit=0
A limit on the number of packets that a player can send to the server before being kicked. By default, it is turned off (A value of 0)
Advanced Settings
These settings are for expert Minecraft users. Most servers work perfectly fine without ever needing to change the advanced settings.
server-port=25565
The port the server is hosted on. The default value for Minecraft servers is 25565. It is recommended to not change this value as many services default Minecraft to this port. Minecraft Servers use TCP which is an Internet Protocol that aims to establish a connection between the receiver and sender before transferring data. This means that the server must be listening on ports for connection requests from clients to be accepted. This is why the port will need to be port-forwarded if you are hosting locally and the network is using NAT. This is usually set up for you in Hosting Platforms.
rcon.port=25575
RCON stands for Remote CONsole. This is a port that, if open, allows administrators of the server to be able to execute commands using a separate client application remotely without the need to have constant and direct access to the server console.
rcon.password=
An option to set a password for RCON (see rcon.port).
enable-rcon=false
A toggle for enabling RCON (see above). It is not recommended to expose RCON to the Internet since it transfers all data without the use of Encryption, meaning it is possible to intercept it and retrieve the data in plain text. By enabling RCON, whenever you share your IP, any malicious actor may be able to access the remote console. If you must use RCON, it is recommended you change the RCON port from the default, and set a strong password.
enable-query=false
This allows a server to be able to provide more detailed information about itself to external services using the Minecraft Query Protocol. While enabled, it is possible to externally retrieve data such as player lists, server settings and so on.
query.port=25565
This value sets the port for queries. (See enable-query)
require-resource-pack=false
Whether or not to force usage of the server resource pack. (see resource-pack settings below)
resource-pack=
An optional link to the download of a server resource pack to be used to players joining.
resource-pack-prompt=
This is an optional custom message that can be set if require-resource-pack is set to true (see require-resource-pack).
resource-pack-sha1=
An optional SHA-1 digest of the resource pack link, used to verify the integrity of the resource pack. SHA- 1 is a cryptographic hash function, the purpose of which is not security, but to verify whether there has been accidental data corruption in uploads or downloads.
server-ip=
This is used to bind the server to a particular IP. It is strongly recommended however, to leave this blank.
enable-jmx-monitoring=false
When set to true, it uses Java Management Extensions to allow for more performance monitoring of the server.
hide-online-players=false
When set to true, the list of currently online players will not be visible.
enable-status=true
Whether the server appears “online” in a clients server list. If set to false and the server is actually online, the client will view the server as offline but still be able to connect.
broadcast-rcon-to-ops=true
Whether to send RCON command notifications to all online server operators.
broadcast-console-to-ops=true
This sends console command outputs to all currently online operators.
function-permission-level=2
The permission level required in order to be able to use functions. The default is 2, meaning it will take a player with a permission level of 2 or higher (see op-permission-level) in order to use it.
initial-enabled-packs=vanilla
List of datapacks to be enabled during world creation. If datapacks are defined here, they will be used when generating a new world.
initial-disabled-packs=
A list of datapacks of datapacks to be avoided when generating a new world.
text-filtering-config=
A config option to allow the ability to filter in-game text. However it is important to note that this has been found to be somewhat unreliable
Looking for affordable Minecraft Server Hosting? Prices start at $2.99. Go to Cybrancee.com and create your own Minecraft Server.