mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2024-11-13 14:09:21 +00:00
599c4284f5
due to the extremely large performance cost of instantiating AsyncTasks, it's usually not worth bothering with async compression except for very large packets. While this large overhead can be significantly reduced by using specialized threads, it's early days in the testing stages for such improvements, and for now, we still have this to deal with. Since async compression is always used prior to player spawn, this change may slightly improve the performance of the pre-join stage of the game.
224 lines
9.0 KiB
YAML
224 lines
9.0 KiB
YAML
# Main configuration file for PocketMine-MP
|
|
# These settings are the ones that cannot be included in server.properties
|
|
# Some of these settings are safe, others can break your server if modified incorrectly
|
|
# New settings/defaults won't appear automatically in this file when upgrading.
|
|
|
|
settings:
|
|
#Whether to send all strings translated to server locale or let the device handle them
|
|
force-language: false
|
|
shutdown-message: "Server closed"
|
|
#Allow listing plugins via Query
|
|
query-plugins: true
|
|
#Enable plugin and core profiling by default
|
|
enable-profiling: false
|
|
#Will only add results when tick measurement is below or equal to given value (default 20)
|
|
profile-report-trigger: 20
|
|
#Number of AsyncTask workers.
|
|
#Used for plugin asynchronous tasks, world generation, compression and web communication.
|
|
#Set this approximately to your number of cores.
|
|
#If set to auto, it'll try to detect the number of cores (or use 2)
|
|
async-workers: auto
|
|
#Whether to allow running development builds. Dev builds might crash, break your plugins, corrupt your world and more.
|
|
#It is recommended to avoid using development builds where possible.
|
|
enable-dev-builds: false
|
|
|
|
memory:
|
|
#Global soft memory limit in megabytes. Set to 0 to disable
|
|
#This will trigger low-memory-triggers and fire an event to free memory when the usage goes over this
|
|
global-limit: 0
|
|
|
|
#Main thread soft memory limit in megabytes. Set to 0 to disable
|
|
#This will trigger low-memory-triggers and fire an event to free memory when the usage goes over this
|
|
main-limit: 0
|
|
|
|
#Main thread hard memory limit in megabytes. Set to 0 to disable
|
|
#This will stop the server when the limit is surpassed
|
|
main-hard-limit: 1024
|
|
|
|
#AsyncWorker threads' hard memory limit in megabytes. Set to 0 to disable
|
|
#This will crash the task currently executing on the worker if the task exceeds the limit
|
|
#NOTE: THIS LIMIT APPLIES PER WORKER, NOT TO THE WHOLE PROCESS.
|
|
async-worker-hard-limit: 256
|
|
|
|
#Period in ticks to check memory (default 1 second)
|
|
check-rate: 20
|
|
|
|
#Continue firing low-memory-triggers and event while on low memory
|
|
continuous-trigger: true
|
|
|
|
#Only if memory.continuous-trigger is enabled. Specifies the rate in memory.check-rate steps (default 30 seconds)
|
|
continuous-trigger-rate: 30
|
|
|
|
garbage-collection:
|
|
#Period in ticks to fire the garbage collector manually (default 30 minutes), set to 0 to disable
|
|
#This only affects the main thread. Other threads should fire their own collections
|
|
period: 36000
|
|
|
|
#Fire asynchronous tasks to collect garbage from workers
|
|
collect-async-worker: true
|
|
|
|
#Trigger on low memory
|
|
low-memory-trigger: true
|
|
|
|
#Settings controlling memory dump handling.
|
|
memory-dump:
|
|
#Dump memory from async workers as well as the main thread. If you have issues with segfaults when dumping memory, disable this setting.
|
|
dump-async-worker: true
|
|
|
|
max-chunks:
|
|
#Cap maximum render distance per player when low memory is triggered. Set to 0 to disable cap.
|
|
chunk-radius: 4
|
|
|
|
#Do chunk garbage collection on trigger
|
|
trigger-chunk-collect: true
|
|
|
|
world-caches:
|
|
#Disallow adding to world chunk-packet caches when memory is low
|
|
disable-chunk-cache: true
|
|
#Clear world caches when memory is low
|
|
low-memory-trigger: true
|
|
|
|
|
|
network:
|
|
#Threshold for batching packets, in bytes. Only these packets will be compressed
|
|
#Set to 0 to compress everything, -1 to disable.
|
|
batch-threshold: 256
|
|
#Compression level used when sending batched packets. Higher = more CPU, less bandwidth usage
|
|
compression-level: 6
|
|
#Use AsyncTasks for compression during the main game session. Increases latency, but may reduce main thread load
|
|
async-compression: false
|
|
#Threshold for async compression, in bytes. Only packets larger than this will be compressed asynchronously
|
|
#Due to large overhead of AsyncTask, async compression isn't worth it except for large packets
|
|
async-compression-threshold: 10000
|
|
#Experimental. Use UPnP to automatically port forward
|
|
upnp-forwarding: false
|
|
#Maximum size in bytes of packets sent over the network (default 1492 bytes). Packets larger than this will be
|
|
#fragmented or split into smaller parts. Clients can request MTU sizes up to but not more than this number.
|
|
max-mtu-size: 1492
|
|
#Enable encryption of Minecraft network traffic. This has an impact on performance, but prevents hackers from stealing sessions and pretending to be other players.
|
|
#DO NOT DISABLE THIS unless you understand the risks involved.
|
|
enable-encryption: true
|
|
|
|
debug:
|
|
#If > 1, it will show debug messages in the console
|
|
level: 1
|
|
|
|
player:
|
|
#Choose whether to enable player data saving.
|
|
save-player-data: true
|
|
#If true, checks that joining players' Xbox user ID (XUID) match what was previously recorded.
|
|
#This also prevents non-XBL players using XBL players' usernames to steal their data on servers with xbox-auth=off.
|
|
verify-xuid: true
|
|
|
|
level-settings:
|
|
#The default format that worlds will use when created
|
|
default-format: leveldb
|
|
|
|
chunk-sending:
|
|
#To change server normal render distance, change view-distance in server.properties.
|
|
#Amount of chunks sent to players per tick
|
|
per-tick: 4
|
|
#Radius of chunks that need to be sent before spawning the player
|
|
spawn-radius: 4
|
|
|
|
chunk-ticking:
|
|
#Radius of chunks around a player to tick
|
|
tick-radius: 3
|
|
#Number of blocks inside ticking areas' subchunks that get ticked every tick. Higher values will accelerate events
|
|
#like tree and plant growth, but at a higher performance cost.
|
|
blocks-per-subchunk-per-tick: 3
|
|
#IDs of blocks not to perform random ticking on.
|
|
disable-block-ticking:
|
|
#- grass
|
|
#- ice
|
|
#- fire
|
|
|
|
chunk-generation:
|
|
#Max. amount of chunks in the waiting queue to be populated
|
|
population-queue-size: 32
|
|
|
|
ticks-per:
|
|
autosave: 6000
|
|
|
|
auto-report:
|
|
#Send crash reports for processing
|
|
enabled: true
|
|
send-code: true
|
|
send-settings: true
|
|
send-phpinfo: false
|
|
use-https: true
|
|
host: crash.pmmp.io
|
|
|
|
anonymous-statistics:
|
|
#Sends anonymous statistics for data aggregation, plugin usage tracking
|
|
enabled: false #TODO: re-enable this when we have a new stats host
|
|
host: stats.pocketmine.net
|
|
|
|
auto-updater:
|
|
enabled: true
|
|
on-update:
|
|
warn-console: true
|
|
#Can be development, alpha, beta or stable.
|
|
preferred-channel: stable
|
|
#If using a development version, it will suggest changing the channel
|
|
suggest-channels: true
|
|
host: update.pmmp.io
|
|
|
|
timings:
|
|
#Choose the host to use for viewing your timings results.
|
|
host: timings.pmmp.io
|
|
|
|
console:
|
|
#Whether to accept commands via the console. If disabled, anything typed on the console will be ignored.
|
|
#Useful to save resources on headless servers where the console is never used (e.g. hosted server, Docker, etc.)
|
|
enable-input: true
|
|
#Choose whether to enable server stats reporting on the console title.
|
|
#NOTE: The title ticker will be disabled regardless if console colours are not enabled.
|
|
title-tick: true
|
|
|
|
aliases:
|
|
##This section allows you to add, remove or remap command aliases.
|
|
##A single alias can call one or more other commands (or aliases).
|
|
##Aliases defined here will override any command aliases declared by plugins or PocketMine-MP itself.
|
|
|
|
##To remove an alias, set it to [], like so (note that prefixed aliases like "pocketmine:stop" will remain and can't
|
|
##be removed):
|
|
#stop: []
|
|
|
|
##Commands are not removed, only their aliases. You can still refer to a command using its full (prefixed)
|
|
##name, even if all its aliases are overwritten. The full name is usually something like "pocketmine:commandname" or
|
|
##"pluginname:commandname".
|
|
#abort: [pocketmine:stop]
|
|
|
|
##To add an alias, list the command(s) that it calls:
|
|
#showtheversion: [version]
|
|
#savestop: [save-all, stop]
|
|
|
|
##To invoke another command with arguments, use $1 to pass the first argument, $2 for the second etc:
|
|
#giveadmin: [op $1] ## `giveadmin alex` -> `op alex`
|
|
#kill: [suicide, say "I tried to kill $1"] ## `kill alex` -> `suicide` + `say "I tried to kill alex"`
|
|
#giverandom: [give $1 $2, say "Someone has just received a $2!"] ## `giverandom alex diamond` -> `give alex diamond` + `say "Someone has just received a diamond!"`
|
|
|
|
##To make arguments mandatory (so that the command fails if they are not provided), use $$, e.g. $$1, $$2:
|
|
#makeadmin: [op $$1] ## `makeadmin alex` -> `op alex`, `makeadmin` with no arguments = error
|
|
|
|
##To pass through a range of arguments, put a - (hyphen) after the index:
|
|
#tpalias: [tp $1-] ## `tpalias 256 70 256` -> `tp 256 70 256` - this passes arguments 1 and everything after it to the `tp` command
|
|
|
|
##To change an existing command alias and make it do something else:
|
|
#tp: [suicide]
|
|
|
|
worlds:
|
|
#These settings will override the generator set in server.properties and allows loading multiple worlds
|
|
#Example:
|
|
#world:
|
|
# seed: 404
|
|
# generator: FLAT
|
|
# preset: 2;bedrock,59xstone,3xdirt,grass;1
|
|
|
|
plugins:
|
|
#Setting this to true will cause the legacy structure to be used where plugin data is placed inside the --plugins dir.
|
|
#False will place plugin data under plugin_data under --data.
|
|
#This option exists for backwards compatibility with existing installations.
|
|
legacy-data-dir: false
|