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.
The Geyser specific properties are prioritized over the plugin properties!
-
-DgeyserUdpPort=serveror-DpluginUdpPort=server-1means UDP is not supported and will forcibly stop Geyser.servermeans 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. Withserver, the signaling port is the Java server's port, so built-in signaling cannot run and Geyser uses external signaling instead, unless-DgeyserSignalingPortsets a separate port.
-
-DgeyserUdpAddress=serveror-DpluginUdpAddress=serverservermeans 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), orraknet. Overridestransportin thebedrocksection. - With
both, RakNet and NetherNet each need their own UDP port, so also set-DgeyserWebrtcPort(or-DgeyserRaknetPort).
- One of:
-
-DgeyserSignalingMode=builtin- One of:
builtin(Geyser runs signaling itself, over TCP),nxs(an external signaling service, Warden by default), orhybrid(both). Overridesmodein thesignalingsection. - If the built-in signaling port is the Java server's port, Geyser uses external signaling instead.
- One of:
-
-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. Withboth, RakNet keeps that port, so this has to be set to a different port.
- The UDP port NetherNet (WebRTC) connections use. Overrides
-
-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-addressesin thebuiltinpart of thesignalingsection. For external signaling, useadvertise-addressesin thenxssection of the config.
- 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.
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.
- The UDP port RakNet listens on. Defaults to the Bedrock
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.
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
falseunless Geyser is running behind a reverse proxy that is also sending a challenge to prevent IP spoofing.
- Allows you to disable sending and validation of a cookie challenge in Open Connection Reply 1 packet. This should not be set to
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