Windows
Double-click the generated startup file or run:
start-server.bat
Your world. Your rules. Always online.
Create a persistent Creative or peaceful Survival world that stays available for your community, even when the owner is not playing.
Official Server Software
The official dedicated server creates its own configuration, world storage, access controls, logs, and startup scripts. Keep the JAR in a folder of its own and the server keeps everything it needs beside it.
Download VoxelDedicatedServer.jarImportant: The server JAR does not bundle Java. Install Java 25 first and make sure the java command is available.
Start Here
Make a new empty folder, such as C:\VoxelServer on Windows or ~/voxel-server on Linux. Do not run the JAR from Downloads, the desktop root, or a protected system folder.
Keep the filename VoxelDedicatedServer.jar. The generated startup scripts expect that exact name.
The first launch creates every required file and then closes intentionally. This is setup, not a crash.
Voxel.properties.Choose the server name, message, port, player limit, world rules, generation, and performance settings before the first real world starts.
Use start-server.bat on Windows or start-server.sh on Linux. Wait for the console to report that the server is ready.
Open Servers, choose local or dedicated server, enter the address and configured port, then save and join.
Double-click the generated startup file or run:
start-server.bat
Allow the script to run once, then start it:
chmod +x start-server.sh
./start-server.sh
Use the same memory settings without the graphical console:
java -Xms1G -Xmx4G -jar VoxelDedicatedServer.jar --nogui
Always stop safely. Enter stop in the console before closing a terminal, restarting the computer, replacing the JAR, or copying a live world backup.
First Launch
Voxel.propertiesThe main server, world, generation, and performance configuration.
access-control.propertiesPermanent administrator and ban records tied to Voxel account IDs.
start-server.batThe recommended Windows startup script with prepared memory options.
start-server.shThe recommended Linux and Unix startup script.
worlds/The dedicated world, player locations, inventories, blocks, entities, and server state.
logs/latest.logThe latest startup, connection, warning, and error information.
SERVER-README.txtAn offline command and property reference refreshed by the JAR.
Keep the JAR and all generated files together. Moving only the JAR creates a separate fresh server in the new location.
Configuration Reference
Stop the server before editing this file. Every setting uses name=value. Lines beginning with # or ! are comments. Named choices are not case-sensitive, but property names must be exact. Invalid values stop startup and explain the problem in the console and log.
| Property | Allowed values | What it controls |
|---|---|---|
server-name | Text, up to 64 characters | The public name displayed in the Voxel server browser. Blank values use the default name. |
motd | Text, up to 160 characters | The short server message shown under the name in the server browser. |
server-port | 1 through 65535Default: 60333 | The TCP port used by Voxel clients. The firewall and router must use the same port. |
max-players | 1 through 64Default: 8 | The maximum number of connected players. |
| Property | Allowed values | What it controls |
|---|---|---|
world-name | Text, up to 64 characters | The world name shown to players. It can be changed after creation. |
game-mode | survival or creative | The active mode for the dedicated world. This setting also applies to an existing world. |
allow-cheats | true or false | Enables or disables supported cheat commands. Server administration commands remain controlled by admin status. |
keep-inventory-on-death | true or false | Controls whether Survival players retain items when they die. |
time-mode | cycle, always-day, or always-nightAliases: day, night, always_day, always_night | Runs the normal day-night cycle or locks the world to day or night. |
day-length-minutes | 5 through 120Default: 20 | The length of a complete day-night cycle. Fixed day or night modes ignore it. |
These values are used when the server creates a world. Existing terrain does not regenerate when they change.
| Property | Allowed values | What it controls |
|---|---|---|
world-id | Blank or an existing generated ID, up to 96 characters | Blank creates or selects the server world and is filled automatically. Do not invent an ID. To make a completely fresh world, stop the server, back up and move the old worlds folder, then clear this value. |
world-type | generated or flat | Selects seeded terrain generation or a flat building world. |
seed | Blank or a signed 64-bit integer | Blank selects a random seed. Reusing a seed and the same generation settings recreates the same base terrain. |
world-radius | small, medium, large, or unlimited | Small: 50,000 blocks. Medium: 100,000. Large: 500,000. Unlimited: up to 29,999,984 blocks. |
flat-surface-y | -63 through 312Default: 3 | The surface height for new flat worlds. |
sea-level | 24 through 96Default: 62 | The generated ocean level for new terrain worlds. |
biome-size | regular or large | Controls the broad scale of biome regions. |
terrain-scale-percent | 50 through 200Default: 100 | Scales terrain height variation for a new generated world. |
Natural ponds are part of generated terrain by default and do not have a separate property.
| Property | Allowed values | What it controls |
|---|---|---|
render-distance | 2 through 16Default: 6 | The chunk radius prepared for visible world data around players. |
load-distance | At least render distance, up to 20Default: 10 | The wider chunk radius kept active for world simulation and streaming. |
spawn-prime-radius | 1 through 10Default: 4 | How much terrain is prepared around spawn during startup. Radius 4 prepares a 9 by 9 area, or 81 chunks. |
autosave-seconds | 10 through 600Default: 30 | How often the server automatically saves world and player state. |
Performance tip: Increase distances gradually. Every connected player can keep a different part of the world active, so high values multiply server work.
Player Connections
Use localhost or 127.0.0.1 with the configured server port.
Use the host computer's local IPv4 address, commonly beginning with 192.168. or 10.
Use the host's public address and forward the configured TCP port to the server computer.
server-port from the router to the server computer.No relay is used. A dedicated Voxel server must be directly reachable. If the provider uses CGNAT or blocks inbound traffic, request a public IPv4 address, use approved router/VPN port-forwarding software, or host from another connection.
Server Console
Commands work with or without a leading slash. Use exact usernames where requested.
helpLists the commands available in the server console.
listShows connected players and the current player count.
saveImmediately saves the world and connected player state.
say <message>Broadcasts a server message to every connected player.
admin <username>Grants administrator status to a known account. The player must have connected at least once.
removeadmin <username>Revokes administrator status from the account.
kick <username>Disconnects a player without preventing them from reconnecting.
ban <username>Disconnects and permanently blocks the player's Voxel account until unbanned.
unban <username>Removes a server ban from the account.
stopSafely saves the server, disconnects players, and shuts down.
Ownership and Safety
Administrator and ban records use the player's permanent Voxel account ID, not only the visible username. Changing a username does not remove a ban or administrator status.
Use admin username only from the owner-controlled server console. Administrators can use supported moderation commands in game.
Do not share access-control.properties, logs, or world files publicly. Keep write access limited to the account running the server.
Console-only ownership: Granting and removing administrator status is intentionally managed from the dedicated server console so an in-game account cannot take ownership of the server.
Keep It Safe
Stop the server, then copy worlds/, Voxel.properties, and access-control.properties to a dated backup folder.
Stop and back up the server. Replace VoxelDedicatedServer.jar with the current download, preserve the filename, and start normally.
Move every server file together. Confirm Java 25 and firewall access on the new host before starting.
Never copy an active world while players are connected. The autosave system protects normal play, but a file copy taken while data is changing may not represent one complete moment.
Common Fixes
That is expected. Edit Voxel.properties, then launch the server again with the generated startup script.
Move it to its own writable folder and run it from a terminal to see the error. Confirm java -version reports Java 25. On Windows, avoid protected folders such as C:\Windows\System32.
Stop the server, correct the exact property named in the message, and use a value from the tables on this page. Details are also written to logs/latest.log.
Stop the other program using the port or change server-port. Update the firewall, router forwarding, and saved Voxel server address to match.
The server works, but inbound Internet access is blocked. Verify the public address, TCP port forwarding, Windows/Linux firewall, router firewall, and whether the ISP uses CGNAT.
The JAR is likely running from a different folder, world-id changed, or the original worlds folder is missing. Stop the server and restore the matching configuration and world folder from backup.
Lower render-distance and load-distance, avoid oversized spawn priming, confirm the host has enough memory and CPU capacity, and use a wired network where possible.
Update the dedicated server JAR so it matches the current public Voxel 2 release. Back up first, then replace only the JAR.
Ready to build together?
Download the official server, create your configuration, and give your community a world that is always waiting.