Skip to content

server.properties

server.properties lives in the server directory and uses the same key=value format as vanilla (a Java .properties subset: # and ! comments, = or : separators). On start the file is rewritten completely, like vanilla does: every key the server knows, with its effective value (an invalid value is corrected with a warning), while keys this server does not know are kept as they were.

The table is generated from the server’s own property definitions, so keys, defaults and ranges are exactly what the binary uses. A key marked parsed only is accepted and written back, but nothing in the engine reads its value yet.

46 of 46 keys

Network and access

KeyDefaultDescription
online-modetrueAuthenticate players with the Mojang session servers. Turn it off only for local testing or behind a proxy; with a Velocity forwarding secret set, the proxy authenticates and this key is ignored.
prevent-proxy-connectionsfalseVanilla key: include the client address in the session-server check.
server-ip(empty)Address to bind. Empty binds 127.0.0.1 (loopback only), unlike vanilla, which listens on all interfaces. Set 0.0.0.0 to accept remote players.
motdA Minecraft ServerMessage of the day in the server list.
server-port25567 (0 to 65535)TCP port. Defaults to 25567 here, not vanilla's 25565.
rate-limit0Packets per second a connection may send before it is disconnected. 0 disables the limit.
max-players20Player slots shown in the server list and enforced at login (operators with bypass excepted).
network-compression-threshold256Packets of at least this many bytes are zlib-compressed. -1 disables compression.
enable-statustrueAnswer server list pings.
hide-online-playersfalseDo not send the player sample in the server list.
player-idle-timeout0Minutes before an idle player is kicked (0 = never).
enforce-secure-profiletrueRequire clients to sign chat with their Mojang profile keys.
log-ipstrueLog player addresses on login.
chat-spam-threshold-seconds10 (0 to 1048576)Vanilla chat throttle: kick players who send too many chat messages within n seconds.
command-spam-threshold-seconds10 (0 to 1048576)The same throttle for commands.
broadcast-console-to-opstrueSend console command feedback to operators.
accepts-transfersfalseAccept players transferred from another server (the transfer packet).
white-listfalseOnly listed players may join (whitelist.json). Defaults to false here so a fresh dev server is joinable; vanilla 26.3 defaults to true. The server logs a warning while it is off.
velocity-forwarding-secret(empty)Shared secret for Velocity modern forwarding. Empty = off. With it set, logins without valid forwarding data are refused.
max-pending-logins256 (1 to 1048576)Logins allowed to sit in the encryption and session-server phases at once; beyond it a login is refused with "server busy".
enforce-whitelistfalseKick players who are not on the whitelist when it changes.
op-permission-level4 (0 to 4)Permission level (0-4) that /op grants.

Gameplay

KeyDefaultDescription
allow-flightfalseDo not kick survival players for flying.
force-gamemodefalseReset players to the default game mode on every join.
difficultyeasypeaceful, easy, normal or hard.
gamemodesurvivalDefault game mode: survival, creative, adventure or spectator.
hardcorefalseHardcore world flag.
spawn-protection16Radius (in blocks) around the world spawn that non-operators cannot modify.

World

KeyDefaultDescription
level-nameworldWorld folder name, relative to the server directory.
level-seed(empty)Seed for a NEW world; empty picks a random one. Existing worlds keep the seed saved in world_gen_settings.dat.
generate-structurestrueGenerate structures in a NEW world (written into its world_gen_settings.dat).
level-type(vanilla world)`flat` starts an instant superflat test world that is not saved. Anything else (or unset) is the real vanilla-compatible world.

Performance

KeyDefaultDescription
view-distance10Chunks sent to each player, in each direction. The main memory and bandwidth lever; see Performance tuning.
simulation-distance10Chunks around each player that are ticked (mobs, redstone, crops). Clamped like vanilla.
entity-broadcast-range-percentage100Scales how far entities are tracked and sent to players; clamped to 10..1000.
pause-when-empty-seconds60Vanilla key: seconds with no players before the server idles.
memory-profilelow`low` (default): three chunk workers, nothing pooled, caches trimmed when idle; `throughput`: all cores, pooled buffers. Also `--memory-profile`.
worker-threadshardware threads - 2 (at most 3 in the low profile)Threads for chunk generation, lighting and saving. Also `--workers`. Overrides the memory profile cap.

General

KeyDefaultDescription
bug-report-link(empty)Link offered as the "report a bug" entry of the server links (sent during configuration). Must be a valid http(s) link; an invalid one is logged and dropped.
resource-pack-id(empty)UUID of the resource pack. Empty = a UUID derived from the pack URL, so it stays the same while the URL does. An invalid UUID disables the pack (logged).
resource-pack(empty)URL of a server resource pack offered to clients during configuration. Empty = no pack.
resource-pack-sha1(empty)SHA-1 of the resource pack (40 hex digits) sent with the request, so clients can use a cached copy.
resource-pack-hash(empty)Deprecated spelling of resource-pack-sha1, used only when resource-pack-sha1 is empty.
require-resource-packfalseDisconnect a player who declines the resource pack.
resource-pack-prompt(empty)JSON text component shown with the resource pack request. Empty = none; invalid JSON is logged and the prompt is dropped.
enable-code-of-conductfalseSend the code of conduct texts (the .txt files of the codeofconduct/ folder) during configuration. The server does not start when that folder cannot be read.
  • server-port defaults to 25567 instead of 25565, and server-ip empty binds 127.0.0.1, not all interfaces. See ports and binding.
  • white-list defaults to false; vanilla 26.3 defaults to true. The server prints a warning at startup while the whitelist is off.
  • Extra keys: velocity-forwarding-secret, max-pending-logins, memory-profile, worker-threads, level-type.
  • Command line options override the matching property: --port, --workers, --memory-profile. Settings of Ramjet itself (memory, world generation, chunks, network, plugins, debug) are in a separate file, ramjet.toml.

memory-profile=low (the default) caps the chunk workers at 3, pools nothing and trims caches when the server is idle; throughput uses all cores and keeps pooled buffers for more speed with many players. Details and numbers are on performance tuning.