
Simple, powerful & Folia-ready promo code system for Minecraft servers
Simple, powerful & Folia-ready promo code system for Minecraft servers
MPromoCodes is a lightweight yet flexible promo code plugin that allows players to redeem reward codes using a simple command.
It supports fully configurable rewards, conditions, Discord webhook logs, separated promo code files and multiple storage types including YAML, SQLite and MySQL.
All rewards are executed safely on Bukkit, Spigot, Paper, Purpur and Folia servers.
message:/codes webhook test commandconfig.yml codes to codes.ymlPromo codes are now stored in codes.yml.
codes:
WELCOME:
enabled: true
once-per-player: true
global-use: 3
per-player-use-limit: -1
cooldown: ""
permission-required: ""
start-date: "25/12/2025 00:00"
expiry-date: "31/12/2025 23:59"
title:
enabled: true
main: "&aCode Redeemed!"
sub: "&7You used: &fWELCOME"
fade-in: 10
stay: 40
fade-out: 10
commands:
- "console: give %player% diamond 2"
- "message: &aYou have successfully redeemed the &fWELCOME &acode!"
General plugin settings are stored in config.yml.
settings:
enabled: true
server-name: "survival"
debug: false
case-insensitive-codes: true
trim-code-input: true
min-code-length: 2
max-code-length: 32
use-permission: "mpromocodes.use"
anti-spam:
enabled: true
failed-attempt-cooldown: "3s"
max-failed-attempts: 5
block-time: "1m"
reset-on-success: true
webhook-log-blocked-attempts: true
storage:
type: "SQLITE"
auto-migrate-yaml: true
sqlite:
file: "storage.db"
mysql:
host: "localhost"
port: 3306
database: "mpromocodes"
username: "root"
password: "password"
use-ssl: false
table-prefix: "mpromocodes_"
MPromoCodes can send detailed logs directly to your Discord staff channel.
Webhook logs can include:
You can also test your webhook directly in-game:
/codes webhook test
Webhook embeds support configurable colors, username, avatar, footer and mention protection.
MPromoCodes supports multiple storage backends:
Existing redeemed.yml data can be automatically migrated to SQLite or MySQL when enabled.
storage:
type: "SQLITE"
auto-migrate-yaml: true
When updating from an older version, MPromoCodes can automatically move existing promo codes from config.yml to the new codes.yml file.
On first startup after updating:
codes: from config.yml are moved to codes.ymlconfig-old.ymlconfig.yml is generatedThis keeps old setups safe while allowing the plugin to use the new cleaner file structure.
MPromoCodes includes built-in anti-spam protection for failed redeem attempts.
You can configure:
This helps protect your server and Discord webhook logs from spam.
/code <code> - Redeem a promo code/codes reload - Reload configuration and code files/codes stats - Show information about your redeemed codes/codes menu - Opens the Admin Menu/codes webhook test - Sends a test Discord webhookmpromocodes.use - Allows players to redeem codesmpromocodes.admin - Allows admin commandsmpromocodes.admin.webhook - Allows testing Discord webhooksThe redeem permission can also be changed in config.yml:
settings:
use-permission: "mpromocodes.use"
Promo codes are defined in codes.yml.
Each code can:
Redeemed code data is safely stored using the selected storage type.
All actions are executed in a Folia-safe way using safe scheduling.
✅ Bukkit
✅ Spigot
✅ Paper
✅ Purpur
✅ Folia
✅ Java 17+
The plugin .jar file is larger in this version because MPromoCodes now includes built-in SQLite and MySQL database support.
To make setup easier for server owners, the required database drivers are included directly inside the plugin file. This means you do not need to download or install any extra libraries for SQLite or MySQL support.
The increased file size is expected and is caused by the bundled SQL database drivers, especially the SQLite driver, which contains native libraries for multiple operating systems.
In short:
Unlike simple command-based promo code plugins, MPromoCodes:
codes.yml systemMPromoCodes was built with performance, clarity and future compatibility in mind.
If you are looking for a clean promo code solution with modern storage, Discord logging and Folia-ready execution — this is it.
https://bstats.org/plugin/bukkit/MPromoCodes