global.conf

全域設定

global.conf 設定檔包含 Sponge 的全域設定。此檔案建立於伺服器資料夾中的 config/sponge 資料夾。其中許多屬性也能夠透過使用 config/worlds 子資料夾中的設定檔為特定世界或特定維度覆寫。

下表是 global.conf 檔案中可用的設定項目與其對應說明。請注意,有些部分不會立即被填入,會在伺服器需要他們時被添加。在清單下方也有一份未經修改的 global.conf 範例檔案:

備註

以下章节标题指向配置中对应的路径(和对应的简单类名),一个章节中的每个条目都指向关联类中的一个可配置的属性。`类型`信息是指描述嵌套配置结构的部分/类

全局设置

Sponge的主设置文件: global.conf

  • broken-mods

    处理故障Mods的下下策

类型: 故障Mod

  • bungeecord

    控制 Sponge 如何与 BungeeCord 和 Velocity 等服务器代理交互。需要启用 bungeecord 模块。

类型: BungeeCord

  • cause-tracker

    与 Sponge异常原因跟踪系统 相关的配置选项


  • commands

    命令相关的配置项,包括命令别称和隐藏命令

类型: 指令

  • debug

    默认情况下禁用了调试功能相关的配置选项。

类型: 调试

  • entity

    与实体及其性能相关的配置选项。

类型: 实体

  • entity-activation-range

    可以配置实体默认激活范围。

  • entity-collisions

    与实体碰撞检查相关的配置项。


  • exploits

    关于 Sponge 提供的漏洞修复补丁的配置项。

类型: 漏洞修复

  • general

    包含 Sponge 中无法界定分类的通用配置项。

类型: 全局通用

  • ip-sets

    根据给定 IP 自动分配(权限)上下文,可以用于根据玩家来源或目标 IP 限制或授予权限。

类型: Map<String, List<IpSet>>

  • logging

    与记录操作相关的配置项,如区块加载。

类型: 记录

  • metrics

    与收集反馈数据相关的配置项。

类型: 反馈数据

  • modules

    Sponge 提供了数个模块以启用或禁用特定特性,它们可以在下方启用或禁用,因为模块在启动时应用,任何变更都需要重启服务端。

类型: 模块

  • movement-checks

    关于 Minecraft 的移动检查的配置项,可以启用或禁用。

类型: 移动检查

  • optimizations

    与 Sponge 提供的性能优化相关的配置项

Type: 优化

  • permission

    Configuration options related to permissions and permission handling


  • player-block-tracker

    Configuration options related to tracking player interactions with blocks

  • spawner

    Used to control spawn limits around players.

    Note: The radius uses the lower value of mob spawn range and server’s view distance.

Type: Spawner

  • sql

    關於 SQL 服務的設定選項,包含連線別名等。

Type: Sql

  • teleport-helper

    安全传送机制使用的方块黑名单。

  • tileentity-activation

    Configuration options related to activation ranges of tile entities.

Type: Timings

  • world

    Configuration options that will affect all worlds.


  • world-generation-modifiers

    World Generation Modifiers to apply to the world

Type: List<String>

broken-mods (BrokenMod)

处理故障Mods的下下策

  • broken-network-handler-mods

    A list of mod ids that have broken network handlers (they interact with the game from a Netty handler thread). All network handlers from a forcibly scheduled to run on the main thread. Note that this setting should be considered a last resort, and should only be used as a stopgap measure while waiting for a mod to properly fix the issue.

Type: List<String>

bungeecord (BungeeCord)

控制 Sponge 如何与 BungeeCord 和 Velocity 等服务器代理交互。需要启用 bungeecord 模块。

  • ip-forwarding

    If true, allows BungeeCord to forward IP address, UUID, and Game Profile to this server.

Type: boolean
Default: false

cause-tracker (PhaseTracker)

与 Sponge异常原因跟踪系统 相关的配置选项

Type: Map<String, Boolean>

  • capture-async-spawning-entities

    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, and emit a warning about said spawn anyways.

Type: boolean
Default: true

  • generate-stacktrace-per-phase

    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.

Type: boolean
Default: false

  • max-block-processing-depth

    The maximum number of times to recursively process transactions in a single phase. Some mods may interact badly with Sponge’s block capturing system, causing Sponge to end up capturing block transactions every time it tries to process an existing batch. Due to the recursive nature of the depth-first processing that Sponge uses to handle block transactions, this can result in a stack overflow, which causes us to lose all infomration about the original cause of the issue. To prevent a stack overflow, Sponge tracks the current processing depth, and aborts processing when it exceeds this threshold. The default value should almost always work properly - it’s unlikely you’ll ever have to change it.

Type: int
Default: 1000

  • maximum-printed-runaway-counts

    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.

Type: int
Default: 3

  • report-null-source-blocks-on-neighbor-notifications

    If true, when a mod attempts to perform a neighbor notification on a block, some mods do not know to perform a null check on the source block of their TileEntity. This usually goes by unnoticed by other mods, because they may perform == instance equality checks instead of calling methods on the potentially null Block, but Sponge uses the block to build information to help tracking. This has caused issues in the past. Generally, this can be useful for leaving true so a proper report is generated once for your server, and can be reported to the offending mod author. This is false by default in SpongeVanilla. Review the following links for more info: https://gist.github.com/gabizou/ad570dc09dfed259cac9d74284e78e8b https://github.com/SpongePowered/SpongeForge/issues/2787

Type: boolean
Default: true

  • resync-commands-from-async

    If set to true, when a mod or plugin attempts to submit a command asynchronously, Sponge will automatically capture said command and submit it for processing on the server thread. The catch to this is that some mods are performing these commands in vanilla without considering the possible consequences of such commands affecting any thread-unsafe parts of Minecraft, such as worlds, block edits, entity spawns, etc. If this is set to false, Sponge will politely ignore the command being executed, and emit a warning about said command anyways.

Type: boolean
Default: true

  • verbose

    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.

Type: boolean
Default: true

  • verbose-errors

    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.

Type: boolean
Default: false

commands (Commands)

命令相关的配置项,包括命令别称和隐藏命令

  • aliases

    Command aliases will resolve conflicts when multiple plugins request a specific command. Correct syntax is <unqualified command>=<plugin name> e.g. sethome=homeplugin

Type: Map<String, String>

  • command-hiding

    Defines how Sponge should act when a user tries to access a command they do not have permission for

  • enforce-permission-checks-on-non-sponge-commands

    Some mods may not trigger a permission check when running their command. Setting this to true will enforce a check of the Sponge provided permission (<modid>.command.<commandname>). Note that setting this to true may cause some commands that are generally accessible to all to require a permission to run. Setting this to true will enable greater control over whether a command will appear in tab completion and Sponge’s help command. If you are not using a permissions plugin, it is highly recommended that this is set to false (as it is by default).

Type: boolean
Default: false

  • multi-world-patches

    修正某些指令,使其只修改命令发送者当前所在的世界,而非所有世界的属性。

Type: Map<String, Boolean>

