Skip to content

Instantly share code, notes, and snippets.

@eemunni
Last active April 26, 2021 16:57
Show Gist options
  • Select an option

  • Save eemunni/8c09d50d467724b903def1f981f05d92 to your computer and use it in GitHub Desktop.

Select an option

Save eemunni/8c09d50d467724b903def1f981f05d92 to your computer and use it in GitHub Desktop.
Paper undocumented startup parameters

Undocumented Paper startup parameters

I didn't find any website of these parameters so I decided to document these on my own. I don't know if there's more of them but atleast there are some now... Idfk why some of these are prefixed -DPaper instead of -Dpaper but I don't care enough tbh.

-Dpaper.explicit-flush Explicit Network Manager flushing (default: false)

Disables explicit network manager flushing. By default as it seems to work fine without flushing. You should only enable this if issues arise. Uses improved logic of doing the flushing on netty event loop instead on the main thread.

-DPaper.maxSignLength Limit Client Sign Length (default: 80)

Limits data that can be sent to signs as modified clients can send much more data compared to vanilla clients. Only impacts data sent from the client. Set -DPaper.maxSignLength=XX to change limit or -1 to disable it.

-Dpaper.debug-sync-loads Enable debug info about sync chunk loads (default: false)

Enables a tool to find which calls are causing sync chunk loads on server. To get a debug log for sync chunk loads, the command is /paper syncloadinfo.

-DPaper.IgnoreJavaVersion Disable java version check (default: false)

Disables Java version check if set to true. At the moment only up to Java 16 is supported.

-Dpaper.ticklist-warn-on-excessive-delay Warn when TickListServer is causing excessive delay (default: false)

Warns user on console when TickListServer is using excessive amount of ticks. Default threshold for this warning is 1200 ticks and it can be changed by setting -Dpaper.ticklist-excessive-delay-threshold.

-Dpaper.ticklist-excessive-delay-threshold TickListServer excessive delay threshold (default: 1200)

Sets excessive tick delay threshold for ticklist-warn-on-excessive-delay. Set -Dpaper.ticklist-excessive-delay-threshold=XX to change max tick delay for warning user. Uses ticks aka 1 second is 20 ticks.

-DPaper.enable-sync-chunk-writes Enable sync chunk writes (default: false)

Paper hides sync-chunk-writes in server.properties behind this flag as syncing writes on each write call has terrible performance on hard drives. You shouldn't set this to true unless you know what you're doing.

-Dpaper.minPrecachedDatafixVersion Set minimum precached DataFixerUpper version (default: "future version")

Mojang precaches every single potential rewrite rule that could ever exist on server startup. This is why server hogs up every CPU core at every start. Paper improves this by setting it to a future version so that no rewrite rules are precached. Howerer this will likely never be needed as the server will still run the same cache logic on demand when it's actually needed. Set -Dpaper.minPrecachedDatafixVersion=<dataVersionConvertingFrom> so server would only build from that point on.

-Dpaper.playerconnection.keepalive Set player connection keepalive timeout (default: 30)

Sets player connection keepalive timeout as there can be some players who timeout continuously. More info can be found from this thread: PaperMC/Paper#895 Set -Dpaper.playerconnection.keepalive=XX to change keepalive timeout time.

-Dpaper.disableChannelLimit Disable channel limit

Disables channel limit set by spigot as in some enviroments this can cause issues, e.g. server which allows and supports the usage of modpacks. Add -Dpaper.disableChannelLimit to disable this check. Use at your own risk.

Aikar's flags parameters

These don't really do anything server-wise as they are used on Timings to tell if you're using Aikar's flags.

-Dusing.aikars.flags (default: https://mcflags.emc.gs)

Tells to Paper timings system that you're using Aikar's flags.

-Daikars.new.flags (default: true)

Tells to Paper timings system if you're using old (false) or new (true) Aikar's flags. If yours is set false you should update your flags. Check them here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment