Paper Configuration Details

The Paper configuration file is paper.yml. Paper uses this file, along with spigot.yml, bukkit.yml, and server.properties to control your server's feature and performance options

Timings Settings

  • timings:
    • enabled: true
      • Controls the global on/off state for timings, we do not recommend you disable it
    • verbose: true
      • Makes timings data more specific with entity and other information
      • We recommend you leave this on, at least until you get your server tuned as you want it
    • server-name-privacy: true
      • Sets whether timings hides your server name (as set in server.properties) when pasting to the web
    • hidden-config-entries:
      • defaults:
        • database
        • settings.bungeecord-addresses
      • Information to hide from pasted config entries
    • history-interval: 300
      • How often history snapshots are taken, more often means more data
    • history-lenth: 3600
      • How much history, in total, to keep per paste

General Settings - Server-wide

  • settings:
    • limit-player-interactions: true
      • Whether or not the server should prevent people from spamming interaction packets to lag the server
    • load-permissions-yml-before-plugins: true
      • Load the servers permission.yml BEFORE plugins. Bukkit/Spigot behavior was after, resulting in plugins not seeing those permission in onEnable. Defaults to true. Set to false to go back to Bukkit behavior.
    • sleep-between-chunk-saves: false
      • Should server sleep between every chunk save. Will cause memory issues if you enable this.
    • enable-player-collisions: true
      • If disabled, Players should not be able to collide with each other. If enabled (default, vanilla), it will use the players scoreboard team setting. Setting this to false will not impact non player collisions unless you also enable allow-non-player-entities-on-scoreboards and then disable collision for that team.
    • save-empty-scoreboard-teams: false
      • Sets whether the server is to save empty scoreboard teams.
      • We do not recommend you enable this. Many plugins abuse empty scoreboard teams for sidebars and other features, saving them will increase join lag.
    • region-file-cache-size: 256
      • The size of the region file cache.
    • min-chunk-load-threads: 2
      • The number of threads to use for asynchronous chunk loading
      • Cranking this value super high doesn't make everything really fast, only mess with this as needed.
    • set-health-before-death-event: false
      • Determines if the server should set an entities health before it fires the death event.
      • true would be seen as the correct value by many, however it may break plugins, so false is the default.

World-Specific Settings

