Skip to the page
calcite

Running a server

Configuration

server.properties as vanilla reads it, calcite.properties for Calcite's own settings, the server icon, and the lists of who may join.

A Calcite server's folder looks like a vanilla server's, and Calcite reads vanilla's files as vanilla reads them, so a server's folder can move over unchanged. Calcite's own settings go in a file of their own, calcite.properties.

server.properties#

Vanilla's file, read as vanilla reads it: UTF-8, or ISO-8859-1 if it isn't, with Java's rules for escapes, continued lines and comments. A setting that's missing or doesn't parse is its default.

As the server starts, it writes the file back as vanilla does, so a new server gets one with every setting vanilla has, at its default, byte for byte what the 26.3 jar writes but for line ends. Keys vanilla doesn't read are kept as they are.

The settings Calcite reads so far:

SettingWhat it does
server-ip, server-portWhere it listens. 25565 by default
online-modeChecks players' accounts with Mojang. On by default
motd, max-players, enable-status, hide-online-playersWhat the server list shows
white-listLets in only the players on whitelist.json and operators. On by default
level-name, level-seed, level-type, generate-structuresThe world's folder, and how a new one is made
gamemode, difficulty, hardcoreA name, such as creative, or vanilla's number
view-distance, simulation-distanceHow far players see, and how far the world runs, in chunks
network-compression-threshold, rate-limitPackets bigger than this are compressed; a player who sends more packets a second than rate-limit is kicked
enforce-secure-profile, prevent-proxy-connections, accepts-transfersSigned chat, proxy checks and transfers, as in vanilla
chat-spam-threshold-seconds, command-spam-threshold-secondsThe burst of chat and commands a player may send
log-ipsfalse logs IP hidden for every address
resource-pack, resource-pack-sha1, resource-pack-id, require-resource-pack, resource-pack-promptThe resource pack players are offered
enable-code-of-conductShows the .txt files in codeofconduct/ to each player in their language, to accept before they join
bug-report-linkThe link the game's pause menu offers for reporting a bug
region-file-compression, sync-chunk-writesHow region files are written

The rest are written back as vanilla writes them, and come into use as what they set comes to Calcite.

calcite.properties#

Calcite's own settings, in the same format, read the same way. A server that has none writes one, with each setting at its default and a comment on what it does:

SettingDefaultWhat it does
velocity-forwardingDefaultfalseLet players in only through a Velocity proxy, with its modern forwarding. The proxy authenticates them, so online-mode is ignored.
velocity-secretDefaultemptyThe text of Velocity's forwarding.secret, which signs what it forwards.
record-inputsDefaultfalseRecord everything the server is handed to a new log in recordings/, which --replay plays back. A log holds what players send and the server's key: keep it private.
login-throttleDefault0The fewest milliseconds between two tries to log in from one address, such as 4000 on a public server. 0 lets every try in, as vanilla does.
console-styleDefaultautoAuto shows Calcite's own look on a terminal, and vanilla's exact lines in a file or a pipe, which hosting panels read. calcite or vanilla picks one. logs/latest.log always has vanilla's lines.
console-dashboardDefaultoffBottom or top pins a bar to that edge of the terminal with how the server is doing: TPS, MSPT, players, RAM, CPU, chunks and uptime. Commands are typed beside it. It's drawn only on a terminal, never in a file, a pipe or a hosting panel.
force-view-distanceDefault0The view distance every player gets, from 2 to 1024 chunks, whatever their client asks for, for testing with views past the 127 a client can ask for. 0 is off.
chunk-send-capDefault0The most chunks a tick a player is sent, however many their client asks for. Vanilla's is 64. 0 sends as many as the client asks for.
chunk-send-multiplierDefault1.0What the chunks a tick a client asks for are multiplied by, from 0.1 to 100, to send faster than it asks, or slower. 1.0 sends what it asks for.
chunk-send-boostDefault4.0A client that asks for fewer than 64 chunks a tick, as one on a slow link does, is sent this many times as many, up to 64, vanilla's most. From 1, which is off, to 64.
chunk-workersDefault0How many threads load and generate chunks. 0 is one fewer than the processors. The chunks are the same whatever the number; only how fast changes.
level-random-seedDefaultemptySeed each level's random, which draws its weather and what else happens in it by chance, from this and the dimension's name, so two runs draw the same. Empty seeds them from the system's generator, as vanilla does.

A setting that stops the server, such as forwarding with no secret, is logged as Failed to start the minecraft server: ....

The server icon#

server-icon.png, beside server.properties, is the picture in the server list. It must be a 64 × 64 PNG, as vanilla checks it.

Who may join#

Calcite reads vanilla's lists as it starts, as vanilla writes them, and writes an empty one where there's none:

FileWhat it holds
whitelist.jsonThe players white-list=true lets in, by UUID and name
ops.jsonOperators, with their level and whether they may join a full server, bypassesPlayerLimit
banned-players.jsonBanned players, with the reason and when the ban ends, if it does
banned-ips.jsonBanned addresses

Players are told what vanilla tells them: that they're banned, why and until when, that they aren't on the whitelist, or that the server is full. The lists are read once, so restart the server after changing one, until the commands that change them come in Phase 6.

Tries to log in#

Vanilla lets an address try to log in as often as it likes. On a public server, login-throttle=4000 in calcite.properties refuses a try from an address that tried less than 4 seconds before, and tells the player to wait a moment.

This page is docs/guide/configuration.md in the repo. Change it there, and the site follows.