commands.command-hiding (CommandsHidden)

Defines how Sponge should act when a user tries to access a command they do not have permission for

  • hide-on-discovery-attempt

    If this is true, when a user tries to tab complete a command, or use /sponge which or /sponge:help this prevents commands a user does not have permission for from being completed. Note that some commands may not show up during tab complete if a user does not have permission regardless of this setting.

Type: boolean
Default: true

  • hide-on-execution-attempt

    If this is true, when a user tries to use a command they don’t have permission for, Sponge will act as if the command doesn’t exist, rather than showing a no permissions message.

Type: boolean
Default: false

debug (Debug)

默认情况下禁用了调试功能相关的配置选项。

  • concurrent-chunk-map-checks

    Detect and prevent parts of PlayerChunkMap being called off the main thread. This may decrease sever preformance, so you should only enable it when debugging a specific issue.

Type: boolean
Default: false

  • concurrent-entity-checks

    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.

Type: boolean
Default: false

  • thread-contention-monitoring

    If true, Java’s thread contention monitoring for thread dumps is enabled.

Type: boolean
Default: false

entity (Entity)

与实体及其性能相关的配置选项。

  • collision-warn-size

    Number of colliding entities in one spot before logging a warning. Set to 0 to disable.

Type: int
Default: 200

  • entity-painting-respawn-delay

    Number of ticks before a painting is respawned on clients when their art is changed.

Type: int
Default: 2

  • human-player-list-remove-delay

    Number of ticks before the fake player entry of a human is removed from the tab list (ranges from 0 to 100 ticks).

Type: int
Default: 10

  • item-despawn-rate

    控制物品消失的時間 Tick 數。

Type: int
Default: 6000

  • living-hard-despawn-range

    The upper bounded range where living entities farther from a player will likely despawn.

Type: int
Default: 128

  • living-soft-despawn-minimum-life

    The amount of seconds before a living entity between the soft and hard despawn ranges from a player to be considered for despawning.

Type: int
Default: 30

  • living-soft-despawn-range

    The lower bounded range where living entities near a player may potentially despawn.

Type: int
Default: 32

  • max-bounding-box-size

    Maximum size of an entity’s bounding box before removing it. Set to 0 to disable.

Type: int
Default: 1000

  • max-speed

    Square of the maximum speed of an entity before removing it. Set to 0 to disable.

Type: int
Default: 100

entity-activation-range (EntityActivationRange)

可以配置实体默认激活范围。

  • auto-populate

    If true, newly discovered entities will be added to this config with a default value.

Type: boolean
Default: false

  • defaults

    所有實體的預設活動範圍,除非被覆寫。

Type: Map<String, Integer>

  • mods

    各模組覆寫。請參閱 Minecraft 預設模組。

entity-activation-range.mods (EntityActivationMod)

各模組覆寫。請參閱 Minecraft 預設模組。

  • defaults

    Default activation ranges used for mod entities unless overridden.

Type: Map<String, Integer>

  • enabled

    If false, entity activation rules for this mod will be ignored and always tick.

Type: boolean
Default: true

  • entities

    The mod entities with their name as key and the range as value

Type: Map<String, Integer>

entity-collisions (EntityCollision)

与实体碰撞检查相关的配置项。

  • auto-populate

    If true, newly discovered entities/blocks will be added to this config with a default value.

Type: boolean
Default: false

  • max-entities-within-aabb

    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.

Type: int
Default: 8

  • mods

    各模組覆寫。請參閱 Minecraft 預設模組。

entity-collisions.mods (CollisionMod)

各模組覆寫。請參閱 Minecraft 預設模組。

  • defaults

    Default maximum collisions used for all entities unless overridden.

Type: Map<String, Integer>

  • enabled

    If false, entity collision rules for this mod will be ignored.

Type: boolean
Default: true

  • entities

Type: Map<String, Integer>

exploits (Exploit)

关于 Sponge 提供的漏洞修复补丁的配置项。

  • book-size-total-multiplier

    If limit-book-size is enabled, controls the multiplier applied to each book page size

Type: double
Default: 0.98

Type: boolean
Default: true

Type: boolean
Default: true

Type: boolean
Default: true

Type: boolean
Default: true

  • max-book-page-size

    If limit-book-size is enabled, controls the maximum size of a book page

Type: int
Default: 2560

  • prevent-creative-itemstack-name-exploit

    防止客戶端發送包含 ItemStack 名稱超過字串限制的封包。

Type: boolean
Default: true

Type: boolean
Default: true

Type: boolean
Default: true

general (GlobalGeneral)

包含 Sponge 中无法界定分类的通用配置项。

  • check-file-when-saving-sponge-data-file

    If true, Sponge will try to ensure that its data is on disk when saving the level_sponge.dat file, but this may cause a slight performance hit. Setting this to false will mean Sponge does not perform any consistency checks, but you may end up with corrupt data if an unexpected failure occurs on your server, requiring restoring this file from backup.

Type: boolean
Default: true

  • config-dir

    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 config 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.

Type: String
Default: ${CANONICAL_GAME_DIR}/config

  • file-io-thread-sleep

    If true, sleeping between chunk saves will be enabled, beware of memory issues.

Type: boolean
Default: false

  • plugins-dir

    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 directory, change the value to ${CANONICAL_GAME_DIR}/plugins.

Type: String
Default: ${CANONICAL_MODS_DIR}/plugins

logging (Logging)

与记录操作相关的配置项,如区块加载。

  • block-break

    當方塊被破壞時記錄

Type: boolean
Default: false

  • block-modify

    當方塊被修改時記錄

Type: boolean
Default: false

  • block-place

    當方塊被放置時記錄

Type: boolean
Default: false

  • block-populate

    当方块在区块中填充时记录。

Type: boolean
Default: false

  • block-tracking

    當方塊被玩家放置與被追蹤時記錄

Type: boolean
Default: false

  • chunk-gc-queue-unload

    当区块进入区块垃圾回收器的卸载队列时记录。

Type: boolean
Default: false

  • chunk-load

    當 Chunk 被載入時記錄

Type: boolean
Default: false

  • chunk-unload

    當 Chunk 被卸載時記錄

Type: boolean
Default: false

  • entity-collision-checks

    是否記錄實體碰撞/計數檢查

Type: boolean
Default: false

  • entity-death

    當生物實體被摧毀時記錄

Type: boolean
Default: false

  • entity-despawn

    当生物实体消失(Despawn)时记录。

Type: boolean
Default: false

  • entity-spawn

    當生物實體被生成時記錄

Type: boolean
Default: false

  • entity-speed-removal

    是否記錄實體由於速度而被刪除

Type: boolean
Default: false

  • exploit-itemstack-name-overflow

    當伺服器接收到 ItemStack 名稱超過字串限制的封包時記錄。

Type: boolean
Default: false

  • exploit-respawn-invisibility

    记录玩家试图重生时对其他玩家不可见的行为。

Type: boolean
Default: false

  • exploit-sign-command-updates

    當伺服器收到由沒有權限的玩家更新包含指令的告示牌的封包時記錄

