Contents
Levlix Server Shop Guide
The Levlix Shop module lets server admins offer items purchasable with the server's virtual points currency. Members can browse available items, buy them with their points balance, and view their full purchase history, either from Discord slash commands or straight from the web dashboard.
Where members can shop
There are two equally valid ways to browse and buy:
- In Discord, using the
/shopslash commands documented below. - On the web dashboard, from Economy → Shop. Members see the same catalogue their server admins configured, with their current points balance, availability badges, and a full purchase history.
Buying from the dashboard runs through the exact same safety checks as the slash command: available-from dates, expiry, purchase limits, stock, and payment are all enforced server-side. Points deduction and code assignment happen in one database transaction, so a purchase that fails halfway (for example because the code pool ran out at that instant) never costs points: a buyer is never charged for a code they did not receive.
Member Commands
There is one member command:
/shop
It opens the shop dashboard with two tabs:
| Tab | What you can do |
|---|---|
| Shop | Browse every item currently available, with price, remaining stock, and how many more times you may buy it. Pick an item from the menu, confirm, and the purchase runs. |
| My Purchases | See what you have bought in this server's shop, with date, price, and the code you received. |
The tab option lets you open the dashboard directly on a tab. Items you have already bought up to the limit, and sold-out items, are not offered.
After a confirmed purchase:
- Levlix checks your current balance and the item's stock.
- The item code is sent to you via Direct Message.
- If your DMs are closed, the code is shown to you in an ephemeral (only-you-can-see) message instead.
- Your points balance is reduced by the item price.
For bot-delivered items there is no code: the item is applied to you and the confirmation says so. The My Purchases tab lists your active effects first.
If you do not have enough points, Levlix tells you how many points you need and how many you currently have.
Shopping from the Dashboard
Open Economy → Shop on the Levlix Web Dashboard. Members land straight on the store view; server managers see the management view by default and can open the member-facing store by appending ?view=store to the shop URL.
The store page shows:
| Element | What it means |
|---|---|
| Points balance | Your current server points, updated after every purchase. |
| Status badges | Available, Scheduled (unlocks on a future date), Sold Out, or Expired. |
| Buy button | Disabled when the item is not active, you have reached its purchase limit, or your balance is too low. |
| My purchases | Every code you ever bought in this server, newest first. |
| Active effects | Roles, boosts, shields and nicknames you currently hold, with their end date. |
Revealing a code you bought
To keep purchased codes safe if someone shoulder-surfs your screen, the purchase history only shows the last four characters of each code by default. Click Reveal on a row to fetch the full value on demand. Every reveal is recorded, so you always have proof of what you claimed and when.
Purchases of bot-delivered items show what you bought and its status (active until, scheduled, used, expired, revoked, refunded) instead of a code.
Sold-out and scheduled items
- Sold out items appear greyed out and cannot be purchased. They stay on the page so members can see what has been offered in the past.
- Scheduled items list the date they unlock. The buy button is disabled until
available_fromis reached. - Expired items stay listed with an Expired badge and cannot be purchased.
Admin: Managing the Shop
Admins add, edit, and remove shop items via the Levlix Web Dashboard. Each item has the following configuration options:
| Setting | Description |
|---|---|
| Item Title | Name displayed to users |
| Price (Points) | Cost in server points |
| Item kind | What the buyer gets: a code from a pool, or something the bot delivers itself (see below) |
| Stock | Optional number of units for bot-delivered items; empty means unlimited |
| Purchase Limit | Maximum number of times one member can buy this item; 0 means unlimited |
| Announce purchases | Optional channel the bot posts to when someone buys the item |
| Start Date | Optional date from which the item can be bought; until then it shows as Scheduled |
| End Date | Optional date after which the item leaves the shop |

