mi-redeem¶
A redeem-code system with a React admin dashboard. Players redeem a code with /redeem for item, money, or vehicle rewards; admins create, edit, revoke, and bulk-generate codes from the dashboard.
Install¶
It ships server/migrate.lua, so tables auto-create on first boot, no manual SQL import.
Config¶
Edit shared/config/settings.lua:
return {
commands = {
redeem = 'redeem', -- player: /redeem <code>
admin = 'redeemadmin', -- admin: opens the dashboard
},
adminAce = 'group.admin', -- ace permission required for admin actions
redeemCooldown = 5, -- seconds between a player's redeem attempts
vehicleGarage = 'premiumgarage', -- where vehicle rewards are parked
bulk = {
maxPerBatch = 500, -- hard cap on codes created in one bulk generate
codeLength = 6, -- random body length for auto-generated codes
},
}
Reward kinds (item, money with cash/bank accounts, vehicle) are in shared/config/rewards.lua. The NUI palette is in shared/config/theme.lua (obsidian_rouge | winter_blue | monochrome | twilight_amber | ultramarine_navy). Optional Discord webhooks (codeCreated, codeRedeemed) are in config/apiKeys.lua, blank by default.
Exports¶
| Export | Signature | What it does |
|---|---|---|
| CreateCode (server) | exports['mi-redeem']:CreateCode(def) |
Creates a redeem code from another resource. def = { code, rewards, label?, maxUses?, expiresAt?, createdBy? }. Returns ok, codeOrError. |
Commands¶
| Command | Access | Does |
|---|---|---|
/redeem <code> |
everyone | Redeems a code for its rewards (command name set by config commands.redeem). |
/redeemadmin |
group.admin (config adminAce) |
Opens the redeem admin dashboard (command name set by config commands.admin). |