From a2054db5c4a99eb1ca6af5c3e4bbd65cc77f3ccb Mon Sep 17 00:00:00 2001 From: phit Date: Tue, 20 Feb 2018 11:05:11 +0100 Subject: [PATCH] Update configuration page and add deny-chunk-requests to the optimization page (#663) * Update configuration page and add deny-chunk-requests to the optimization page * Final changes --- .../configuration/sponge-conf.rst | 331 +++++++++++------- .../server/management/performance-tweaks.rst | 19 + 2 files changed, 219 insertions(+), 131 deletions(-) diff --git a/source/server/getting-started/configuration/sponge-conf.rst b/source/server/getting-started/configuration/sponge-conf.rst index c0e9745c210b..1ff31d8f3cd6 100644 --- a/source/server/getting-started/configuration/sponge-conf.rst +++ b/source/server/getting-started/configuration/sponge-conf.rst @@ -19,32 +19,46 @@ Global Properties of Sponge ======================================== ======== ========== =============================================== Property Type Default Description ======================================== ======== ========== =============================================== +config-enabled boolean false In dimension/world configs, it allows the + config to override inherited configs. **Block Tracking** -block-blacklist string null Adds block ids you wish to blacklist for player +block-blacklist string null Block IDs that will be blacklisted for player block placement tracking. enabled boolean true Adds player tracking support for block positions. **Bungeecord** -ip-forwarding boolean false Allows bungeecord to forward ip address, UUID, +ip-forwarding boolean false Allows BungeeCord to forward IP address, UUID, and Game Profile to the server. **Cause Tracker** -report-different-world-changes boolean false If enabled, Sponge will report when a mod makes - an unexpected world change. +capture-async-spawning-entities boolean true If enabled, will report when mods/plugins attempt to spawn + entities off the main server thread. +generate-stacktrace-per-phase boolean false If enabled, Sponge will show some more thorough debugging + for PhaseStates such that a StackTrace is created every + time a PhaseState switches, allowing for more fine grained + troubleshooting in the cases of runaway phase states. + Note that this is not extremely performant and may have + some associated costs with generating the stack traces + constantly. +maximum-printed-runaway-counts integer 3 verbose boolean true If enabled, the cause tracker will print out when there are too many phases being entered. +verbose-errors boolean false If enabled, the phase tracker will dump extra information + about the current phases when certain non-PhaseTracker + related exceptions occur. This is usually not necessary, + as the information in the exception itself can normally be + used to determine the cause of the issue. **Commands** -aliases string null Alias will resolve conflicts when multiple +aliases string null Command aliases will resolve conflicts when multiple plugins request a specific command. Correct syntax is ``=`` Example: :: aliases = { - title=myPlugin + sethome=homeplugin } -config-enabled boolean false In dimension/world configs, it allows the - config to override inherited configs. + **Debug Options** concurrent-entity-checks boolean false Detects and prevents attempts to use entities concurrently. @@ -123,7 +137,7 @@ prevent-sign-command-exploit boolean true Prevents an expl a player without permission. **General Settings** config-dir string see config Sets the directory for plugin configurations. -disable-warnings boolean false Disable warning messages to server Admins. +disable-warnings boolean false Disable warning messages to server admins. file-io-thread-sleep boolean false Enables sleeping between chunk saves. plugins-dir string See config Sets an additional directory to search for plugins. **Ip Sets** @@ -155,15 +169,25 @@ exploit-sign-command-updates boolean false Logs when a serv log-stacktraces boolean false Add stack traces to dev logging. world-auto-save boolean false If true, logs when a world auto-saves its chunk data. **Modules** -bungeecord boolean false Enables bungeecord support. +block-capturing-control boolean true Enables block capturing control. +bungeecord boolean false Enables BungeeCord support. entity-activation-range boolean true Enables the entity activation range settings. entity-collisions boolean true Enables entity collision settings. exploits boolean true Enables the exploit prevention module. -game-fixes boolean false Enables the game fixes module. +movement-checks boolean false Enables the configuration of vanilla movement and + speed checks. optimizations boolean true Enables the optimizations module. realtime boolean false Use real time instead of ticks. +tileentity-activation boolean false Enables the tileentity activation range settings. timings boolean true Enables timing settings. tracking boolean true Enables the tracking module. +**Movement Checks** +moved-wrongly boolean true Controls whether the 'player/entity moved wrongly!' check + will be enforced +player-moved-too-quickly boolean true Controls whether the 'player moved too quickly!' check + will be enforced +player-vehicle-moved-too-quickly boolean true Controls whether the 'vehicle of player moved too quickly!' + check will be enforced **Optimizations** See :doc:`../../management/performance-tweaks` **Spawner** spawn-limit-ambient integer 15 The number of ambients that can spawn around the player. @@ -178,6 +202,14 @@ tick-rate-monster integer 1 The monster aliases string null Aliases for SQL connections. This is done in the format ``jdbc:protocol://[username[:password]@]host/database`` +**Teleport Helper** +force-blacklist boolean false If enabled, this blacklist will always be respected, + otherwise, plugins can choose whether or not to respect it. +unsafe-body-block-ids array null Block IDs that are listed here will not be selected by + Sponge's safe teleport routine as a safe block for players + to warp into. +unsafe-floor-block-ids array null Block IDs that are listed here will not be selected by + Sponge's safe teleport routine as a safe floor block. **Timings** enabled boolean true If timings are enabled. hidden-config-entries string sponge.sql The hidden config entries. @@ -201,8 +233,10 @@ chunk-gc-tick-interval integer 1 The tick interva chunks in a world. chunk-unload-delay integer 30 The number of seconds to delay a chunk unload once marked inactive. -deny-chunk-requests boolean true If enabled, any request for a chunk not currently - loaded will be denied. +deny-chunk-requests boolean false If enabled, any request for a chunk not currently + loaded will be denied. Note: As this is an experimental + setting for performance gain, if you encounter any issues + then we recommend disabling it. flowing-lava-decay boolean false Lava behaves like vanilla water when the source block is removed, when set to true. gameprofile-lookup-batch-size integer 1 The amount of GameProfile requests to make against @@ -215,9 +249,14 @@ infinite-water-source boolean false False = Default invalid-lookup-uuids array See config The list of uuid's that shouldn't be looked up on Mojang's session server. item-merge-radius integer 2.5 The merge radius for item entities. -keep-spawn-loaded boolean false If the spawn should stay loaded with no players. Has no effect in global config. Config doesn't need to be enabled either, because it will always fall back to the world config. +keep-spawn-loaded boolean false If the spawn should stay loaded with no players. Has no + effect in global config. Config doesn't need to be enabled + either, because it will always fall back to the world + config. leaf-decay boolean true If enabled, allows natural leaf decay. -load-on-startup boolean false If the world should be loaded on startup. Has no effect in global config. Config doesn't need to be enabled either, because it will always fall back to the world config. +load-on-startup boolean false If the world should be loaded on startup. Has no effect + in global config. Config doesn't need to be enabled either, + because it will always fall back to the world config. mob-spawn-range integer 8 Specifies the radius (in chunks) of where creatures will spawn. This value is capped to the current view distance setting in server.properties. @@ -228,13 +267,16 @@ mob-spawn-range integer 8 Specifies the ra "minecraft:default_nether" world DIM-1 The default nether world. "minecraft:default_the_end" world DIM1 The default end world. pvp-enabled boolean true If the would allows PVP combat. +view-distance integer -1 Allows you to set view distance per world, valid range + 3-32, when set to -1 the server-wide view distance will + be used instead weather-ice-and-snow boolean true Enable to allow the natural formation of ice and snow. weather-thunder boolean true Enable to initiate thunderstorms. world-enabled boolean true Enable if this world should be registered. ======================================== ======== ========== =============================================== -This config was generated using SpongeForge build 2811 (with Forge 2555), SpongeAPI version 7.0: +This config was generated using SpongeForge build 2931 (with Forge 2611), SpongeAPI version 7.0.0: .. code-block:: none @@ -249,62 +291,74 @@ This config was generated using SpongeForge build 2811 (with Forge 2555), Sponge sponge { block-capturing { - # If enabled, newly discovered blocks will be added to this config with a default value. + # If 'true', newly discovered blocks will be added to this config with a default value. auto-populate=false # Per-mod block id mappings for controlling capturing behavior mods { extrautils2 { - # Set to true to perform individual capturing (i.e. skip bulk capturing) for scheduled ticks for a block type + # If 'true', individual capturing (i.e. skip bulk capturing) for scheduled ticks for + # a block type will be performed. block-tick-capturing { redstoneclock=true } - # Set to false if you want to ignore all specific rules for this mod + # If 'false', all specific rules for this mod will be ignored. enabled=true } } } block-tracking { - # Add block ids you wish to blacklist for player block placement tracking. + # Block IDs that will be blacklisted for player block placement tracking. block-blacklist=[] - # If enabled, adds player tracking support for block positions. Note: This should only be disabled if you do not care who caused a block to change. + # If 'true', adds player tracking support for block positions. + # Note: This should only be disabled if you do not care who caused a block to change. enabled=true } bungeecord { - # If enabled, allows BungeeCord to forward IP address, UUID, and Game Profile to this server + # If 'true', allows BungeeCord to forward IP address, UUID, and Game Profile to this server. ip-forwarding=false } cause-tracker { - # If true, when a mod or plugin attempts to spawn an entity - # off the main server thread, Sponge will automatically - # capture said entity to spawn it properly on the main - # server thread. The catch to this is that some mods are - # not considering the consequences of spawning an entity - # off the server thread, and are unaware of potential race + # If set to 'true', when a mod or plugin attempts to spawn an entity + # off the main server thread, Sponge will automatically + # capture said entity to spawn it properly on the main + # server thread. The catch to this is that some mods are + # not considering the consequences of spawning an entity + # off the server thread, and are unaware of potential race # conditions they may cause. If this is set to false, - # Sponge will politely ignore the entity being spawned, + # Sponge will politely ignore the entity being spawned, # and emit a warning about said spawn anyways. capture-async-spawning-entities=true - # If true, when a mod changes a world that is different - # from an expected world during a WorldTick event, the - # phase tracker will identify both the expected changed - # world and the actual changed world. This does not mean - # that the changes are being dropped, simply it means that - # a mod is possibly unknowingly changing a world other - # than what is expected. - report-different-world-changes=false - # If true, the phase tracker will print out when there are too many phases - # being entered, usually considered as an issue of phase re-entrance and - # indicates an unexpected issue of tracking phases not to complete. - # If this is not reported yet, please report to Sponge. If it has been + # If 'true', more thorough debugging for PhaseStates + # such that a StackTrace is created every time a PhaseState + # switches, allowing for more fine grained troubleshooting + # in the cases of runaway phase states. Note that this is + # not extremely performant and may have some associated costs + # with generating the stack traces constantly. + generate-stacktrace-per-phase=false + # If verbose is not enabled, this restricts the amount of + # runaway phase state printouts, usually happens on a server + # where a PhaseState is not completing. Although rare, it should + # never happen, but when it does, sometimes it can continuously print + # more and more. This attempts to placate that while a fix can be worked on + # to resolve the runaway. If verbose is enabled, they will always print. + maximum-printed-runaway-counts=3 + # If 'true', the phase tracker will print out when there are too many phases + # being entered, usually considered as an issue of phase re-entrance and + # indicates an unexpected issue of tracking phases not to complete. + # If this is not reported yet, please report to Sponge. If it has been # reported, you may disable this. verbose=true - # If true, the phase tracker will dump extra information about the current phaseswhen certain non-PhaseTracker related exceptions occur. This is usually not necessary, as the information in the exception itself can normally be used to determine the cause of the issue + # If 'true', the phase tracker will dump extra information about the current phases + # when certain non-PhaseTracker related exceptions occur. This is usually not necessary, as the information + # in the exception itself can normally be used to determine the cause of the issue verbose-errors=false } commands { - # A mapping from unqualified command alias to plugin id of the plugin that should handle a certain command + # Command aliases will resolve conflicts when multiple plugins request a specific command, + # Correct syntax is = e.g. "sethome=homeplugin" aliases {} - # Patches the specified commands to respect the world of the sender instead of applying the changes on the all worlds. + # Patches the specified commands to respect the world of the sender instead of applying the + # changes on the all worlds. multi-world-patches { defaultgamemode=true difficulty=true @@ -317,11 +371,12 @@ This config was generated using SpongeForge build 2811 (with Forge 2555), Sponge worldborder=true } } - # This setting does nothing in the global config. In dimension/world configs, it allows the config to override config(s) that it inherits from + # This setting does nothing in the global config. In dimension/world configs, it allows the config + # to override config(s) that it inherits from config-enabled=false debug { - # Detect and prevent certain attempts to use entities concurrently. - # WARNING: May drastically decrease server performance. Only enable this to debug a pre-existing issue + # Detect and prevent certain attempts to use entities concurrently. + # WARNING: May drastically decrease server performance. Only set this to 'true' to debug a pre-existing issue. concurrent-entity-checks=false # Dump chunks in the event of a deadlock dump-chunks-on-deadlock=false @@ -329,7 +384,7 @@ This config was generated using SpongeForge build 2811 (with Forge 2555), Sponge dump-heap-on-deadlock=false # Dump the server thread on deadlock warning dump-threads-on-warn=false - # Enable Java's thread contention monitoring for thread dumps + # If 'true', Java's thread contention monitoring for thread dumps is enabled. thread-contention-monitoring=false } entity { @@ -349,13 +404,13 @@ This config was generated using SpongeForge build 2811 (with Forge 2555), Sponge living-soft-despawn-minimum-life=30 # The lower bounded range where living entities near a player may potentially despawn living-soft-despawn-range=32 - # Max size of an entity's bounding box before removing it. Set to 0 to disable + # Maximum size of an entity's bounding box before removing it. Set to 0 to disable max-bounding-box-size=1000 - # Square of the max speed of an entity before removing it. Set to 0 to disable + # Square of the maximum speed of an entity before removing it. Set to 0 to disable max-speed=100 } entity-activation-range { - # If enabled, newly discovered entities will be added to this config with a default value. + # If 'true', newly discovered entities will be added to this config with a default value. auto-populate=false # Default activation ranges used for all entities unless overridden. defaults { @@ -369,22 +424,24 @@ This config was generated using SpongeForge build 2811 (with Forge 2555), Sponge mods {} } entity-collisions { - # If enabled, newly discovered entities/blocks will be added to this config with a default value. + # If 'true', newly discovered entities/blocks will be added to this config with a default value. auto-populate=false - # Default max collisions used for all entities/blocks unless overridden. + # Default maximum collisions used for all entities/blocks unless overridden. defaults { blocks=8 entities=8 } - # Max amount of entities any given entity or block can collide with. This improves performance when there are more than 8 entities on top of eachother such as a 1x1 spawn pen. Set to 0 to disable. + # Maximum amount of entities any given entity or block can collide with. This improves + # performance when there are more than 8 entities on top of each other such as a 1x1 + # spawn pen. Set to 0 to disable. max-entities-within-aabb=8 # Per-mod overrides. Refer to the minecraft default mod for example. mods { botania { blocks {} - # Default max collisions used for all entities/blocks unless overridden. + # Default maximum collisions used for all entities/blocks unless overridden. defaults {} - # Set to false if you want mod to ignore entity collision rules. + # If 'false', entity collision rules for this mod will be ignored. enabled=true entities { botaniacorporeaspark=-1 @@ -401,9 +458,9 @@ This config was generated using SpongeForge build 2811 (with Forge 2555), Sponge "wooden_button"=1 "wooden_pressure_plate"=1 } - # Default max collisions used for all entities/blocks unless overridden. + # Default maximum collisions used for all entities/blocks unless overridden. defaults {} - # Set to false if you want mod to ignore entity collision rules. + # If 'false', entity collision rules for this mod will be ignored. enabled=true entities { thrownpotion=-1 @@ -412,28 +469,33 @@ This config was generated using SpongeForge build 2811 (with Forge 2555), Sponge } } exploits { + # Prevents an exploit in which the client sends a packet with the + # itemstack name exceeding the string limit. prevent-creative-itemstack-name-exploit=true + # Prevents an exploit in which the client sends a packet to update a sign containing + # commands from a player without permission. prevent-sign-command-exploit=true } general { - # The directory for Sponge plugin configurations, relative to the - # execution root or specified as an absolute path. - # Note that the default: "${CANONICAL_GAME_DIR}/config" - # is going to use the "plugins" directory in the root game directory. - # If you wish for plugin configs to reside within a child of the configuration - # directory, change the value to, for example, "${CANONICAL_CONFIG_DIR}/sponge/plugins". - # Note: It is not recommended to set this to "${CANONICAL_CONFIG_DIR}/sponge", as there is - # a possibility that plugin configurations can conflict the Sponge core configurations. + # The directory for Sponge plugin configurations, relative to the + # execution root or specified as an absolute path. + # Note that the default: "${CANONICAL_GAME_DIR}/config" + # is going to use the "plugins" directory in the root game directory. + # If you wish for plugin configs to reside within a child of the configuration + # directory, change the value to, for example, "${CANONICAL_CONFIG_DIR}/sponge/plugins". + # Note: It is not recommended to set this to "${CANONICAL_CONFIG_DIR}/sponge", as there is + # a possibility that plugin configurations can conflict the Sponge core configurations. + # config-dir="${CANONICAL_GAME_DIR}/config" # Disable warning messages to server admins disable-warnings=false - # Enabled sleeping between chunk saves, beware of memory issues + # If 'true', sleeping between chunk saves will be enabled, beware of memory issues. file-io-thread-sleep=false # Additional directory to search for plugins, relative to the - # execution root or specified as an absolute path. - # Note that the default: "${CANONICAL_MODS_DIR}/plugins" - # is going to search for a plugins folder in the mods directory. - # If you wish for the plugins folder to reside in the root game + # execution root or specified as an absolute path. + # Note that the default: "${CANONICAL_MODS_DIR}/plugins" + # is going to search for a plugins folder in the mods directory. + # If you wish for the plugins folder to reside in the root game # directory, change the value to "${CANONICAL_GAME_DIR}/plugins". plugins-dir="${CANONICAL_MODS_DIR}/plugins" } @@ -482,13 +544,12 @@ This config was generated using SpongeForge build 2811 (with Forge 2555), Sponge entity-activation-range=true entity-collisions=true exploits=true - game-fixes=false # Allows configuring Vanilla movement and speed checks movement-checks=false optimizations=true # Use real (wall) time instead of ticks as much as possible realtime=false - # Controls block range and tick rate of tileentities. + # Controls block range and tick rate of tileentities. # Use with caution as this can break intended functionality. tileentity-activation=false timings=true @@ -503,39 +564,40 @@ This config was generated using SpongeForge build 2811 (with Forge 2555), Sponge player-vehicle-moved-too-quickly=true } optimizations { - # Runs lighting updates async. + # Runs lighting updates asynchronously. async-lighting { - # If enabled, runs lighting updates async. + # If 'true', lighting updates are run asynchronously. enabled=true - # The amount of threads to dedicate for async lighting updates. (Default: 2) + # The amount of threads to dedicate for asynchronous lighting updates. (Default: 2) num-threads=2 } - # Caches tameable entities owners to avoid constant lookups against data watchers. If mods cause issue, disable. + # Caches tameable entities owners to avoid constant lookups against data watchers. If mods + # cause issues, disable this. cache-tameable-owners=true - # If enabled, block item drops are pre-processed to avoid - # having to spawn extra entities that will be merged post spawning. - # Usually, Sponge is smart enough to determine when to attempt an item pre-merge - # and when not to, however, in certain cases, some mods rely on items not being - # pre-merged and actually spawned, in which case, the items will flow right through + # If 'true', block item drops are pre-processed to avoid + # having to spawn extra entities that will be merged post spawning. + # Usually, Sponge is smart enough to determine when to attempt an item pre-merge + # and when not to, however, in certain cases, some mods rely on items not being + # pre-merged and actually spawned, in which case, the items will flow right through # without being merged. drops-pre-merge=false - # If enabled, uses Panda4494's Redstone implementation which improves performance. - # See https://bugs.mojang.com/browse/MC-11193 for more information. - # Note: This optimization has a few issues which is explained in the bug report. We are not responsible for any issues this may cause. + # If 'true', uses Panda4494's redstone implementation which improves performance. + # See https://bugs.mojang.com/browse/MC-11193 for more information. + # Note: This optimization has a few issues which are explained in the bug report. panda-redstone=false - # Handles structures that are saved to disk. Certain structures can take up large amounts - # of disk space for very large maps and the data for these structures is only needed while the world - # around them is generating. Disabling saving of these structures can save disk space and time during - # saves if your world is already fully generated. + # Handles structures that are saved to disk. Certain structures can take up large amounts + # of disk space for very large maps and the data for these structures is only needed while the + # world around them is generating. Disabling saving of these structures can save disk space and + # time during saves if your world is already fully generated. # Warning: disabling structure saving will break the vanilla locate command. structure-saving { - # If enabled, newly discovered structures will be added to this config with a default value. + # If 'true', newly discovered structures will be added to this config with a default value. auto-populate=false enabled=false # Per-mod overrides. Refer to the minecraft default mod for example. mods { minecraft { - # Set to false if you want mod to never save structures. + # If 'false', this mod will never save its structures. enabled=true structures { mineshaft=false @@ -544,7 +606,7 @@ This config was generated using SpongeForge build 2811 (with Forge 2555), Sponge } } } - # Used to control spawn limits around players. + # Used to control spawn limits around players. # Note: The radius uses the lower value of mob spawn range and server's view distance. spawner { # The number of ambients the spawner can potentially spawn around a player. @@ -571,20 +633,24 @@ This config was generated using SpongeForge build 2811 (with Forge 2555), Sponge } # Blocks to blacklist for safe teleportation. teleport-helper { - # If enabled, this blacklist will always be respected, otherwise, plugins can choose whetheror not to respect it. + # If 'true', this blacklist will always be respected, otherwise, plugins can choose whether + # or not to respect it. force-blacklist=false - # Block IDs that are listed here will not be selected by Sponge's safe teleport routine as a safe block for players to warp into. - # You should only list blocks here that are incorrectly selected, solid blocks that prevent movement are automatically excluded. + # Block IDs that are listed here will not be selected by Sponge's safe teleport routine as + # a safe block for players to warp into. + # You should only list blocks here that are incorrectly selected, solid blocks that prevent + # movement are automatically excluded. unsafe-body-block-ids=[] - # Block IDs that are listed here will not be selected by Sponge's safe teleport routine as a safe floor block. + # Block IDs that are listed here will not be selected by Sponge's safe + # teleport routine as a safe floor block. unsafe-floor-block-ids=[] } tileentity-activation { - # If enabled, newly discovered tileentities will be added to this config with default settings. + # If 'true', newly discovered tileentities will be added to this config with default settings. auto-populate=false - # Default activation block range used for all tileentities unless overidden. + # Default activation block range used for all tileentities unless overridden. default-block-range=64 - # Default tick rate used for all tileentities unless overidden. + # Default tick rate used for all tileentities unless overridden. default-tick-rate=1 # Per-mod overrides. Refer to the minecraft default mod for example. mods {} @@ -600,7 +666,7 @@ This config was generated using SpongeForge build 2811 (with Forge 2555), Sponge verbose=true } world { - # The auto-save tick interval used when saving global player data. (Default: 900) + # The auto-save tick interval used when saving global player data. (Default: 900) # Note: 20 ticks is equivalent to 1 second. Set to 0 to disable. auto-player-save-interval=900 # The auto-save tick interval used to save all loaded chunks in a world. @@ -614,55 +680,57 @@ This config was generated using SpongeForge build 2811 (with Forge 2555), Sponge # The tick interval used to cleanup all inactive chunks that have leaked in a world. # Set to 0 to disable which restores vanilla handling. (Default: 600) chunk-gc-tick-interval=600 - # The number of seconds to delay a chunk unload once marked inactive. (Default: 15) + # The number of seconds to delay a chunk unload once marked inactive. (Default: 15) # Note: This gets reset if the chunk becomes active again. chunk-unload-delay=15 - # If enabled, any request for a chunk not currently loaded will be denied (exceptions apply for things like world gen and player movement). - # Note: As this is an experimental setting for performance gain, if you encounter any issues then we recommend disabling it. - deny-chunk-requests=true + # If 'true', any request for a chunk not currently loaded will be denied (exceptions apply + # for things like world gen and player movement). + # Warning: As this is an experimental setting for performance gain, if you encounter any issues + # then we recommend disabling it. + deny-chunk-requests=false # Lava behaves like vanilla water when source block is removed flowing-lava-decay=false - # The amount of GameProfile requests to make against Mojang's session server. (Default: 1) - # Note: Mojang accepts a maximum of 600 requests every 10 minutes from a single IP address. - # If you are running multiple servers behind the same IP, it is recommended to raise the 'gameprofile-task-interval' setting - # in order to compensate for the amount requests being sent. - # Finally, if set to 0 or less, the default batch size will be used. + # The amount of GameProfile requests to make against Mojang's session server. (Default: 1) + # Note: Mojang accepts a maximum of 600 requests every 10 minutes from a single IP address. + # If you are running multiple servers behind the same IP, it is recommended to raise the 'gameprofile-task-interval' setting + # in order to compensate for the amount requests being sent. + # Finally, if set to 0 or less, the default batch size will be used. # For more information visit http://wiki.vg/Mojang_API gameprofile-lookup-batch-size=1 - # The interval, in seconds, used by the GameProfileQueryTask to process queued gameprofile requests. (Default: 4) - # Note: This setting should be raised if you experience the following error: - # "The client has sent too many requests within a certain amount of time". + # The interval, in seconds, used by the GameProfileQueryTask to process queued GameProfile requests. (Default: 4) + # Note: This setting should be raised if you experience the following error: + # "The client has sent too many requests within a certain amount of time". # Finally, if set to 0 or less, the default interval will be used. gameprofile-lookup-task-interval=4 - # Enable if you want the world to generate spawn the moment its loaded. + # If 'true', this world will generate its spawn the moment its loaded. generate-spawn-on-load=null # Vanilla water source behavior - is infinite infinite-water-source=false - # The list of uuid's that should never perform a lookup against Mojang's session server. + # The list of uuid's that should never perform a lookup against Mojang's session server. # Note: If you are using SpongeForge, make sure to enter any mod fake player's UUID to this list. invalid-lookup-uuids=[ "00000000-0000-0000-0000-000000000000", "0d0c4ca0-4ff1-11e4-916c-0800200c9a66", "41c82c87-7afb-4024-ba57-13d2c99cae77" ] - # The defined merge radius for Item entities such that when two items are - # within the defined radius of each other, they will attempt to merge. Usually, - # the default radius is set to 0.5 in Vanilla, however, for performance reasons - # 2.5 is generally acceptable. - # Note: Increasing the radius higher will likely cause performance degradation - # with larger amount of items as they attempt to merge and search nearby + # The defined merge radius for Item entities such that when two items are + # within the defined radius of each other, they will attempt to merge. Usually, + # the default radius is set to 0.5 in Vanilla, however, for performance reasons + # 2.5 is generally acceptable. + # Note: Increasing the radius higher will likely cause performance degradation + # with larger amount of items as they attempt to merge and search nearby # areas for more items. Setting to a negative value is not supported! item-merge-radius=2.5 - # Enable if this world's spawn should remain loaded with no players. + # If 'true', this worlds spawn will remain loaded with no players. keep-spawn-loaded=null - # Enable to allow natural leaf decay. + # If 'true', natural leaf decay is allowed. leaf-decay=true - # Enable if this world should be loaded on startup. + # If 'true', this world will load on startup. load-on-startup=null # The maximum number of queued unloaded chunks that will be unloaded in a single tick. # Note: With the chunk gc enabled, this setting only applies to the ticks - # where the gc runs (controlled by 'chunk-gc-tick-interval') - # Note: If the max unloads is too low, too many chunks may remain + # where the gc runs (controlled by 'chunk-gc-tick-interval') + # Note: If the maximum unloads is too low, too many chunks may remain # loaded on the world and increases the chance for a drop in tps. (Default: 100) max-chunk-unloads-per-tick=100 # Specifies the radius (in chunks) of where creatures will spawn. @@ -675,17 +743,18 @@ This config was generated using SpongeForge build 2811 (with Forge 2555), Sponge "minecraft:default_nether"=DIM-1 "minecraft:default_the_end"=DIM1 } - # Enable if this world allows PVP combat. + # If 'true', this world will allow PVP combat. pvp-enabled=true - # The view distance. - # The value must be greater than or equal to 3 and less than or equal to 32 + # Override world distance per world/dimension + # The value must be greater than or equal to 3 and less than or equal to 32 # The server-wide view distance will be used when the value is -1. view-distance=-1 - # Enable to allow the natural formation of ice and snow in supported biomes. + # If 'true', natural formation of ice and snow in supported biomes will be allowed. weather-ice-and-snow=true - # Enable to initiate thunderstorms in supported biomes. + # If 'true', thunderstorms will be initiated in supported biomes. weather-thunder=true - # Enable if this world should be registered. + # If 'true', this world will be registered. world-enabled=true } } + diff --git a/source/server/management/performance-tweaks.rst b/source/server/management/performance-tweaks.rst index d5a1b1b062b8..9bb7450067e9 100644 --- a/source/server/management/performance-tweaks.rst +++ b/source/server/management/performance-tweaks.rst @@ -137,3 +137,22 @@ One example of this is baby animals. Normally, they take 20 minutes to grow into lagging, each animal will receive fewer ticks thus increasing the time they take to grow up. This setting updates some of their logic to use the actual elapsed wall-clock time, rather than number of ticks. It will also apply to block breaking, so no more "breaking blocks multiple times". + +Deny chunk requests +=================== + +.. warning:: + + This is an experimental setting for performance gain, we recommend to not enable it when you have mods on the server + and to disable it if you experience any issues regarding the loading of tileentities. + +.. code-block:: none + + world { + # If enabled, any request for a chunk not currently loaded will be denied (exceptions apply for things like world gen and player movement). + # Note: As this is an experimental setting for performance gain, if you encounter any issues then we recommend disabling it. + deny-chunk-requests=false + } + +When this option is enabled, mods requesting areas to be loaded to perform various tasks will be denied. Only players +and specific world generation calls will be allowed to load new chunks.