Plugin Idea: Role Shop — buy roles with economy currency
A Role Shop where users can purchase roles using the economy currency (points/coins). Bridges the Economy system with role management. Found in UnbelievaBoat, Dank Memer, and many custom bots.
Why
Role Shops drive massive engagement by giving users something to spend their economy currency on. It creates a goal loop: earn money → save up → buy a cool role → show it off. The economy exists but there's no meaningful currency sink beyond bragging rights.
Spec
Commands (Users):
/roleshop — Browse available roles and prices
/roleshop buy <role> — Purchase a role (cost deducted from wallet)
/roleshop confirm — Confirm purchase (2-step for expensive roles)
/roleshop sell <role> — Sell a role back at 50% value
/roleshop collection — Your purchased roles
Commands (Admin):
/roleshop add <role> <price> — Add a role to the shop
/roleshop remove <role> — Remove a role from the shop
/roleshop price <role> <new-price> — Change price
/roleshop role-info <role> — See purchase stats for a role
/roleshop clear-user <user> — Reset a user's purchased roles
/roleshop toggle — Enable/disable the plugin
Config:
| Key |
Type |
Default |
Description |
sellRefundPercent |
Number |
50 |
Percent refunded when selling a role (0=no refund) |
confirmThreshold |
Number |
10000 |
Price above which confirmation is required |
maxRolesPerUser |
Number |
5 |
Max purchasable roles per user |
roleGroup |
String |
'' |
Optional: assign bought roles under this group |
removeOnLeave |
Boolean |
true |
Remove purchased roles when user leaves |
logChannel |
String |
'' |
Channel ID for purchase logs |
Features:
- Time-Limited Roles — Roles can have a duration (buy role for 7 days, auto-removed)
- Role Bundles — Package multiple roles at a discount
- Color Roles — Special handling: user picks the hex color when buying
- Stock System — Limited supply roles (only 5 available, first come first served)
- Toggleable — Per-role: permanent vs timed, exclusive vs stackable
- Purchase Logs — Log all purchases to a configured channel
- Hoist Priority — Configurable position for purchased roles
Model:
// Shop listing
{
guildId: String,
roleId: String,
price: Number,
stock: Number, // -1 = unlimited
durationMs: Number, // 0 = permanent
exclusive: Boolean, // can only have 1 from this group
createdAt: Date
}
// Purchases
{
userId: String,
guildId: String,
roleId: String,
pricePaid: Number,
expiresAt: Date, // null = permanent
purchasedAt: Date
}
Acceptance Criteria
Plugin Idea: Role Shop — buy roles with economy currency
A Role Shop where users can purchase roles using the economy currency (points/coins). Bridges the Economy system with role management. Found in UnbelievaBoat, Dank Memer, and many custom bots.
Why
Role Shops drive massive engagement by giving users something to spend their economy currency on. It creates a goal loop: earn money → save up → buy a cool role → show it off. The economy exists but there's no meaningful currency sink beyond bragging rights.
Spec
Commands (Users):
/roleshop— Browse available roles and prices/roleshop buy <role>— Purchase a role (cost deducted from wallet)/roleshop confirm— Confirm purchase (2-step for expensive roles)/roleshop sell <role>— Sell a role back at 50% value/roleshop collection— Your purchased rolesCommands (Admin):
/roleshop add <role> <price>— Add a role to the shop/roleshop remove <role>— Remove a role from the shop/roleshop price <role> <new-price>— Change price/roleshop role-info <role>— See purchase stats for a role/roleshop clear-user <user>— Reset a user's purchased roles/roleshop toggle— Enable/disable the pluginConfig:
sellRefundPercentconfirmThresholdmaxRolesPerUserroleGroup''removeOnLeavelogChannel''Features:
Model:
Acceptance Criteria