Skip to content

Main Config

Here’s the full config.conf with defaults:

File: config/courier/config.conf

mail {
dailyLimit = 100
hourlyLimit = 30
minuteLimit = 5
maxRecipients = 50
maxSubjectLength = 100
defaultExpirationDays = 30 # 0 = never expire
trashRetentionDays = 7
inboxLimit = 100
inboxCapacityWarning = 0.8 # 0.0-1.0 percentage
cleanupIntervalHours = 1
loginNotification = true
loginNotificationThreshold = 1
lockerExpirationHours = 24
lockerCleanupIntervalMinutes = 30
}
economy {
useImpactor = true
defaultCommand = ""
currencyCommands {}
runAsServer = true
}

Rate limits, expiry, inbox capacity, the package locker — it’s all here.

SettingTypeDefaultDescription
dailyLimitint100Max mails a player can send per day
hourlyLimitint30Max mails a player can send per hour
minuteLimitint5Max mails a player can send per minute
maxRecipientsint50Max recipients per mail (for bulk sends)
maxSubjectLengthint100Max character length for mail subjects
defaultExpirationDaysint30Days until unclaimed mail expires. 0 = never
trashRetentionDaysint7Days before trashed mail is permanently deleted
inboxLimitint100Max messages in a player’s inbox
inboxCapacityWarningdouble0.8Warn the player when their inbox hits this percentage (0.0-1.0)
cleanupIntervalHoursint1How often the server runs automatic cleanup of expired and trashed mail
loginNotificationbooltrueShow unread mail count when a player logs in
loginNotificationThresholdint1Minimum unread messages before the login notification triggers
lockerExpirationHoursint24Hours before unclaimed items in the package locker expire
lockerCleanupIntervalMinutesint30How often the server cleans up expired locker items

Two ways to handle currency:

If you’re already using Impactor for your server economy — simplest setup:

economy {
useImpactor = true
}

Currency keys use Impactor’s namespaced format: "impactor:dollars", "impactor:tokens", etc. An empty string or "default" uses the primary currency registered with Impactor.

For servers using economy plugins that don’t support the Impactor API, you can define currency operations as commands:

economy {
useImpactor = false
defaultCommand = "eco give {player} {amount}"
currencyCommands {
pokedollars = "eco give {player} {amount}"
tokens = "tokengive {player} {amount}"
}
runAsServer = true
}

When a player claims a currency attachment, Courier runs the matching command. If no specific currency command is defined, defaultCommand is the fallback.

SettingTypeDefaultDescription
useImpactorbooltrueUse Impactor API for currency operations. false = command-based
defaultCommandstring""Fallback command when no currency-specific command is defined
currencyCommandsmap{}Map of currency name to command string
runAsServerbooltrueRun economy commands as the server console (recommended). If false, runs as the player

These work in economy command strings:

PlaceholderDescription
{player}Recipient’s username
{amount}Currency amount being given
{currency}Currency type name
{uuid}Recipient’s UUID

  1. Messages — customize all player-facing text
  2. Tooltips — control GUI hover text with templates and fragments
  3. Economy Integration — deeper dive into currency setup and multi-currency support