'default': - This prefix will allow you to specify which worlds the below settings apply to, "default" will make them apply to all worlds

  • verbose: true
    • Do we print all of the below settings in startup console
  • generator-settings:
    • NOTE: All the below settings will require new chunk generation to take effect
    • canyon: true
      • Should canyons generate in the world
    • caves: true
      • Should caves generate in the world
    • dungeon: true
      • Should dungeons generate in the world
    • fortress: true
      • Should fortresses generate in the world
    • mineshaft: true
      • Should mineshafts generate in the world
    • monument: true
      • Should monuments generate in the world
    • stronghold: true
      • Should strongholds generate in the world
    • temple: true
      • Should temples generate in the world
    • village: true
      • Should vilages generate in the world
    • flat-bedrock: false
      • Should bedrock be generated as a single flat layer
  • baby-zombie-movement-speed: 0.5
    • The speed at which baby zombies will move
    • The player moves at 0.1, for reference
  • fishing-time-range:
    • MinimumTicks: 100
      • Minimum amount of ticks before a fish will appear at the end of the fishing line
    • MaximumTicks: 900
      • Maximum amount of ticks before a fish will appear at the end of the fishing line
  • player-exhaustion:
    • block-break: 0.02500000037252903
      • Player food exhaustion rate for breaking blocks
    • swimming: 0.014999999664723873
      • Player food exhaustion rate for swimming
  • despawn-ranges:
    • soft: 32
      • Distance in blocks from the player at which mobs will be randomly selected for removal
    • hard: 128
      • Distance in blocks from the player at which all mobs will be removed immediately
  • falling-block-height-nerf: 0
    • Height at which falling block entities should be removed from the game
    • (0 is disabled)
  • tnt-entity-height-nerf: 0
    • Height at which tnt entities should be removed from the game
    • (0 is disabled)
  • remove-invalid-mob-spawner-tile-entities: true
    • Should the server remove bad mob spawner tile entities to prevent crashes
  • optimize-explosions: false
    • Should we use the optimized explosion algorithm
    • (removes dead entities in explosion radius)
  • mob-spawner-tick-rate: 1
    • Rate at which mob spawners are checked for spawn conditions, in ticks
  • cache-chunk-maps: false
    • Should we use optimized caching for chunk maps
    • (performance improvement when sending data for areas that don't change much)
  • tnt-explosion-volume: 4.0
    • How loud should TNT explosions be
  • game-mechanics:
    • disable-end-credits: false
      • Should we disable the end credits when a player leaves the end
    • disable-chest-cat-detection: false
      • Should the server disable the chest block's detection of ocelots and cats standing on them
      • (improves performance)
  • nether-ceiling-void-damage: false
    • Should the player take damage in (or above) the nether ceiling
  • fast-drain:
    • lava: false
      • Should lava drain faster than normal
    • water: false
      • Should water drain faster than normal
  • lava-flow-speed:
    • normal: 30
      • Speed in ticks at which lava will flow in overworld
    • nether: 10
      • Speed in ticks at which lava will flow in nether
  • squid-spawn-height:
    • minimum: 45.0
      • Minimum height at which squids will spawn
    • maximum: 63.0
      • Maximum height at which squids will spawn
  • max-growth-height:
    • cactus: 3
      • Maximum height cacti will grow to
    • reeds: 3
      • Maximum height reeds will grow to
  • disable-explosion-knockback: false
    • Should entities get knocked back by explosions
  • water-over-lava-flow-speed: 5
    • Speed at which water will flow when adjacent to lava
    • (useful for limiting wall gen)
  • enable-old-tnt-cannon-behaviors: false
    • Reverts the newer TNT and FallingBlock behaviors to a style more similar to Minecraft 1.7.
  • use-hopper-check: false
    • Should we use the hopper-check delay option in spigot.yml.
    • (disabled in vanilla Spigot, this lets you re-enable it)
  • allow-leashing-undead-horse: false
    • Should undead horses be able to be leashed
  • container-update-tick-rate: 1
    • How often should we update container inventories, in ticks.
    • (changes visible when moving inventory, recommended to not set above 5)
  • disable-thunder: false
    • Should the server ever experience a thunder weather-state.
  • disable-ice-and-snow: false
    • Should ice and snow generate in snowy biomes.
  • queue-light-updates: false
    • Queues light updates to happen at the end of each tick, after all other work has been done.
    • May skip some in low-TPS situations.
  • use-chunk-inhabited-timer: true
    • Should chunks have Regional Difficulty enabled. Setting this to false will ensure all chunks are treated equally. In Vanilla, the longer a player is in a chunk, the difficulty will rise.
  • all-chunks-are-slime-chunks: false
    • Should all chunks be eligible to spawn slime entities
  • allow-block-location-tab-completion: true
    • Should players be able to tab-complete block locations in supported commands
  • non-player-arrow-despawn-rate: -1
    • How many ticks to despawn arrows from a non player. -1 will use the spigot.yml arrow despawn rate config.
  • fire-physics-event-for-redstone: false
    • Whether or not to fire the BlockPhysicsEvent for redstone activity. This is VERY UNLIKELY to ever need to be true, unless a bad plugin is listening to the wrong event. Setting this false will have drastic impact to performance with heavy redstone. Plugins should be using BlockRedstoneEvent to detect redstone, not Physics Event.
  • grass-spread-tick-rate: 1
    • How many ticks between each grass block ticks in attempt to spread. Raising this value will improve performance but slow down grass spreading. 1 is vanilla (every tick)
  • keep-spawn-loaded: true
    • Should the server keep the spawn chunks loaded at all times
  • keep-spawn-loaded-range:
    • Configure how far your spawn should keep chunks loaded.
    • The spawns chunk is included in this range. If you set a range of 7, a box of 14x14 will stay loaded, not 15x15. This is the way Vanilla handles it.
    • Default value will be based on your view distance for that world defined in spigot.yml, capped to 8. However the value itself is not capped to 8, just the default if you have not set it.
    • Once set, you may go over 8 chunks. Recommended 0-1 for development servers and unused worlds to drastically speed up server start up time!
  • allow-non-player-entities-on-scoreboards: false
    • Vanilla defaults this to true, however when this setting is false, Paper will drastically reduce the performance impact of non player collisions. You would only ever need to set this to true if you intend to use /scoreboard team join teamname @e syntax to force non players into a team. It is recommended to not set this to true unless you know you are trying to do something that this blocks.
  • use-vanilla-world-scoreboard-name-coloring: false
    • Attempts to use vanilla scoreboard information to provide name coloring in chat.
    • Helpful for vanilla maps or vanilla map authors.
  • lootables:
    • auto-replenish: false
      • Sets whether lootable blocks and entities should automatically refill after a certain time period.
    • restrict-player-reloot: true
      • Sets whether a player who has already looted a lootable should be prevented from looting it a second time
    • reset-seed-on-fill: true
      • If enabled, a different item seed will be used on refill, meaning a different set of items will be filled than the prior time.
    • max-refills: -1
      • The number of times a lootable may be refilled, where -1 means infinitely.
    • refresh-min: 12h
      • The minimum amount of time before a lootable can be refilled.
      • Accepts values of seconds 12s, minutes 5m, hours 4h, or days 10d.
    • refresh-max: 2d
      • The maximum amount of time before a lootable will be refilled.
      • Accepts values of seconds 12s, minutes 5m, hours 4h, or days 10d.
  • frosted-ice
    • enabled: true
      • Should we tick frosted ice at all, as needed for melting and other effects
    • delay:
      • min: 20
        • Sets the minimum delay for potion effects on frosted ice
      • max: 40
        • Sets the maxmimum delay for potion effects on frosted ice
  • hopper
    • push-based: true
      • Should entities, such as dropped items and minecart chests/hoppers, search for hoppers instead of the other way around.
      • This should improve hopper performance, but may have a slight negative effect on dropped item entity performance, test and see.
  • delay-chunk-unloads-by: 30s
    • When players move in the world they will commonly go back and forth in a relatively small area, this causes lots of chunk load and unload activity. This is wasteful. This option introduces a delay of inactivity on a chunk before it unloads. Which lets servers will smaller worlds, or smaller active portions of their worlds, to stop wasting tick time on save -> unload -> reload happening constantly.
    • The s in this value refers to seconds.
  • elytra-hit-wall-damage: true
    • Allows servers to disable the damage given to entities when they fly into solid objects at speed using elytra. Disabling this option may improve performance in some situations, as it will skip all of the calculations needed.