Skip to content

Building a Minecraft Server on Windows Server

June 14, 2020

Preparation

Cloud Server

This tutorial uses a Windows Server 2016 64-bit Datacenter Edition cloud server.

The server core uses the official Bedrock Dedicated Server from: https://www.minecraft.net/en-us/download/server/bedrock

Installation

Download the Server

https://www.minecraft.net/en-us/download/server/bedrock Select WINDOWS Server Software to download. After downloading, extract the zip file. The directory structure is as follows:

├─behavior_packs ├─definitions ├─development_behavior_packs ├─development_resource_packs ├─development_skin_packs ├─internalStorage ├─resource_packs ├─structures ├─worlds │  └─Bedrock level  // save file └─world_templates   bedrock_server.exe  // server executable   server.properties  // main server configuration file   whitelist.json  // whitelist file

Main Configuration File

server-name=Dedicated Server
# Server name

gamemode=survival
# Game mode for new players
# Options: "survival", "creative", or "adventure"

force-gamemode=false
# force-gamemode=false (or not set in server.properties) prevents the server
# from sending the game mode value to clients, using the world's saved game mode instead.
# force-gamemode=true forces the server to send the game mode value to clients,
# overriding the world's saved game mode.

difficulty=easy
# Set the world difficulty
# Options: "peaceful", "easy", "normal", or "hard"

allow-cheats=false
# If set to true, Xbox achievements are disabled and commands become available
# Options: "true" or "false"

max-players=10
# Maximum number of players
# Options: any positive integer

online-mode=true
# If "true", all connecting players must authenticate through Xbox Live
# Options: "true" or "false"
# The server must be able to connect to Xbox authentication servers.
# Recommended to enable.

white-list=false
# If true, player names must be listed in the separate whitelist.json file to join
# Options: "true" or "false"

server-port=19132
# Server IPv4 port
# Options: integer in range [1, 65535]

server-portv6=19133
# Server IPv6 port
# Options: integer in range [1, 65535]
# IPv6 is not widely adopted in some regions, so this may not be needed.

view-distance=32
# Maximum view distance (in chunks)
# Options: any positive integer
# Essential for preventing server lag

tick-distance=4
# The chunk radius that the player needs to load in-game
# Options: integer in range [4, 12]
# Essential for preventing server lag

player-idle-timeout=30
# How long a player can be idle before being kicked (in minutes; 0 = unlimited)
# Options: any positive integer

max-threads=8
# Maximum number of processor threads the server will attempt to use.
# If set to 0 or blank, it will use as many threads as possible.
# Options: any positive integer

level-name=Bedrock level
# World name
# Make sure the world exists!

level-seed=
# World seed
# Options: any string

default-player-permission=member
# Permission level for new players on first join
# Options: "visitor", "member", "operator"
# visitor = cannot break or place blocks
# member = normal member
# operator = administrator (op)

texturepack-required=false
# Force players to use the texture pack in the current world
# Options: "true" or "false"
# Be mindful of your server bandwidth.

content-log-file-enabled=false
# Allow content errors to be logged to a log file
# Options: "true" or "false"

compression-threshold=1
# The minimum size of raw network payload to compress
# Options: 0-65535

server-authoritative-movement=server-auth
# Options: "client-auth", "server-auth", "server-auth-with-rewind"
# Enables server-authoritative movement. If "server-auth", the server will reset
# local user behavior and send corrections when client position doesn't match server.
# If "server-auth-with-rewind" is enabled and the server sends a correction, the client
# will rewind time to the correction point, apply it, then replay all player input since.
# Results in smoother but more frequent corrections.
# Corrections only happen when correct-player-movement is set to "true".

player-movement-score-threshold=20
# Number of abnormal intervals needed before reporting abnormal behavior.
# To disable, turn off server-authoritative-movement.

player-movement-distance-threshold=0.3
# Distance difference between server and client positions needed to detect abnormal behavior
# To disable, turn off server-authoritative-movement.

player-movement-duration-threshold-in-ms=500
# Duration (in ms) that server and client positions must be out of sync before
# the abnormal movement value changes.
# To disable, turn off server-authoritative-movement.

correct-player-movement=false
# When set to "true", client position will be corrected to server position if
# movement exceeds thresholds.

server-authoritative-block-breaking=false
# When set to "true", the server syncs block-breaking calculations with the client
# to verify that the client should be able to break blocks when it thinks it can.
# Can detect and prevent fast-breaking cheats.

language=en_US
# Default console command language is English
# Options: filenames in \resource_packs\vanilla\texts

op-permission=1
# OP permission level; setting to 2 grants access to console-only commands

Start / Stop the Server

Double-click bedrock_server.exe to start the server. To stop, you must type stop in the console — otherwise your world save may be corrupted.

The server is now installed. You need to open port 19132 in your hosting provider’s security group to allow clients to connect.

Previous
Windows Activation Tools
Next
Deploying a Minecraft Bedrock Server on Ubuntu