Type: boolean
Default: false

  • log-stacktraces

    將推疊追蹤(Stack Traces)添加至開發記錄

Type: boolean
Default: false

  • transaction-merge-fail

    Log when two conflicting changes are merged into one. (This number specifies the maximum number of messages to log. Set to 0 to show all messages.)

Type: int
Default: 25

  • world-auto-save

    Log when a world auto-saves its chunk data.

    Note: This may be spammy depending on the auto-save-interval configured for world.

Type: boolean
Default: false

metrics (Metrics)

与收集反馈数据相关的配置项。

  • global-state

    The global collection state that should be respected by all plugins that have no specified collection state. If undefined then it is treated as disabled.

Type: Tristate
Possible values:
- TRUE
- FALSE
- UNDEFINED
Default: UNDEFINED

  • plugin-states

    Plugin-specific collection states that override the global collection state.

Type: Map<String, Tristate>
Possible values:
- TRUE
- FALSE
- UNDEFINED

modules (Module)

Sponge 提供了数个模块以启用或禁用特定特性,它们可以在下方启用或禁用,因为模块在启动时应用,任何变更都需要重启服务端。

  • broken-mod

    Enables experimental fixes for broken mods

Type: boolean
Default: false

  • bungeecord

    The BungeeCord Module, allows Sponge to be used with a Proxy like Bungeecord or Velocity. Usually you want to also enable bungeecord.ip-forwarding with this.

Type: boolean
Default: false

  • entity-activation-range

    The entity activation module, allows you to tweak entity activation ranges, similarly to Entity Distance in the latest 1.16 snapshots but per mob. Essentially, it changes how far an entity can be away from a player, until it stops being updated (e.g. moving).

Type: boolean
Default: true

  • entity-collisions

    Module that allows you to configure the maximum amount of entities a specific entity or block can collide with.

Type: boolean
Default: true

  • exploits

    Controls whether any exploit patches are applied. If there are issues with any specific exploits, please test in the exploit category first, before disabling all exploits with this toggle.

Type: boolean
Default: true

  • movement-checks

    允許設定原版移動與速度檢查

Type: boolean
Default: false

  • optimizations

Type: boolean
Default: true

  • realtime

    尽可能使用现实世界的时间,而非游戏刻。

Type: boolean
Default: false

  • tileentity-activation

    控制 TileEntity 的方块范围和刷新率。使用时请小心,此功能可能会影响正常的游戏功能。

Type: boolean
Default: false

Type: boolean
Default: true

  • tracking

    Can be used to disable some parts of the tracking.

Type: boolean
Default: true

movement-checks (MovementChecks)

关于 Minecraft 的移动检查的配置项,可以启用或禁用。

  • moved-wrongly

    Controls whether the player/entity moved wrongly! check will be enforced

Type: boolean
Default: true

  • player-moved-too-quickly

    Controls whether the player moved too quickly! check will be enforced

Type: boolean
Default: true

  • player-vehicle-moved-too-quickly

    Controls whether the vehicle of player moved too quickly! check will be enforced

Type: boolean
Default: true

optimizations (Optimization)

与 Sponge 提供的性能优化相关的配置项

  • async-lighting

    以非同步的方式進行亮度更新。

  • cache-tameable-owners

    缓存可驯服动物的主人,以避免反复使用 Data Watcher 进行查找。若有 Mod 因此出现问题,请先尝试禁用此功能。

Type: boolean
Default: true

  • disable-failing-deserialization-log-spam

    Occasionally, some built in advancements, recipes, etc. can fail to deserialize properly which ends up potentially spamming the server log and the original provider of the failing content is not able to fix them. This provides an option to suppress the exceptions printing out in the log.

Type: boolean
Default: true

  • disable-pathfinding-chunk-loads

    In vanilla, pathfinding may result in loading chunks. You can disable that here, which may result in a performance improvement. This may not work well with mods.

Type: boolean
Default: false

  • disable-raytracing-chunk-loads

    In vanilla, ray tracing may result in loading chunks. You can disable that here, which may result in a performance improvement. This may not work well with mods.

Type: boolean
Default: false

  • drops-pre-merge

    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.

Type: boolean
Default: true

  • eigen-redstone

    Uses theosib’s redstone algorithms to completely overhaul the way redstone works.

  • enchantment-helper-leak-fix

    If true, provides a fix for possible leaks through Minecraft’s enchantment helper code that can leak entity and world references without much interaction Forge native (so when running SpongeForge implementation) has a similar patch, but Sponge’s patch works a little harder at it, but Vanilla (SpongeVanilla implementation) does NOT have any of the patch, leading to the recommendation that this patch is enabled for sure when using SpongeVanilla implementation. See https://bugs.mojang.com/browse/MC-128547 for more information.

Type: boolean
Default: true

  • faster-thread-checks

    If true, allows for Sponge to make better assumptinos on single threaded operations with relation to various checks for server threaded operations. This is default to true due to Sponge being able to precisely inject when the server thread is available. This should make an already fast operation much faster for better thread checks to ensure stability of sponge’s systems.

Type: boolean
Default: true

  • map-optimization

    If true, re-writes the incredibly inefficient Vanilla Map code. This yields enormous performance enhancements when using many maps, but has a tiny chance of breaking mods that invasively modify Vanilla. It is strongly recommended to keep this on, unless explicitly advised otherwise by a Sponge developer

Type: boolean
Default: true

  • optimize-hoppers

    Based on Aikar’s optimizations of Hoppers, setting this to true will allow for hoppers to save performing server -> client updates when transferring items. Because hoppers can transfer items multiple times per tick, these updates can get costly on the server, with little to no benefit to the client. Because of the nature of the change, the default will be false due to the inability to pre-emptively foretell whether mod compatibility will fail with these changes or not. Refer to: https://github.com/PaperMC/Paper/blob/8175ec916f31dcd130fe0884fe46bdc187d829aa/Spigot-Server-Patches/0269-Optimize-Hoppers.patch for more details.

Type: boolean
Default: false

  • panda-redstone

    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. We strongly recommend using eigen redstone over this implementation as this will be removed in a future release.

Type: boolean
Default: false

  • structure-saving

    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.

  • use-active-chunks-for-collisions

    Vanilla performs a lot of is area loaded checks during entity collision calculations with blocks, and because these calculations require fetching the chunks to see if they are loaded, before getting the block states from those chunks, there can be some small performance increase by checking the entity’s owned active chunk it may currently reside in. Essentially, instead of asking the world if those chunks are loaded, the entity would know whether it’s chunks are loaded and that neighbor’s chunks are loaded.

Type: boolean
Default: false

optimizations.async-lighting (AsyncLighting)

以非同步的方式進行亮度更新。

  • enabled

    If true, lighting updates are run asynchronously.

Type: boolean
Default: true

  • num-threads

    The amount of threads to dedicate for asynchronous lighting updates.

Type: int
Default: 2

optimizations.eigen-redstone (EigenRedstone)

Uses theosib’s redstone algorithms to completely overhaul the way redstone works.

