Skip to content

Configuration

Adam edited this page Oct 23, 2024 · 11 revisions

The default configuration contains less detailed comments about node usage, but is guaranteed to be up to date.

Flagging

Every x seconds, chunks around each player online are flagged.
Flags prevent deletion for a configurable amount of time, allowing players to prevent areas from being deleted simply by being active.

Default values cause a 9x9 chunk (144x144 blocks) around players to be flagged every 10 seconds. This means that unless players exceed a travel speed of 14.4 m/s (almost double the speed of a vanilla minecart) chunks will be continuously flagged as they pass. For more information on travel speeds, please check the Minecraft Wiki.

flagging.seconds-per-flag

  • Interval between periodic flagging of chunks around players in seconds.
  • default: 10

flagging.chunk-flag-radius

  • A square radius around each player's position that is periodically marked as visited.
  • default: 4

flagging.flag-generated-chunks-until-visited

  • Chunks are automatically flagged as visited when generated.
    If true, the flag is set to a special value that will be overwritten once a player actually visits the area. This allows you to reduce load by pre-generating area for exploration and not deleting unvisited areas. Note that flagging must be enabled in worlds (days-till-flag-expires > 0).
  • default: true

Cache

Cache settings control how much data Regionerator keeps loaded in memory. This is a balancing act between churn and memory consumption. Higher churn means more CPU impact as cache contents are disposed of and garbage collected. Lower churn means more RAM usage as cache contents stay in memory longer.

In general, if you're not having problems or don't know what you're doing, don't touch these settings.

cache.minimum-expiration-frequency

  • The number of seconds between checks to see if contents are eligible for expiration. Higher values reduce churn but allow the cache to contain data that should expire for an extra time period. This can result in the cache bypassing its maximum size limits.
  • default: 10

cache.retention

  • Minutes to cache values for. Increase to reduce churn, decrease to reduce memory usage.
  • default: 10

cache.maximum-batch-size

  • Maximum number of entries per batch update. If you reduce this too much, the queue will not drain successfully! Conversely, too many updates in a single batch will take too long to communicate to the database, causing slowdown in other areas.
  • default: 1024

cache.batch-delay

  • Milliseconds between batch updates. If you find that the queue is struggling to keep up with entries expiring, you should consider decreasing this interval.
  • default: 500

cache.max-cache-size

  • Maximum number of cached entries. Increase to reduce churn, decrease to reduce memory usage. The default is set to approximately 25x25 regions, which is a square with a side length of around 13000 blocks. In general, players will load 4 regions apiece, so smaller servers should be able to safely lower this cap by a significant amount - 10 players loading 4 regions of 1024 chunks is a total of 40,960 entries.
  • Note: This is a soft cap! If you're using a profiler, don't be alarmed to see the cache size exceed this number, especially during or right after a cycle. It is only enforced when the cache is cleaned, which has a minimum frequency (cache.minimum-expiration-frequency) to prevent excess churn due to how fast chunks load and unload in Minecraft 1.14+.
  • default: 640,000

Deletion

Settings for controlling the rate at which deletion considers area.

deletion.start-paused

  • Whether deletion should be paused on startup to prevent cycles from running.
  • default: false

deletion.recovery-time

  • Recovery time in milliseconds between expensive operations. Recovery time is always waited between region checks.
  • default: 250

deletion.expensive-checks-between-recovery

  • The number of chunks checked using more processing-intensive operations between deletion recovery delays (deletion.deletion-recovery-time). If a chunk's state can be determined with inexpensive checks, it will not count towards the total.
  • Values above 1024 have no effect - a region is 1024 chunks, and the recovery delay is always used between regions.
  • default: 128

deletion.hours-between-cycles

  • The amount of time to wait between deletion attempts in the same world in hours.
  • default: 12

deletion.remember-next-cycle-time

  • Whether or not next cycle time should persist across server restarts. If false, deletion cycles will attempt to start immediately on server start.
  • default: false

Worlds

Per-world settings. All settings fall through to the entry "default" if not specified.

worlds.<worldname>.days-till-flag-expires

  • Duration to flag chunks as visited. Chunks that are reported to be last visited longer than this many days ago are eligible to be deleted.
  • Set to 0 to disable flagging entirely.
  • Set to -1 to disable Regionerator in a world.
  • default: -1

Safe Login

Attempt to prevent players dying on login due to regenerated area. Note that if you use some form of offline location editing, this will not work properly.

safe-login.enabled

  • Whether safe login is enabled. Note that the listeners will still be registered so that the feature is functional if enabled later - the data required to determine if a login is unsafe is not available otherwise.
  • default: true

safe-login.rescue-if-safe

  • Whether to always perform a rescue, even if the player is in a location that may not be dangerous.
  • default: false

safe-login.try-top-block

  • Whether to check if the top block at the player's location is a safe place.
  • default: true

safe-login.try-respawn

  • If top block is unused or unsafe, whether to use the player's respawn location if available.
  • default: true

safe-login.world-override

  • If top block and respawn location are not used, name of the world to spawn in. If not set or not available, current world will be used instead.
  • default: ""

hooks

  • Child nodes are all supported plugins.
  • If the hook is enabled and the plugin is not present, Regionerator assumes you do not intend to use the plugin. If the plugin is present and fails usability, Regionerator will pause deletion automatically so as to not accidentally wipe out a protected area.
    • If you are using an unsupported plugin that shares a name with a supported plugin, disable the hook to prevent Regionerator always starting paused.
  • default: true for all child nodes

debug-level

  • Enable increasingly verbose logging.
    • OFF: No debug information.
    • LOW: Minimal status messages, periodic deletion reports.
    • MEDIUM: Errors print full traces when logged.
    • HIGH: Heavy debugging mode. Do not enable this unless you're having a serious issue - the extra logging WILL cause your server to lag.
    • EXTREME: Ultra-heavy debugging mode. Prints a full trace of chunk loading if it coincides with Regionerator checking chunks. Good for tracking down poorly-behaved hooks.
  • default: LOW

config-version

  • Controls automatic updates to config layout. Don't mess with it, you might lose settings.