Updated 2026-10-20 • 500 views

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:

  1. In Discord, using the /shop slash commands documented below.
  2. 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:

  1. Levlix checks your current balance and the item's stock.
  2. The item code is sent to you via Direct Message.
  3. If your DMs are closed, the code is shown to you in an ephemeral (only-you-can-see) message instead.
  4. 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.

Note
Only you can reveal your own codes. The reveal endpoint checks ownership on every request, so even a manager looking at the same page cannot see your codes.

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_from is 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
The shop management view, where point-shop items are created and edited
The shop management view, where point-shop items are created and edited

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.

Note
All checked items are created together. If one of them cannot be saved, none is, and a role Levlix already created is preselected when you try again.

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.

Note
Bot-delivered items need the bot to be online to be applied. The purchase itself always succeeds; what the bot could not do yet is caught up on the next reconcile run.

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.

Note
Draw times are in UTC. A draw the bot missed while offline runs as soon as it is back.

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.

Was this article helpful?

Thanks for your feedback! Your vote helps us improve the documentation.

Your vote could not be saved. Please reload the page and try again.

Share this guide

Your Privacy

We use essential cookies to operate this site and optionally Google Analytics to improve our services. You can accept all, reject all, or choose which categories you allow.

Privacy Policy

Cookie Preferences

Choose which categories of cookies you want to allow. You can change this at any time.

Essential Cookies

Required

Session, CSRF protection, login state.

Analytics Cookies

Optional

Google Analytics 4 with anonymized IP, used to understand aggregate usage.