Skip to content

Configuration Overview

All Courier config lives in config/courier/. Here’s what you’ll find:

config/courier/
├── config.conf # Main settings (rate limits, expiry, economy)
├── messages.conf # All player-facing text (MiniMessage format)
├── courier_tooltips.conf # GUI tooltip templates and fragments
├── guis/
│ ├── inbox.conf # Inbox GUI layout
│ ├── view.conf # Mail view GUI layout
│ └── send.conf # Compose GUI layout
└── presets/
├── starter_kit.conf # Each preset is a separate file
└── ...

Everything’s auto-generated with sensible defaults on first launch — you only need to edit what you want to change.


Everything’s HOCON format — think JSON but more relaxed. No commas needed, comments with #.

If you’ve worked with JSON, HOCON will feel familiar. It’s a relaxed superset with a few quality-of-life wins:

  • Comments with # or //
  • Nesting with {} (same as JSON)
  • Lists with [] (same as JSON)
  • Substitutions with ${} to reference other values
  • No commas needed between fields
  • Unquoted strings work for simple values
# This is a comment
mail {
dailyLimit = 100
hourlyLimit = 30
# Substitution example
greeting = "Welcome, ${player.name}!"
}

Full spec: HOCON on GitHub.


All config files and presets reload without a server restart:

/mailadmin reload

That reloads config.conf, messages.conf, courier_tooltips.conf, all GUI layouts, and all presets. Changes take effect immediately.


Courier stores mail data through Ceremony’s storage system, not its own. You configure storage in Ceremony’s config.

File: config/ceremony/config.conf

TypeBest ForNotes
SQLITESingle server, small communitiesDefault. Zero setup — stores in a local file
MONGO_DBProduction, multi-server networksRecommended for any serious deployment
MARIA_DBMySQL-compatible environmentsFull SQL support, MariaDB or MySQL
JSONDevelopment and testing onlyFlat files, not suitable for production
storageType = MONGO_DB
mongoDb {
uri = "mongodb://localhost:27017"
database = "courier"
}
storageType = SQLITE

That’s it. No extra config needed — SQLite stores everything in a local file automatically.


  1. Main Config — rate limits, expiry, economy, and all core settings
  2. Messages — customize every player-facing string
  3. Tooltips — control GUI hover text with templates and fragments