Skip to main content

Geyser Command Line Arguments and System Properties

Geyser offers a few command line arguments/system properties to allow you to configure Geyser without editing the config files. Additionally, you can suppress some warnings that may be printed to the console.

Configuration system properties​

You can set Geyser to automatically bind to a specific address and port by using the following command line arguments.
This is primarily aimed at server hosting providers to automatically configure servers for users.

note

The Geyser specific properties are prioritized over the plugin properties!

  • -DgeyserUdpPort=server or -DpluginUdpPort=server

    • -1 means UDP is not supported and will forcibly stop Geyser.
    • server means to match the port of the TCP server.
    • any other number means to use that specific port
    • This sets the Bedrock port, used as the RakNet port, the built-in signaling (TCP) port, and/or the NetherNet (WebRTC) port. With server, the signaling port is the Java server's port, so built-in signaling cannot run and Geyser uses external signaling instead, unless -DgeyserSignalingPort sets a separate port.
  • -DgeyserUdpAddress=server or -DpluginUdpAddress=server

    • server means to match the bind address of the TCP server
    • any other string will be used as-is for the bind address.
    • This address is also used for built-in signaling and NetherNet. NetherNet does not work on a loopback address such as 127.0.0.1.
  • -DgeyserTransport=nethernet

    • One of: nethernet, both (NetherNet and RakNet), or raknet. Overrides transport in the bedrock section.
    • With both, RakNet and NetherNet each need their own UDP port, so also set -DgeyserWebrtcPort (or -DgeyserRaknetPort).
  • -DgeyserSignalingMode=builtin

    • One of: builtin (Geyser runs signaling itself, over TCP), nxs (an external signaling service, Warden by default), or hybrid (both). Overrides mode in the signaling section.
    • If the built-in signaling port is the Java server's port, Geyser uses external signaling instead.
  • -DgeyserWebrtcPort=19133

    • The UDP port NetherNet (WebRTC) connections use. Overrides webrtc-port.
    • When not set, and the transport is nethernet, the NetherNet port follows -DgeyserUdpPort. With both, RakNet keeps that port, so this has to be set to a different port.
  • -DgeyserSignalingPort=19134

    • The TCP port built-in signaling (HTTP, or HTTPS if configured) listens on.
    • Use this to give signaling its own TCP port, for example when the Bedrock port is the Java server's port.
    • When not set, built-in signaling uses the Bedrock port (-DgeyserUdpPort).
  • -DgeyserAdvertiseAddresses=203.0.113.5,198.51.100.7

    • A comma-separated list of public addresses that built-in signaling tells players to connect to, for servers behind a NAT or in a container without a public address. Without a port, the NetherNet (WebRTC) port is used; add one (e.g. 203.0.113.5:19133) if players reach it on a different port number. Port forwarding is not set up for you.
    • Overrides advertise-addresses in the builtin part of the signaling section. For external signaling, use advertise-addresses in the nxs section of the config.

No longer relevant with Nethernet, and due for removal:

  • -DgeyserBroadcastPort=19132

    • This can be used in cases where the port Geyser runs on does not match the port players use to connect to (e.g. due to port forwarding routings).
    • When not set, it defaults to the same port that Geyser runs on.
    • This system property is RakNet only, and will be removed once RakNet is no longer supported by any version supported by Geyser
  • -DgeyserRaknetPort=19132

    • The UDP port RakNet listens on. Defaults to the Bedrock port (or -DgeyserUdpPort), which stays the port players connect with.

Disabling warnings and advanced configuration​

You may disable some warnings that may be printed to the console by using the following command line arguments. The values shown are the defaults used by Geyser, unless otherwise noted.

caution

Disabling Geyser warnings from being logged will not fix the real issue! Only disable them if you know what you are doing.

  • -DGeyser.PrintSecureChatInformation=true
    • Allows you to disable the warning about secure chat being disabled. Since the warning is sent when the server sends the warning, this option does not do much anymore.
  • -DGeyser.ShowScoreboardLogs=true
    • Allows you to disable warnings related to scoreboards, such as "Tried to update score without the existence of its requested objective".
  • -DGeyser.ShowResourcePackLengthWarning=true
    • Allows you to disable the warning about a resource pack having too long paths. Disabling this warning will not fix the underlying issue! Console players might not be able to join your server at all if you have a resource pack with paths exceeding the 80 character limit.
  • -DGeyser.PrintPingsInDebugMode=true
    • Controls if pings are being logged in debug mode.
  • -DGeyser.UseDirectAdapters=true
    • Allows you to disable the usage of NMS adapters. Disabling will result in a performance penalty and should only be used for debugging. This is Spigot-only and will not work on other platforms.
  • -DGeyser.BedrockNetworkThreads=8
    • Allows you to set the number of threads used for the Bedrock networking. This is not set to a specific number by default, but is instead calculated based on the available resources.
  • -DGeyser.AddTeamSuggestions=true
    • Allows you to turn off suggestions for teams in the scoreboard command. This is enabled by default, disabling this can help with performance if there are a lot of teams defined. Setting "command-suggestions" to false in the config will also disable this.
  • -DGeyser.NoPlayerListPS=true
    • Enables a less-than-ideal workaround to resolve client crashing when chatting / typing commands on PlayStation consoles with lots of player online. Disabled by default, as it is not needed for most setups.
  • -DGeyser.RakPacketLimit=120
    • Sets RakNet's per-ip per-tick (10ms) post-connection packet limit.
  • -DGeyser.RakGlobalPacketLimit=100000
    • Sets RakNet's per-tick (10ms) overall packet limit.
  • -DGeyser.RakRateLimitingDisabled=false
    • Allows you to disable RakNet's post-connection rate limiter. The rate limiter should not be disabled unless initial RakNet connections are being handled by a reverse proxy.
  • -DGeyser.RakSendCookie=true
    • Allows you to disable sending and validation of a cookie challenge in Open Connection Reply 1 packet. This should not be set to false unless Geyser is running behind a reverse proxy that is also sending a challenge to prevent IP spoofing.

Geyser-Standalone Specific Options​

--config [file]​

  • Alias: -c
  • Points to an alternative config file to use.

--gui / --nogui​

  • Alias: gui / nogui:
  • Forces GUI or non-GUI usage, depending on context.

Overriding specific config values​

Overriding a standard config option (e.g. command-suggestions):

--command-suggestions=false

Overriding a nested config option(e.g. the remote section with address):

--remote.address=test.geysermc.org