System properties
These system properties and environment variables can be set when you start your server allowing for the configuration of various settings.
How they work
Section titled “How they work”System properties are set when you start your server. For example, if you are using a .bat
or a .sh
file to start your server, you can add the system properties to the file. For example:
java -Dpaper.log-level=FINE -jar paper.jar
Where a -D
is used to set a system property, and the system property is paper.log-level
with a value of FINE
. Otherwise, just add them to the start command.
Environment variables are another way to pass values to Paper. They can be set in various ways, depending on your operating system and how you start Paper.
In most cases, you will not need to use these, unless you are running Paper in a (Docker) container or such.
List of system properties
Section titled “List of system properties”paper.playerconnection.keepalive
Section titled “paper.playerconnection.keepalive”- default:
30
- description: Controls how long the player connection will wait before closing when not receiving any keepalives, in seconds.
timings.bypassMax
Section titled “timings.bypassMax”- default:
unset
- description: Allows for bypassing the max amount of data to send to the Aikar’s Timings API. Setting this will not permit bypassing the limit unless the API is configured to allow it.
LetMeReload
Section titled “LetMeReload”- default:
unset
- description: This disables the reload confirmation message when using the
/reload
command.
paper.disableChannelLimit
Section titled “paper.disableChannelLimit”- default:
unset
- description: Disables the plugin channel limit for the server. This will disable the limit of 128 plugin channels per player.
net.kyori.adventure.text.warnWhenLegacyFormattingDetected
Section titled “net.kyori.adventure.text.warnWhenLegacyFormattingDetected”- default:
false
- description: Enables or disables the warning when legacy formatting is detected in a chat component.
Paper.DisableClassPrioritization
Section titled “Paper.DisableClassPrioritization”- default:
unset
- description: Disables the class prioritization system - mostly an issue when failing to relocate or shade properly.
Paper.disableFlushConsolidate
Section titled “Paper.disableFlushConsolidate”- default:
unset
- description: Disables the netty flush consolidation system.
Paper.debugDynamicMissingKeys
Section titled “Paper.debugDynamicMissingKeys”- default:
unset
- description: Enables debug logging for missing keys in NBT objects.
disable.watchdog
Section titled “disable.watchdog”- default:
unset
- description: Disables the watchdog warning system.
paper.explicit-flush
Section titled “paper.explicit-flush”- default:
unset
- description: Enables explicit flushing of the network channel.
Paper.enable-sync-chunk-writes
Section titled “Paper.enable-sync-chunk-writes”- default:
unset
- description: Syncs writes on each write call. This has a performance impact, particularly on hard drives.
paper.debug-sync-loads
Section titled “paper.debug-sync-loads”- default:
unset
- description: Enables debug logging for sync chunk loads.
Paper.ignoreWorldDataVersion
Section titled “Paper.ignoreWorldDataVersion”- default:
unset
- description: Ignores the world data version when loading a world. This is not recommended and will likely cause issues.
Paper.bypassHostCheck
Section titled “Paper.bypassHostCheck”- default:
unset
- description: Bypasses the host pattern matching attempt for the client when connecting to the server.
paper.ticklist-warn-on-excessive-delay
Section titled “paper.ticklist-warn-on-excessive-delay”- default:
unset
- description: Enables the warning when a tick list is scheduled with an excessive delay.
debug.rewriteForIde
Section titled “debug.rewriteForIde”- default:
unset
- description: Removes the NMS revision from the stack trace to allow for easier debugging in IDEs. It also remaps plugin CB calls to remove the version information.
convertLegacySigns
Section titled “convertLegacySigns”- default:
unset
- description: Converts legacy signs to the new format.
paper.maxCustomChannelName
Section titled “paper.maxCustomChannelName”- default:
64
- description: Sets the largest size that a plugin channel name can take.
Paper.maxSignLength
Section titled “Paper.maxSignLength”- default:
80
- description: Sets the maximum line length for signs.
Paper.minPrecachedDatafixVersion
Section titled “Paper.minPrecachedDatafixVersion”- default:
Minecraft world version + 1
- description: If you are expecting to convert a large number of chunks you might consider setting this to only convert from a point onwards.
Paper.WorkerThreadCount
Section titled “Paper.WorkerThreadCount”- default: half of available physical (not logical) cores or
1
if 3 or fewer cores are available - description: Sets the number of worker threads to use for chunk loading. See here for more info.
Paper.excessiveTELimit
Section titled “Paper.excessiveTELimit”- default:
750
- description: Splits tile entities into multiple packets if there are more than this many.
io.papermc.paper.suppress.sout.nags
Section titled “io.papermc.paper.suppress.sout.nags”- default:
unset
- description: Suppresses the nag message about using
System.out
/System.err
in a plugin.
paper.strict-thread-checks
Section titled “paper.strict-thread-checks”- default:
unset
- description: This sets the status of the AsyncCatcher so that it will always log an error if code is not run on the main thread.
Paper.skipServerPropertiesComments
Section titled “Paper.skipServerPropertiesComments”- default:
unset
- description: Skips the comments in the
server.properties
file.
Paper.debugInvalidSkullProfiles
Section titled “Paper.debugInvalidSkullProfiles”- default:
unset
- description: Enables debug logging for invalid skull profiles. This logs any invalid skulls in the world with the appropriate location information.
paper.alwaysPrintWarningState
Section titled “paper.alwaysPrintWarningState”- default:
unset
- description: Always prints the warning state for the particular level.
Paper.parseYamlCommentsByDefault
Section titled “Paper.parseYamlCommentsByDefault”- default:
true
- description: Sets whether to parse comments in YAML files by default.
paperclip.patchonly:
Section titled “paperclip.patchonly:”- default:
false
- description: If the server is started via the Paperclip patch utility (the default distribution on the downloads page) then this sets whether it should only patch the Vanilla server and download libraries without starting the server.
Paper.IgnoreJavaVersion
Section titled “Paper.IgnoreJavaVersion”- default:
false
- description: Allows you to bypass the Java version check. See here for more info.
paper.useLegacyPluginLoading
Section titled “paper.useLegacyPluginLoading”- default:
false
- description: Allows cyclic plugin loading. See here for more info.
Paper.DisableCommandConverter
Section titled “Paper.DisableCommandConverter”- default:
false
- description: Disables Paper’s automatic upgrading of commands, including items with custom data defined in command blocks and other places that may contain commands, to the new component format introduced in version 1.20.5.
paper.disableOldApiSupport
Section titled “paper.disableOldApiSupport”- default:
false
- description: Disables plugin compatibility measures that can otherwise result in a considerable delay of class loading (also known as “Commodore” plugin rewriting). This generally requires all of your plugins to be compiled against a recent API version.
paper.disablePluginRemapping
Section titled “paper.disablePluginRemapping”- default:
false
- description: Disables plugin remapping introduced in 1.20.5. For more information see the userdev documentation and the official announcement.
paper.preferSparkPlugin
Section titled “paper.preferSparkPlugin”- default:
false
- description: Whether the bundled spark profiler should be disabled in favor of a standalone plugin. If the spark plugin is not found, the bundled version will be loaded regardless of the setting, unless it is explicitly disabled.
paper.disableWorldSymlinkValidation
Section titled “paper.disableWorldSymlinkValidation”- default:
false
- description: Disables the folder walk and symlink validation when loading a world. Significantly improves world loading speed on massive worlds (>1TB). This does not disable symlink verification of datapacks.
minecraft.api.session.host
Section titled “minecraft.api.session.host”- default:
https://sessionserver.mojang.com
- description: Allows specifying of a custom session server URL e.g. for caching.
minecraft.api.services.host
needs to be set too for this to apply.
minecraft.api.services.host
Section titled “minecraft.api.services.host”- default:
https://api.minecraftservices.com
- description: Allows specifying of a custom services API URL e.g. for caching.
minecraft.api.session.host
needs to be set too for this to apply.
List of environment variables
Section titled “List of environment variables”PAPER_VELOCITY_SECRET
Section titled “PAPER_VELOCITY_SECRET”- default:
unset
- description: Overrides the
proxies.velocity.secret
global configuration option.