Type: boolean
Default: false

  • vanilla-decrement

    If true, restores the vanilla algorithm for computing wire power levels when powering off.

Type: boolean
Default: false

  • vanilla-search

    If true, restores the vanilla algorithm for propagating redstone wire changes.

Type: boolean
Default: false

optimizations.structure-saving (StructureSave)

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.

  • auto-populate

    If true, newly discovered structures will be added to this config with a default value of true. This is useful for finding out potentially what structures are being saved from various mods, and allowing those structures to be selectively disabled.

Type: boolean
Default: false

  • enabled

    Global switch to enable sponge’s changes to the structure saving mechansim. By default, this option is disabled, i.e. saving structures is not affected. If you want to prevent a certain named structure being saved to the world’s folder, you have to enable this module/setting and disable the structure in the further settings. An example of a structure being costly and somewhat irrelevant is mineshaft, as they build and save several structures even after the mine shafts have been completely generated. However, this has the disadvantage that these structures may no longer be locatable by some mods.

Type: boolean
Default: false

  • mods

    各模組覆寫。請參閱 Minecraft 預設模組。

optimizations.structure-saving.mods (StructureMod)

各模組覆寫。請參閱 Minecraft 預設模組。

  • enabled

    Global flag, whether this mod’s structures will be saved. If false, this mod will never save its structures. If true, it will check the structureList for disabled structures.

Type: boolean
Default: true

  • structures

    The configuration for each structure. A value of false prevents that structure from being saved. Entries that are either missing in this list or have the value true will still be saved, unless the structure saving of the mod is globally disabled.

Type: Map<String, Boolean>

permission (Permission)

Configuration options related to permissions and permission handling

  • forge-permissions-handler

    If true, Sponge plugins will be used to handle permissions rather than any Forge mod

Type: boolean
Default: false

player-block-tracker (PlayerBlockTracker)

Configuration options related to tracking player interactions with blocks

  • block-blacklist

    在此黑名單的方塊 ID 將不會被進行方塊放置追蹤。

Type: List<String>

  • enabled

    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.

Type: boolean
Default: true

spawner (Spawner)

Used to control spawn limits around players.

Note: The radius uses the lower value of mob spawn range and server’s view distance.

  • spawn-limit-ambient

    生怪磚能夠在玩家周圍生成的環境音效的數量。

Type: int
Default: 15

  • spawn-limit-animal

    生怪磚能夠在玩家周圍生成的動物的數量。

Type: int
Default: 15

  • spawn-limit-aquatic

    刷怪箱可在玩家周围生成的水生动物数量。

Type: int
Default: 5

  • spawn-limit-monster

    生怪磚能夠在玩家周圍生成的怪物的數量。

Type: int
Default: 70

  • tick-rate-ambient

    The ambient spawning tick rate. Default: 400

Type: int
Default: 400

  • tick-rate-animal

    The animal spawning tick rate. Default: 400

Type: int
Default: 400

  • tick-rate-aquatic

    The aquatic spawning tick rate. Default: 1

Type: int
Default: 1

  • tick-rate-monster

    The monster spawning tick rate. Default: 1

Type: int
Default: 1

sql (Sql)

關於 SQL 服務的設定選項,包含連線別名等。

Type: Map<String, String>

teleport-helper (TeleportHelper)

安全传送机制使用的方块黑名单。

  • force-blacklist

    If true, this blacklist will always be respected, otherwise, plugins can choose whether or not to respect it.

Type: boolean
Default: false

  • unsafe-body-block-ids

    在这里列出的方块不会被 Sponge 的安全传送机制认为是安全的传送目的地。你应该仅将没有正确选择的方块列入此表;会阻止移动的固态方块默认已经自动排除。

Type: List<String>

  • unsafe-floor-block-ids

    在这个列表中出现的方块将不会被 Sponge 的安全传送机制选中为安全的地板方块。

Type: List<String>

tileentity-activation (TileEntityActivation)

Configuration options related to activation ranges of tile entities.

  • auto-populate

    If true, newly discovered tileentities will be added to this config with default settings.

Type: boolean
Default: false

  • default-block-range

    所有瓦實體的預設活動方塊範圍,除非被覆寫。

Type: int
Default: 64

  • default-tick-rate

    所有瓦實體的預設 Tick 速率,除非被覆寫。

Type: int
Default: 1

  • mods

    各模組覆寫。請參閱 Minecraft 預設模組。

tileentity-activation.mods (TileEntityActivationMod)

各模組覆寫。請參閱 Minecraft 預設模組。

  • block-range

    A list of tile/block entities with block name as key and their range as value.

Type: Map<String, Integer>

  • default-block-range

    所有瓦實體的預設活動方塊範圍,除非被覆寫。

Type: Integer

  • default-tick-rate

    所有瓦實體的預設 Tick 速率,除非被覆寫。

Type: Integer

  • enabled

    If false, tileentity activation rules for this mod will be ignored and always tick.

Type: boolean
Default: true

  • tick-rate

    A list of tile/block entities with block name as key and their tick rate as value

Type: Map<String, Integer>

timings (Timings)

Module to run Aikar’s Timings, profile your server performance and get a sharable web result. https://github.com/aikar/timings#aikars-minecraft-timings-viewer-v2

  • enabled

    Enables the timing module

Type: boolean
Default: true

  • hidden-config-entries

    These configuration entries/paths/sections are removed before the report is sent. This is to prevent credentials from being leaked unintentionally.

    Note: The sponge.sql section is always ignored and thus is never sent to the webviewer regardless of this config.

Type: List<String>

  • history-interval

    Modulo value how often a tick should be pushed to the timings history

Type: int
Default: 300

  • history-length

    How long the list of said history can get

Type: int
Default: 3600

  • server-name-privacy

    Hides the server name in the Aikar webviewer to no leak the l337 server you are running

Type: boolean
Default: false

  • verbose

    Enables the verbose mode for the timings module.

Type: boolean
Default: false

world (GlobalWorld)

Configuration options that will affect all worlds.

  • auto-player-save-interval

    自动保存全局玩家数据的间隔(以 tick 为单位)。

    Note: 20 ticks is equivalent to 1 second. Set to 0 to disable.

Type: int
Default: 900

  • auto-save-interval

    The auto-save tick interval used to save all loaded chunks in a world. Set to 0 to disable.

    Note: 20 ticks is equivalent to 1 second.

Type: int
Default: 900

  • chunk-gc-load-threshold

    在下一次强制垃圾回收之前,最大可触发的新加载区块数量。

    Note: When triggered, the loaded chunk threshold will reset and start incrementing. Disabled by default.

Type: int
Default: 0

  • chunk-gc-tick-interval

    The tick interval used to cleanup all inactive chunks that have leaked in a world. Set to 0 to disable which restores vanilla handling.

Type: int
Default: 600

  • chunk-unload-delay

    标记为不活跃的区块还能存活多久(以秒为单位)。

    Note: This gets reset if the chunk becomes active again.

