> For the complete documentation index, see [llms.txt](https://cozy-1.gitbook.io/dev-example2/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cozy-1.gitbook.io/dev-example2/currency/configuration-files-config.yml/sales.yml.md).

# sales.yml

## `plugins/ManticCurrency/sales.yml`

```
# ==================================================
#                Global Sales Toggle                
# ==================================================
# 1. Enable Sales System:
#    If set to false, all active sales will be 
#    ignored and items will return to original prices.

sales-enabled: true

# ==================================================
#             Command Configuration              
# ==================================================
# 1. Main Command Label:
#    The primary command used to access sale functionality (e.g., /manticsale).
#    A server RESTART is required for any changes to the command label or aliases to take effect.
main-command-label: manticsale

# 2. Command Aliases:
#    Alternative, shorter command names for convenience.
#    Example: If set to ['sales'], players can use /sales.
command-aliases:
- sales

# ==================================================
#             Permission Settings                   
# ==================================================
# Permissions required to access sales management commands.
permission-basecommand: mantic.sales
permission-add: mantic.sales.add
permission-list: mantic.sales.list
permission-clear: mantic.sales.clear
permission-remove: mantic.sales.remove

# ==================================================
#                Sound Settings                   
# ==================================================
# Defines the sound effects played to players when commands are used or specific actions occur.
# Sound names must match the Spigot/Bukkit Sound Enum for your target Minecraft version (e.g., 1.8).
# To disable a sound, simply leave the corresponding value empty ('').
command-add-success-sound: SUCCESSFUL_HIT
command-add-error-sound: VILLAGER_NO
command-clear-success-sound: SUCCESSFUL_HIT
command-clear-error-sound: VILLAGER_NO
command-delete-success-sound: SUCCESSFUL_HIT
command-delete-error-sound: VILLAGER_NO

# ==================================================
#             Placeholder Settings                  
# ==================================================
# Customize how prices and time formats appear in menus.

# 1. Price Format (With Active Sale):
#    Placeholders: {price} = Old Price, {saleprice} = New Price, {sale} = % Off.
price-format-with-sale: '&c&m{price}&r &a{saleprice} &7(&f{sale}%&7)'
# 2. Standard Price Format (No Sale active)
price-format: '&e{price}'
# 3. Permanent Sale Text: Shown when a sale has no expiration date.
permanent-text: Permanent

# ==================================================
#                Sale Settings                      
# ==================================================
# Control global restrictions for the sales system.
restrict-add-to-console: false
restrict-clear-to-console: false
restrict-delete-to-console: false
# If a calculation error results in >100% discount, reset the price to default?
fallback-on-invalid-discount: true
# The maximum percentage a staff member is allowed to set for a sale.
max-allowed-percentage: 50

# ==================================================
#                General Messages                   
# ==================================================
# Customize system messages and broadcast notifications.
msg-usage-add: '&c&lSales &8➸ &cUsage: &f/sales add <category> <percentage> <time
  (e.g. 1d12h)>'
msg-invalid-number: '&c&lSales &8➸ &7You have entered an invalid numeric value.'
msg-invalid-time: '&c&lSales &8➸ &cInvalid time format! Example: 1d12h45m10s'
msg-min-percentage-error: '&c&lSales &8➸ &7Sales must be higher than 0%.'
msg-max-percentage-error: '&c&lSales &8➸ &7Sales must be lower than 100%.'
msg-category-not-found: '&c&lSales &8➸ &c&lERROR: &7Cannot find category ''&e{name}&7''!'
msg-console-only-add: '&c&lSales &8➸ &7You can only add sales through the console!'
msg-sale-activated: '&c&lSales &8➸ &7Activated a &c{sale}%&7 sale for &e{category}&7
  (Duration: &c{duration}&7).'
msg-broadcast:
- ''
- '&c&lSales &8➸ &aA &e{sale}% &asale for &e{category} &ahas been activated for &e{duration}&a!'
- ''
msg-no-active-sales: '&c&lSales &8➸ &7There are currently no active sales.'
msg-list-header: '&8&m-----------------------------------'
msg-list-entry: '&7- &eID: {id} &8| &7Cat: &a{category} &8| &7Disc: &a{percentage}%
  &8| &7Ends: &a{time}'
msg-console-only-clear: '&c&lSales &8➸ &7You can only clear sales through the console!'
msg-console-only-delete: '&c&lSales &8➸ &7You can only delete sales through the console!'
msg-sales-cleared: '&c&lSales &8➸ &7All active sales have been cleared successfully!'
msg-already-at-max-discount: '&c&lSales &8➸ &7This category is already at maximum
  discount (&c{current}%&7)!'
msg-above-max-limit: '&c&lSales &8➸ &7This amount exceeds the maximum allowed percentage
  of &c{max}%&7.'
msg-usage-remove: '&c&lSales &8➸ &cUsage: &f/sales remove <id> &7(Use /sales list
  to find IDs)'
msg-removed-success: '&c&lSales &8➸ &7Successfully removed sale with ID: &e{id}&7.'
msg-sale-id-not-found: '&c&lSales &8➸ &7No active sale found with the ID ''&c{id}&7''.'

```
