HopperOptimizer Module

The HopperOptimizer module improves server performance by optimizing hopper behavior. It reduces lag caused by excessive hoppers, empty hoppers, or hoppers that cannot transfer items.

HopperOptimizer:
  enabled: true
  worlds:
    - '*'
  values:
    smart_throttling: true
    chunk_limit:
      enabled: false
      limit: 16
    empty_hopper_optimization:
      enabled: true
      empty_check_delay: 100
    full_hopper_optimization:
      enabled: true
      full_check_delay: 80
    hopper_check_interval: 2000
    inactive_hopper_delay: 30000

🧩 Option Explanations

πŸ”Ή Smart throttling (smart_throttling)

When true, the module reduces unnecessary hopper updates automatically. Improves server performance, especially on hopper-heavy farms.


πŸ”Ή Chunk Limit (chunk_limit)

Controls the maximum number of hoppers allowed per chunk.

  • enabled β€” Enable or disable chunk-based hopper limits.

  • limit β€” Maximum hoppers per chunk. Example: 16 β†’ only 16 hoppers allowed in one chunk.

Note: Useful for preventing chunk overloads, but optional.


πŸ”Ή Empty Hopper Optimization (empty_hopper_optimization)

Optimizes hoppers that have nothing to transfer.

  • enabled β€” Enable or disable empty hopper optimization.

  • empty_check_delay β€” How long (in milliseconds) to wait before checking empty hoppers again. Example: 100 ms β†’ hopper is rechecked every 100ms.


πŸ”Ή Full Hopper Optimization (full_hopper_optimization)

Optimizes hoppers that cannot transfer because the destination is full.

  • enabled β€” Enable or disable full hopper optimization.

  • full_check_delay β€” How long (in milliseconds) to wait before checking full hoppers again. Example: 80 ms β†’ hopper is rechecked every 80ms.


πŸ”Ή General Hopper Timing

  • hopper_check_interval β€” How often (in milliseconds) all hoppers are checked for optimization. Example: 2000 ms β†’ every 2 seconds.

  • inactive_hopper_delay β€” How long (in milliseconds) before a hopper is considered inactive. Inactive hoppers are checked less frequently to save CPU. Example: 30000 ms β†’ inactive after 30 seconds.

Last updated