Type: int
Default: 15

  • deny-chunk-requests

    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.

Type: boolean
Default: true

  • deny-neighbor-notification-chunk-requests

    If true, any neighbour notification for a chunk not currently loaded will be denied

    Warning: As this is an experimental setting for performance gain, if you encounter any issues then we recommend disabling it.

Type: boolean
Default: false

  • gameprofile-lookup-task-interval

    The interval, in seconds, used by the GameProfileQueryTask to process queued GameProfile requests.

    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.

Type: int
Default: 4

  • generate-spawn-on-load

    If true, this world will generate its spawn the moment its loaded.

Type: Boolean
Default: false

  • invalid-lookup-uuids

    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.

Type: List<UUID>

  • item-merge-radius

    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!

Type: double
Default: 2.5

  • keep-spawn-loaded

    If true, this worlds spawn will remain loaded with no players.

Type: Boolean
Default: true

  • leaf-decay

    If true, natural leaf decay is allowed.

Type: boolean
Default: true

  • load-on-startup

    If true, this world will load on startup.

Type: Boolean
Default: false

  • max-chunk-lifetime

    The number of ticks a chunk will stay in memory without saving.

    Note: this setting only applies to chunks gc forcibly saving chunks (controlled by chunk-gc-tick-interval and chunk-gc-load-threshold)

    Note: Useless if auto-save-interval is enabled and less than this value

    Note: auto-save-interval becomes mostly useless if both are enabled and it is bigger than this value

Type: int
Default: 0

  • max-chunk-unloads-per-tick

    每一刻中最大可处理的卸载区块队列中的区块数量。

    Note: this setting only controls the amount chunk gc is allowed to save (controlled by chunk-gc-tick-interval and chunk-gc-load-threshold)

    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.

Type: int
Default: 100

  • mob-spawn-range

    指定生成生物的半径(以区块为单位)。此数值受 server.properties 中的当前视野范围限制。

Type: int
Default: 4

  • portal-agents

    A list of all detected portal agents used in this world. In order to override, change the target world name to any other valid world.

    Note: If world is not found, it will fallback to default.

Type: Map<String, String>

  • pvp-enabled

    If true, this world will allow PVP combat.

Type: boolean
Default: true

  • view-distance

    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.

Type: int
Default: -1

  • weather-ice-and-snow

    If true, natural formation of ice and snow in supported biomes will be allowed.

Type: boolean
Default: true

  • weather-thunder

    If true, thunderstorms will be initiated in supported biomes.

Type: boolean
Default: true

  • world-enabled

    If true, this world will be registered.

Type: boolean
Default: true


This configuration file was generated using SpongeForge 7.3.0 (Forge 2838, SpongeAPI 7.3):

# 1.0
# 
# # If you need help with the configuration or have any questions related to Sponge,
# # join us at the IRC or drop by our forums and leave a post.
# 
# # IRC: #sponge @ irc.esper.net ( https://webchat.esper.net/?channel=sponge )
# # Forums: https://forums.spongepowered.org/
# 

