Skip to main content

config.yml

plugins/EasyMenu/config.yml manages global plugin settings, thread pools, caching limits, and default presentation behaviors.


Default Configuration File​

plugins/EasyMenu/config.yml
# Language setting (en_us, ja_jp, ru_ru)
language: "en_us"

# Debug mode (verbose console logging)
debug: false

# Startup behavior
load-on-startup: true # Load menu definitions on server startup
precache-submenus: true # Pre-cache submenu definitions on startup

# Async worker settings
async:
worker-threads: 2

# Cache settings
cache:
submenu-expiry-seconds: 300 # Submenu cache expiry in seconds
submenu-max-size: 100 # Maximum cached submenus
cleanup-interval-seconds: 60 # Cache cleanup cycle interval in seconds
resolved-path-max-size: 200 # Maximum cached resolved menu paths

# Submenu search
submenu:
search-depth: 3 # Directory traversal depth inside sub/

# Runtime presentation
runtime:
default-presentation: inventory # Default UI format (inventory, native-preferred, auto, etc.)

# Diagnostics
diagnostics:
log-warnings-on-load: true # Log warnings during reload parsing

# Input settings
input:
default-timeout-seconds: 60 # Default timeout for input collection

# Cooldown settings
cooldown:
cleanup-interval-seconds: 60 # Cleanup interval for expired cooldown records

Dynamic Reload Coverage​

Running /menu reload re-reads config.yml, and every setting except load-on-startup takes effect together once validation succeeds. If config.yml itself cannot be read (for example, a YAML syntax error), the reload is rejected and the previous settings stay active.

Configuration KeyRefreshed on /menu reload
languageRefreshed immediately (reloads message files)
debugRefreshed immediately
precache-submenusRefreshed immediately
async.worker-threadsRefreshed immediately (replaces thread pool)
cache.*Refreshed immediately
submenu.search-depthRefreshed immediately
runtime.default-presentationRefreshed immediately
diagnostics.log-warnings-on-loadRefreshed immediately
input.default-timeout-secondsRefreshed immediately
cooldown.cleanup-interval-secondsRefreshed immediately (reschedules periodic task)
load-on-startupStartup only (ignored during reload)

Value Ranges and Invalid Values​

For numeric settings, an out-of-range or non-numeric value does not fail startup or reload; it is silently replaced by the default (no warning is logged).

KeyValid rangeValue used when invalid
async.worker-threads1 or more2
cache.submenu-expiry-seconds1 or more300
cache.submenu-max-size1 or more100
cache.cleanup-interval-seconds1 or more60
cache.resolved-path-max-size1 or more200
submenu.search-depth1-163
input.default-timeout-seconds1 or more60
cooldown.cleanup-interval-seconds1 or more (the actual period is at least 20 ticks = 1 second)60

language is lower-cased. An invalid runtime.default-presentation becomes an error (invalid-presentation) when each menu is loaded. Keys missing from config.yml are appended with their defaults and saved when the server starts (/menu reload does not append them).