Once all codes for an item are sold, the item is automatically marked as sold out: /shop in Discord no longer offers it, and the web store keeps it greyed out.
An item nobody has bought yet can be deleted. Once someone has bought it, its card shows End now instead of Delete: the purchases and any running roles, boosts or nicknames stay tied to the item, so it is ended rather than removed. End now sets its end date to the current time, the item leaves the shop at once and stays in the management list under Expired. To sell it again, give it a new end date in Edit.
For quick in-Discord management, open /setup, choose Engagement and then Shop. The shop panel lists your items and has the buttons Create item, Post showcase and Check expiry now, plus a menu that posts a single item in a channel. Shop managers without the Manage Server permission reach the same panel with the Manage shop button in /shop. The dashboard is still the most comfortable way to work with multiple items at once.
Start with a template
A shop without active items shows three templates at the top of the shop page; a shop that already sells something has an Add template button instead.
| Template | Items |
|---|---|
| Starter | Streak shield, custom nickname for 7 days, 2x XP boost for 24 hours |
| Community | Starter plus a weekly lottery ticket and a VIP role for 30 days |
| Active | Community with a shield you can hold three of, plus a 3x XP boost for 48 hours |
Prices follow what a typical member earns on your server per week, so a quiet server gets low prices and a busy one higher ones. A server with little points history yet uses 100 points a week. Nothing is created until you confirm: the preview lets you uncheck items and change every price. For the VIP role, Levlix can create a new role or you pick an existing one. The lottery needs a channel for its results, either picked in the preview or the shop's default channel. Items your shop already sells are unchecked.
Filter shop items by status
The management page has a status filter (All, Active, Scheduled, Expired, Sold out) so you can jump straight to the items that need attention. The status is derived from the same rules the store applies to members, which means the two views can never disagree.
Bot-delivered items
Besides codes, the shop can sell things the bot applies itself. Pick the kind when you create the item; the kind cannot be changed afterwards, but its settings can.
| Kind | What the member gets | Settings | Bot permission |
|---|---|---|---|
| Temporary role | A role for a number of days (1 to 365) | Role, duration | Manage Roles, and the role must sit below the bot's top role |
| Personal XP boost | A multiplier on their own XP for a number of hours (1 to 168) | Multiplier (1.5x to 5x in 0.5 steps), duration | none |
| Streak shield | Protection for the daily streak: one shield covers one missed day | Maximum a member can hold (1 to 10) | none |
| Nickname | A nickname of their choice inside a template you define, for a number of days (1 to 90) | Template with {text}, duration |
Manage Nicknames |
| Lottery ticket | A ticket for the item's current round; one ticket is one chance | Draw weekday and hour (UTC), house cut (0 to 50 percent), tickets per member and round, results channel | Send Messages in the results channel |
Every bot-delivered item can have a stock (how many units exist in total), a purchase limit per member, both, or neither. Code items keep deriving their stock from the number of unused codes.
How delivery works
- Buying in Discord applies the item right away. Buying on the dashboard hands the job to the bot, which applies it within a few minutes at most, even if it was offline at the time of the purchase.
- Buying a timed item again extends it: the new window starts when the current one ends.
- A personal XP boost never stacks with a server-wide boost or a role boost. The largest multiplier applies.
- Streak shields are used automatically: when a member misses days, one shield per missed day is consumed and the streak continues. Without enough shields the streak resets and the shields are kept.
- A nickname item lets the member type the text; the bot renders it into your template (for example
VIP {text}). The text goes through the server's moderation word filters when the moderation module is on. - When an item ends, the bot removes the role or restores the previous nickname. A role the member had before buying is never removed, and a nickname the member changed in the meantime is left alone.
Refunds
If the bot cannot apply an item (the role was deleted, the bot lacks the permission, the member left, or the server owner bought a nickname), the purchase is refunded automatically: the points return to the balance, the stock unit is freed, and the buyer gets a direct message with the reason. The purchase shows as Refunded in the history.
Revoking a grant
Managers see who currently holds a bot-delivered item through Grants on the item card and can revoke a grant there. The bot undoes it within a few minutes. Revoking does not refund.
Purchase announcements
Switch on Announce purchases and pick a channel to have the bot post a short message whenever someone buys the item. Members are mentioned in that message.
Shop settings at the top of the management page hold the defaults every item inherits: a default announcement channel and whether new items start with announcements switched on. An item without its own channel posts into the default channel; lottery draw results use the same fallback. Without a default channel, every announcing item has to pick its own. The Shop Manager Level stays in the Server Settings.
Lottery
A lottery item runs in rounds. Every ticket bought pays its price minus the house cut into the round's pot; the house cut is simply removed from circulation. At the draw time the bot picks one ticket at random (each ticket counts once, so more tickets mean more chances), pays the whole pot to that member as points, posts the result in the results channel and opens the next round. A round without tickets is closed quietly.
Managers can Draw now (the draw runs within a minute) and Void round (every ticket is refunded and the next round opens; the bot posts a short notice). A lottery item cannot be deleted while its open round has tickets: draw or void first. Letting the item expire stops ticket sales, but the open round is still drawn.
The store card shows the current pot, how many tickets are in it, your own tickets and the next draw time. The Discord /shop view shows the same line.
Shop Manager Role
By default, only server admins can manage the shop. If you want to let another role (for example a Community Manager or a dedicated Shop Team) create and edit items, set Shop Manager Level under Server Settings to Moderators+ or Admins & Owner. The role hierarchy (user → moderator → admin → owner) determines who sees the management view and who sees the store.
| Setting | Result |
|---|---|
| Admins & Owner (default) | Only admins and the server owner can manage the shop. |
| Moderators+ | Moderators, admins, and the owner can manage the shop. |
| Owner Only | Only the server owner can manage the shop. |
Members below the configured role always land on the store view, even if they happen to open the management URL directly. Managers previewing the store keep the Back to management link so they never lose their way.
Managing User Balances
Server administrators can manually add, remove, or adjust a member's point balance from the Levlix Web Dashboard. Every change is logged in the audit history for full transparency.
Edge cases and safety notes
- Membership check on every dashboard purchase. The store URL is public to anyone with a Levlix account, but only members of the server can actually buy: the buy handler double-checks membership before touching the code pool.
- One code per buyer, always. A brief database lock is taken on the buyer's row while a purchase is in flight, so double-clicking the buy button (or the same person opening two tabs) can never claim two codes off one payment.
- Bot down? Purchases still work. Dashboard purchases publish over Redis so the bot can DM the winner, but the code is delivered inside the dashboard immediately either way. If the bot is offline, the purchase still succeeds and the code is waiting in your purchase history when you refresh.
- Sold-out flip is instant. When the last code of an item is claimed from the dashboard, the item is marked sold out in the same request. No stale "1 left" showing to the next visitor.