sponge {
    # Stopgap measures for dealing with broken mods
    broken-mods {
        # A list of mod ids that have broken network handlers (they interact with the game from a Netty handler thread).
        # All network handlers from a forcibly scheduled to run on the main thread.
        # Note that this setting should be considered a last resort, and should only be used as a stopgap measure
        # while waiting for a mod to properly fix the issue.
        broken-network-handler-mods=[]
    }
    # Controls how Sponge interacts with server proxies, such as BungeeCord and Velocity.
    # Requires that the 'bungeecord' module is enabled.
    bungeecord {
        # If 'true', allows BungeeCord to forward IP address, UUID, and Game Profile to this server.
        ip-forwarding=false
    }
    # Configuration options related to Sponge's cause tracking system
    cause-tracker {
        # A mapping that is semi-auto-populating for TileEntities whose types
        # are found to be providing 'null' Block sources as neighbor notifications
        # that end up causing crashes or spam reports. If the value is set to
        # 'true', then a "workaround" will be attempted. If not, the
        # current BlockState at the target source will be queried from the world.
        # This map having a specific
        # entry of a TileEntity will prevent a log or warning come up to any logs
        # when that 'null' arises, and Sponge will self-rectify the TileEntity
        # by calling the method "getBlockType()". It is advised that if the mod
        # id in question is coming up, that the mod author is notified about the
        # error-prone usage of the field "blockType". You can refer them to
        # the following links for the issue:
        # https://gist.github.com/gabizou/ad570dc09dfed259cac9d74284e78e8b
        # https://github.com/SpongePowered/SpongeForge/issues/2787
        # Also, please provide them with these links for the example PR to
        # fix the issue itself, as the fix is very simple:
        # https://github.com/TehNut/Soul-Shards-Respawn/pull/24
        # https://github.com/Epoxide-Software/Enchanting-Plus/pull/135
        # 
        auto-fix-null-source-block-providing-tile-entities {}
        # 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,
        # and emit a warning about said spawn anyways.
        capture-async-spawning-entities=true
        # 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
        # The maximum number of times to recursively process transactions in a single phase.
        # Some mods may interact badly with Sponge's block capturing system, causing Sponge to
        # end up capturing block transactions every time it tries to process an existing batch.
        # Due to the recursive nature of the depth-first processing that Sponge uses to handle block transactions,
        # this can result in a stack overflow, which causes us to lose all infomration about the original cause of the issue.
        # To prevent a stack overflow, Sponge tracks the current processing depth, and aborts processing when it exceeds
        # this threshold.
        # The default value should almost always work properly - it's unlikely you'll ever have to change it.
        max-block-processing-depth=1000
        # 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, when a mod attempts to perform a neighbor notification
        # on a block, some mods do not know to perform a 'null' check
        # on the source block of their TileEntity. This usually goes by
        # unnoticed by other mods, because they may perform '==' instance
        # equality checks instead of calling methods on the potentially
        # null Block, but Sponge uses the block to build information to
        # help tracking. This has caused issues in the past. Generally,
        # this can be useful for leaving 'true' so a proper report is
        # generated once for your server, and can be reported to the
        # offending mod author.
        # This is 'false' by default in SpongeVanilla.
        # Review the following links for more info:
        # https://gist.github.com/gabizou/ad570dc09dfed259cac9d74284e78e8b
        # https://github.com/SpongePowered/SpongeForge/issues/2787
        # 
        report-null-source-blocks-on-neighbor-notifications=false
        # If set to 'true', when a mod or plugin attempts to submit a command
        # asynchronously, Sponge will automatically capture said command
        # and submit it for processing on the server thread. The catch to
        # this is that some mods are performing these commands in vanilla
        # without considering the possible consequences of such commands
        # affecting any thread-unsafe parts of Minecraft, such as worlds,
        # block edits, entity spawns, etc. If this is set to false, Sponge
        # will politely ignore the command being executed, and emit a warning
        # about said command anyways.
        resync-commands-from-async=true
        # 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 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
    }
    # Configuration options related to commands, including command aliases and hidden commands.
    commands {
        # Command aliases will resolve conflicts when multiple plugins request a specific command.
        # Correct syntax is '<unqualified command>=<plugin name>' e.g. 'sethome=homeplugin'
        aliases {}
        # Defines how Sponge should act when a user tries to access a command they do not have
        # permission for
        command-hiding {
            # If this is true, when a user tries to tab complete a command, or use "/sponge which" or
            # "/sponge:help" this prevents commands a user does not have permission for from being completed.
            # 
            # Note that some commands may not show up during tab complete if a user does not have permission
            # regardless of this setting.
            hide-on-discovery-attempt=true
            # If this is true, when a user tries to use a command they don't have permission for, Sponge
            # will act as if the command doesn't exist, rather than showing a no permissions message.
            hide-on-execution-attempt=false
        }
        # Some mods may not trigger a permission check when running their command. Setting this to
        # 'true' will enforce a check of the Sponge provided permission ('<modid>.command.<commandname>').
        # Note that setting this to 'true' may cause some commands that are generally accessible to all to
        # require a permission to run.
        # 
        # Setting this to 'true' will enable greater control over whether a command will appear in
        # tab completion and Sponge's help command.
        # 
        # If you are not using a permissions plugin, it is highly recommended that this is set to 'false'
        # (as it is by default).
        enforce-permission-checks-on-non-sponge-commands=false
        # 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
            gamerule=true
            seed=true
            setdefaultspawnpoint=true
            time=true
            toggledownfall=true
            weather=true
            worldborder=true
        }
    }
    # Configuratiom options related to debugging features that are disabled by default.
    debug {
        # Detect and prevent parts of PlayerChunkMap being called off the main thread.
        # This may decrease sever preformance, so you should only enable it when debugging a specific issue.
        concurrent-chunk-map-checks=false
        # 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
        # If 'true', Java's thread contention monitoring for thread dumps is enabled.
        thread-contention-monitoring=false
    }
    # Configuration options related to entities and their performance impact.
    entity {
        # Number of colliding entities in one spot before logging a warning.
        # Set to '0' to disable.
        collision-warn-size=200
        # Number of ticks before a painting is respawned on clients when their art is changed.
        entity-painting-respawn-delay=2
        # Number of ticks before the fake player entry of a human is removed from the tab list
        # (ranges from '0' to '100' ticks).
        human-player-list-remove-delay=10
        # Controls the time in ticks for when an item despawns.
        item-despawn-rate=6000
        # The upper bounded range where living entities farther from a player will likely despawn.
        living-hard-despawn-range=128
        # The amount of seconds before a living entity between the soft and hard despawn ranges
        # from a player to be considered for despawning.
        living-soft-despawn-minimum-life=30
        # The lower bounded range where living entities near a player may potentially despawn.
        living-soft-despawn-range=32
        # Maximum size of an entity's bounding box before removing it.
        # Set to '0' to disable.
        max-bounding-box-size=1000
        # Square of the maximum speed of an entity before removing it.
        # Set to '0' to disable.
        max-speed=100
    }
    # Allows the configuration of the default entity activation ranges.
    entity-activation-range {
        # 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 {
            ambient=32
            aquatic=32
            creature=32
            misc=16
            monster=32
        }
        # Per-mod overrides. Refer to the minecraft default mod for example.
        mods {}
    }
    # Configuration options related to entity collision checks.
    entity-collisions {
        # If 'true', newly discovered entities/blocks will be added to this config with a default value.
        auto-populate=false
        # 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 {
            minecraft {
                # Default maximum collisions used for all entities unless overridden.
                defaults {}
                # If 'false', entity collision rules for this mod will be ignored.
                enabled=true
                entities {}
            }
        }
    }
    # Configuration option related to sponge provided exploit patches
    exploits {
        # If 'limit-book-size' is enabled, controls the multiplier applied to each book page size
        book-size-total-multiplier=0.98
        # Enables filtering invalid entities when a chunk is being saved
        # such that the entity that does not "belong" in the saving chunk will not be saved,
        # and forced an update to the world's tracked entity lists for chunks.
        # See https://github.com/PaperMC/Paper/blob/fd1bd5223a461b6d98280bb8f2d67280a30dd24a/Spigot-Server-Patches/0311-Prevent-Saving-Bad-entities-to-chunks.patch
        filter-invalid-entities-on-chunk-save=true
        # Limits the size of a book that can be sent by the client.
        # See https://github.com/PaperMC/Paper/blob/f8058a8187da9f6185d95bb786783e12c79c8b18/Spigot-Server-Patches/0403-Book-Size-Limits.patch
        # (Only affects SpongeVanilla)
        limit-book-size=true
        # Enables focing a chunk load when an entity position is set.
        # Usually due to teleportation, vehicle movement etc. can a position lead an entity to no longer exist
        # within it's currently marked and tracked chunk. This will enable that chunk for the position is loaded.
        # Part of several exploits.
        # See https://github.com/PaperMC/Paper/blob/fd1bd5223a461b6d98280bb8f2d67280a30dd24a/Spigot-Server-Patches/0335-Ensure-chunks-are-always-loaded-on-hard-position-set.patch
        # (Only affects SpongeVanilla)
        load-chunk-on-position-set=true
        # Enables forcing chunks to save when an entity is added or removed from said chunk.
        # This is a partial fix for some exploits using vehicles.
        # See https://github.com/PaperMC/Paper/blob/fd1bd5223a461b6d98280bb8f2d67280a30dd24a/Spigot-Server-Patches/0306-Mark-chunk-dirty-anytime-entities-change-to-guarante.patch
        # (Only affects SpongeVanilla)
        mark-chunks-as-dirty-on-entity-list-modification=true
        # If 'limit-book-size' is enabled, controls the maximum size of a book page
        max-book-page-size=2560
        # Prevents an exploit in which the client sends a packet with the itemstack name
        # exceeding the string limit.
        prevent-creative-itemstack-name-exploit=true
        # Enables forcing updates to the player's location on vehicle movement.
        # This is partially required to update the server's understanding of where the player exists,
        # and allows chunk loading issues to be avoided with laggy connections and/or hack clients.
        # See https://github.com/PaperMC/Paper/blob/fd1bd5223a461b6d98280bb8f2d67280a30dd24a/Spigot-Server-Patches/0378-Sync-Player-Position-to-Vehicles.patch
        # (Only affects SpongeVanilla)
        sync-player-positions-for-vehicle-movement=true
        # Enables forcing a chunk-tracking refresh on entity movement.
        # This enables a guarantee that the entity is tracked in the proper chunk when moving.
        # See https://github.com/PaperMC/Paper/blob/fd1bd5223a461b6d98280bb8f2d67280a30dd24a/Spigot-Server-Patches/0315-Always-process-chunk-registration-after-moving.patch
        # (Only affects SpongeVanilla)
        update-tracked-chunk-on-entity-move=true
    }
    # Contains general configuration options for Sponge that don't fit into a specific classification
    general {
        # If 'true', Sponge will try to ensure that its data is on disk
        # when saving the 'level_sponge.dat' file,
        # but this may cause a slight performance hit.
        # 
        # Setting this to 'false' will mean Sponge does not
        # perform any consistency checks, but you may end up
        # with corrupt data if an unexpected failure occurs on your server,
        # requiring restoring this file from backup.
        check-file-when-saving-sponge-data-file=true
        # 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 'config' 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"
        # 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
        # directory, change the value to '${CANONICAL_GAME_DIR}/plugins'.
        plugins-dir="${CANONICAL_MODS_DIR}/plugins"
    }
    # Automatically assigns (permission) contexts to users that use any of the given ips.
    # This can be used to restrict/grant permissions, based on the player's source or target ip.
    ip-sets {}
    # Configuration option related to logging certain action such as chunk loading.
    logging {
        # Log when blocks are broken
        block-break=false
        # Log when blocks are modified
        block-modify=false
        # Log when blocks are placed
        block-place=false
        # Log when blocks are populated in a chunk
        block-populate=false
        # Log when blocks are placed by players and tracked
        block-tracking=false
        # Log when chunks are queued to be unloaded by the chunk garbage collector.
        chunk-gc-queue-unload=false
        # Log when chunks are loaded
        chunk-load=false
        # Log when chunks are unloaded
        chunk-unload=false
        # Whether to log entity collision/count checks
        entity-collision-checks=false
        # Log when living entities are destroyed
        entity-death=false
        # Log when living entities are despawned
        entity-despawn=false
        # Log when living entities are spawned
        entity-spawn=false
        # Whether to log entity removals due to speed
        entity-speed-removal=false
        # Log when server receives exploited packet with itemstack name exceeding string limit.
        exploit-itemstack-name-overflow=false
        # Log when player attempts to respawn invisible to surrounding players.
        exploit-respawn-invisibility=false
        # Log when server receives exploited packet to update a sign containing commands
        # from player with no permission.
        exploit-sign-command-updates=false
        # Add stack traces to dev logging
        log-stacktraces=false
        # Log when two conflicting changes are merged into one. (This number specifies the maximum number of
        # messages to log. Set to 0 to show all messages.)
        transaction-merge-fail=25
        # Log when a world auto-saves its chunk data.
        # Note: This may be spammy depending on the auto-save-interval configured for world.
        world-auto-save=false
    }
    # Configuration options related to metric collection.
    metrics {
        # The global collection state that should be respected by all plugins that have no specified collection state. If 'undefined' then it is treated as disabled.
        global-state=UNDEFINED
        # Plugin-specific collection states that override the global collection state.
        plugin-states {}
    }
    # Sponge provides a number of modules that allow for enabling or disabling
    # certain specific features. These may be enabled or disabled below.
    # 
    # Any changes here require a server restart as modules are applied at startup.
    modules {
        # Enables experimental fixes for broken mods
        broken-mod=false
        # The BungeeCord Module, allows Sponge to be used with a Proxy like Bungeecord or Velocity.
        # Usually you want to also enable 'bungeecord.ip-forwarding' with this.
        bungeecord=false
        # The entity activation module, allows you to tweak entity activation ranges,
        # similarly to "Entity Distance" in the latest 1.16 snapshots but per mob.
        # Essentially, it changes how far an entity can be away from a player, until it stops being updated (e.g. moving).
        entity-activation-range=true
        # Module that allows you to configure the maximum amount of entities a specific entity or block can collide with.
        entity-collisions=true
        # Controls whether any exploit patches are applied.
        # If there are issues with any specific exploits, please test in the exploit category first,
        # before disabling all exploits with this toggle.
        exploits=true
        # 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.
        # Use with caution as this can break intended functionality.
        tileentity-activation=false
        # Module to run Aikar's Timings, profile your server performance and get a sharable web result.
        # https://github.com/aikar/timings#aikars-minecraft-timings-viewer-v2
        timings=true
        # Can be used to disable some parts of the tracking.
        tracking=true
    }
    # Configuration options related to minecraft's movement checks, that can be enabled or disabled.
    movement-checks {
        # Controls whether the 'player/entity moved wrongly!' check will be enforced
        moved-wrongly=true
        # Controls whether the 'player moved too quickly!' check will be enforced
        player-moved-too-quickly=true
        # Controls whether the 'vehicle of player moved too quickly!' check will be enforced
        player-vehicle-moved-too-quickly=true
    }
    # Configuration options related to sponge provided performance optimizations.
    optimizations {
        # Runs lighting updates asynchronously.
        async-lighting {
            # If 'true', lighting updates are run asynchronously.
            enabled=true
            # 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 issues, disable this.
        cache-tameable-owners=true
        # Occasionally, some built in advancements, recipes, etc. can fail to deserialize properly
        # which ends up potentially spamming the server log and the original provider of the failing content
        # is not able to fix them. This provides an option to suppress the exceptions printing out in the log.
        disable-failing-deserialization-log-spam=true
        # In vanilla, pathfinding may result in loading chunks.
        # You can disable that here, which may result in a
        # performance improvement. This may not work well
        # with mods.
        disable-pathfinding-chunk-loads=false
        # In vanilla, ray tracing may result in loading chunks.
        # You can disable that here, which may result in a
        # performance improvement. This may not work well
        # with mods.
        disable-raytracing-chunk-loads=false
        # 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
        # Uses theosib's redstone algorithms to completely overhaul the way redstone works.
        eigen-redstone {
            # If 'true', uses theosib's redstone implementation which improves performance.
            # See https://bugs.mojang.com/browse/MC-11193 and
            #     https://bugs.mojang.com/browse/MC-81098 for more information.
            # Note: We cannot guarantee compatibility with mods. Use at your discretion.
            enabled=false
            # If 'true', restores the vanilla algorithm for computing wire power levels when powering off.
            vanilla-decrement=false
            # If 'true', restores the vanilla algorithm for propagating redstone wire changes.
            vanilla-search=false
        }
        # If 'true', provides a fix for possible leaks through
        # Minecraft's enchantment helper code that can leak
        # entity and world references without much interaction
        # Forge native (so when running SpongeForge implementation)
        # has a similar patch, but Sponge's patch works a little harder
        # at it, but Vanilla (SpongeVanilla implementation) does NOT
        # have any of the patch, leading to the recommendation that this
        # patch is enabled "for sure" when using SpongeVanilla implementation.
        # See https://bugs.mojang.com/browse/MC-128547 for more information.
        # 
        enchantment-helper-leak-fix=true
        # If 'true', allows for Sponge to make better assumptinos on single threaded
        # operations with relation to various checks for server threaded operations.
        # This is default to true due to Sponge being able to precisely inject when
        # the server thread is available. This should make an already fast operation
        # much faster for better thread checks to ensure stability of sponge's systems.
        faster-thread-checks=true
        # If 'true', re-writes the incredibly inefficient Vanilla Map code.
        # This yields enormous performance enhancements when using many maps,
        # but has a tiny chance of breaking mods that invasively modify Vanilla.
        # It is strongly reccomended to keep this on, unless explicitly advised otherwise by a Sponge developer
        map-optimization=true
        # Based on Aikar's optimizations of Hoppers, setting this to 'true'
        # will allow for hoppers to save performing server -> client updates when transferring items.
        # Because hoppers can transfer items multiple times per tick, these updates can get costly on the server,
        # with little to no benefit to the client. Because of the nature of the change,
        # the default will be 'false' due to the inability to pre-emptively
        # foretell whether mod compatibility will fail with these changes or not.
        # Refer to: https://github.com/PaperMC/Paper/blob/8175ec916f31dcd130fe0884fe46bdc187d829aa/Spigot-Server-Patches/0269-Optimize-Hoppers.patch
        # for more details.
        optimize-hoppers=false
        # 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.
        # We strongly recommend using eigen redstone over this implementation as this will
        # be removed in a future release.
        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.
        # Warning: disabling structure saving will break the vanilla locate command.
        structure-saving {
            # If 'true', newly discovered structures will be added to this config with a default value of 'true'.
            # This is useful for finding out potentially what structures are being saved from various mods,
            # and allowing those structures to be selectively disabled.
            auto-populate=false
            # Global switch to enable sponge's changes to the structure saving mechansim.
            # By default, this option is disabled, i.e. saving structures is not affected.
            # If you want to prevent that a certain "named" structure is saved to the world's folder,
            # you have to enable this module/setting and disable the structure in the further settings.
            # An example of a structure that is costly and somewhat irrelevant is 'mineshaft',
            # as they build and save several structures even after the mine shafts have been completely generated.
            # However, this has the disadvantage that these structures may no longer be locatable by some mods.
            enabled=false
            # Per-mod overrides. Refer to the minecraft default mod for example.
            mods {
                minecraft {
                    # Global flag, whether this mod's structures will be saved.
                    # If 'false', this mod will never save its structures.
                    # If 'true', it will check the 'structureList' for disabled structures.
                    enabled=true
                    # The configuration for each struture.
                    # A value of 'false' prevents that struture from being saved.
                    # Entries that are either missing in this list or have the value 'true' will still be saved,
                    # unless the structure saving of the mod is globally disabled.
                    structures {
                        mineshaft=false
                    }
                }
            }
        }
        # Vanilla performs a lot of is area loaded checks during entity collision calculations with blocks,
        # and because these calculations require fetching the chunks to see if they are loaded,
        # before getting the block states from those chunks, there can be some small performance
        # increase by checking the entity's owned active chunk it may currently reside in.
        # Essentially, instead of asking the world if those chunks are loaded, the entity
        # would know whether it's chunks are loaded and that neighbor's chunks are loaded.
        use-active-chunks-for-collisions=false
    }
    # Configuration options related to permissions and permission handling
    permission {
        # If 'true', Sponge plugins will be used to handle permissions rather than any Forge mod
        forge-permissions-handler=false
    }
    # Configuration options related to tracking player interactions with blocks
    player-block-tracker {
        # Block IDs that will be blacklisted for player block placement tracking.
        block-blacklist=[]
        # 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
    }
    # 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.
        spawn-limit-ambient=15
        # The number of animals the spawner can potentially spawn around a player.
        spawn-limit-animal=15
        # The number of aquatics the spawner can potentially spawn around a player.
        spawn-limit-aquatic=5
        # The number of monsters the spawner can potentially spawn around a player.
        spawn-limit-monster=70
        # The ambient spawning tick rate. Default: 400
        tick-rate-ambient=400
        # The animal spawning tick rate. Default: 400
        tick-rate-animal=400
        # The aquatic spawning tick rate. Default: 1
        tick-rate-aquatic=1
        # The monster spawning tick rate. Default: 1
        tick-rate-monster=1
    }
    # Configuration options related to the Sql service, including connection aliases etc
    sql {
        # Aliases for SQL connections, in the format jdbc:protocol://[username[:password]@]host/database
        aliases {}
    }
    # Blocks to blacklist for safe teleportation.
    teleport-helper {
        # 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.
        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.
        unsafe-floor-block-ids=[]
    }
    # Configuration options related to activation ranges of tile entities.
    tileentity-activation {
        # 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 overridden.
        default-block-range=64
        # 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 {}
    }
    # Module to run Aikar's Timings, profile your server performance and get a sharable web result.
    # https://github.com/aikar/timings#aikars-minecraft-timings-viewer-v2
    timings {
        # Enables the timing module
        enabled=true
        # These configuration entries/paths/sections are removed before the report is sent.
        # This is to prevent credentials from being leaked unintentionally.
        # Note: The 'sponge.sql' section is always ignored
        # and thus is never sent to the webviewer regardless of this config.
        hidden-config-entries=[
            "sponge.sql"
        ]
        # Modulo value how often a tick should be pushed to the timings history
        history-interval=300
        # How long the list of said history can get
        history-length=3600
        # Hides the server name in the Aikar webviewer to no leak the l33t server you are running
        server-name-privacy=false
        # Enables the verbose mode for the timings module.
        verbose=false
    }
    # Configuration options that will affect all worlds.
    world {
        # 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.
        # Set to 0 to disable. (Default: 900)
        # Note: 20 ticks is equivalent to 1 second.
        auto-save-interval=900
        # The number of newly loaded chunks before triggering a forced cleanup.
        # Note: When triggered, the loaded chunk threshold will reset and start incrementing.
        # Disabled by default.
        chunk-gc-load-threshold=0
        # 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)
        # Note: This gets reset if the chunk becomes active again.
        chunk-unload-delay=15
        # 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
        # If 'true', any neighbour notification for a chunk not currently loaded will be denied
        # Warning: As this is an experimental setting for performance gain,
        # if you encounter any issues then we recommend disabling it.
        deny-neighbor-notification-chunk-requests=false
        # 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
        # If 'true', this world will generate its spawn the moment its loaded.
        generate-spawn-on-load=false
        # 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
        # areas for more items. Setting to a negative value is not supported!
        item-merge-radius=2.5
        # If 'true', this worlds spawn will remain loaded with no players.
        keep-spawn-loaded=true
        # If 'true', natural leaf decay is allowed.
        leaf-decay=true
        # If 'true', this world will load on startup.
        load-on-startup=false
        # 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 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.
        # This value is capped to the current view distance setting in server.properties
        mob-spawn-range=4
        # A list of all detected portal agents used in this world.
        # In order to override, change the target world name to any other valid world.
        # Note: If world is not found, it will fallback to default.
        portal-agents {
            "minecraft:default_the_end"=DIM1
            "minecraft:default_the_nether"=DIM-1
        }
        # If 'true', this world will allow PVP combat.
        pvp-enabled=true
        # 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
        # If 'true', natural formation of ice and snow in supported biomes will be allowed.
        weather-ice-and-snow=true
        # If 'true', thunderstorms will be initiated in supported biomes.
        weather-thunder=true
        # If 'true', this world will be registered.
        world-enabled=true
    }
    # World Generation Modifiers to apply to the world
    world-generation-modifiers=[]
}