Main Configuration
The main configuration file config.yml controls the core behavior of zAuctionHouse.
Storage Configuration
Configure how auction data is stored:
storage:
# Storage type: SQLITE, MYSQL, MARIADB
type: SQLITE
# MySQL/MariaDB settings (ignored for SQLite)
host: localhost
port: 3306
database: zauctionhouse
user: root
password: password
useSSL: false
# Connection pool settings
pool:
maximum-pool-size: 10
minimum-idle: 5
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
Multi-Server Configuration
Enable auction synchronization across multiple servers:
multi-server:
# Enable multi-server synchronization
enabled: false
# Sync interval in seconds (0 for real-time via database triggers)
sync-interval: 5
# Server identifier (unique per server)
server-id: server-1
Number Formatting
Configure how numbers are displayed:
formatting:
# Enable compact number format (1K, 1M, 1B)
compact-numbers: true
# Decimal places for compact numbers
compact-decimals: 1
# Suffixes for compact numbers
suffixes:
thousand: "K"
million: "M"
billion: "B"
trillion: "T"
# Number of decimal places for prices
price-decimals: 2
# Thousand separator
thousand-separator: ","
# Decimal separator
decimal-separator: "."
Example output with these settings:
1500displays as1.5K2500000displays as2.5M1234.56displays as1,234.56
Expiration Settings
Configure item expiration behavior:
expiration:
# Default expiration time for listed items
default: 7d
# Time format: s (seconds), m (minutes), h (hours), d (days)
# Maximum expiration time allowed
maximum: 30d
# Check expired items interval (in minutes)
check-interval: 5
# Delete expired items after this time (0 to keep forever)
delete-after: 30d
# Notify players about expiring items
notify-before-expiration: true
notify-time: 1h
Item Limits
Configure listing limits per player:
limits:
# Default limit for players without specific permissions
default: 10
# Permission-based limits (highest takes priority)
permissions:
- permission: zauctionhouse.limit.5
limit: 5
- permission: zauctionhouse.limit.10
limit: 10
- permission: zauctionhouse.limit.25
limit: 25
- permission: zauctionhouse.limit.50
limit: 50
- permission: zauctionhouse.limit.100
limit: 100
- permission: zauctionhouse.limit.unlimited
limit: -1 # -1 for unlimited
Cooldowns
Configure cooldowns for various actions:
cooldowns:
# Cooldown between listing items (in seconds)
sell: 5
# Cooldown between purchases (in seconds)
purchase: 3
# Cooldown for using the search feature (in seconds)
search: 2
Banned Worlds
Prevent auction house usage in specific worlds:
banned-worlds:
- minigames
- pvp_arena
- creative
Sorting Options
Configure default sorting and available sort options:
sorting:
# Default sort method
default: NEWEST
# Available sort methods
# NEWEST, OLDEST, PRICE_LOW, PRICE_HIGH, NAME_AZ, NAME_ZA
# Remember player's sort preference
remember-preference: true
Anti-Exploit Settings
Protection against exploits and duplication:
protection:
# Prevent selling items with specific NBT tags
block-creative-items: true
# Maximum stack size to sell (0 for no limit)
max-stack-size: 64
# Minimum time between identical item listings (seconds)
duplicate-listing-cooldown: 10
# Check TPS before allowing actions
tps-protection:
enabled: true
minimum-tps: 15.0
Logging
Configure action logging:
logging:
# Log to file
file-logging: true
# Log file location
log-file: logs/auction.log
# Actions to log
log-actions:
- SELL
- PURCHASE
- EXPIRE
- REMOVE
- CLAIM
Notifications
Configure player notifications:
notifications:
# Notify seller when item is purchased
notify-seller-on-sale: true
# Notify player when item expires
notify-on-expiration: true
# Sound effects
sounds:
enabled: true
on-sale: ENTITY_PLAYER_LEVELUP
on-purchase: ENTITY_EXPERIENCE_ORB_PICKUP
on-expiration: BLOCK_NOTE_BLOCK_BASS
Full Example
Here's a complete config.yml example:
storage:
type: SQLITE
multi-server:
enabled: false
sync-interval: 5
server-id: server-1
formatting:
compact-numbers: true
compact-decimals: 1
suffixes:
thousand: "K"
million: "M"
billion: "B"
price-decimals: 2
thousand-separator: ","
decimal-separator: "."
expiration:
default: 7d
maximum: 30d
check-interval: 5
delete-after: 30d
notify-before-expiration: true
notify-time: 1h
limits:
default: 10
permissions:
- permission: zauctionhouse.limit.25
limit: 25
- permission: zauctionhouse.limit.50
limit: 50
- permission: zauctionhouse.limit.unlimited
limit: -1
cooldowns:
sell: 5
purchase: 3
search: 2
banned-worlds:
- minigames
sorting:
default: NEWEST
remember-preference: true
protection:
block-creative-items: true
max-stack-size: 64
tps-protection:
enabled: true
minimum-tps: 15.0
logging:
file-logging: true
log-file: logs/auction.log
notifications:
notify-seller-on-sale: true
notify-on-expiration: true
sounds:
enabled: true
on-sale: ENTITY_PLAYER_LEVELUP