BetterStore
A fully-featured, modular in-game store plugin for Counter-Strike 2 servers running SwiftlyS2.
Releases and Downloads
Features
-
Multi-currency support — Define any number of named currencies (e.g. credits, tokens, gems), each with its own icon, balance commands, and gifting permissions. All currencies integrate with the Economy API.
-
Hierarchical store menu — Organize items into nested categories and subcategories via a simple JSONC config file. No code changes required to add new items.
-
Inventory system — Players can view all owned items, see remaining time for timed items, equip/unequip, inspect, and sell items from a single menu.
-
Timed & permanent items — Items can be permanent or expire after a configurable duration (
7d,1h30m,permanent, etc.). Expired items are automatically purged every 60 seconds. -
Weapon/Player Models — Supports Custom Weapon and Player models that support AG2.
-
Purchase confirmation — Optional confirm dialog before finalizing a purchase.
-
Inspect / preview — Player skin and weapon skin items can be previewed before purchasing.
-
Free-use permission — Players with
betterstore.freeusecan equip any item without purchasing it. -
Top-10 leaderboard —
!richcommand shows the top 10 wealthiest players per currency. -
Currency gifting — Players can gift currency to each other (per-currency opt-in).
-
Async MySQL persistence — All database writes are queued and flushed in batches, either on a timer, on round end, or on map change — minimising performance impact.
-
Orphan cleanup — On startup, items referencing item IDs that no longer exist in the config are automatically removed from the database.
-
Modular architecture — New item types can be added as external plugins implementing
IItemModulewithout modifying BetterStore itself. -
Fully translatable — All player-facing strings are in JSONC translation files (
en.jsonc,tr.jsonc, etc.). -
Default model management — Configure default T-side and CT-side models; admin commands (
!model0/!model1) can toggle player models server-wide. -
Gradient menu titles — Configurable hex color gradient for the store menu title.
Commands
| Command (default) | Description |
|---|---|
!store / !shop |
Open the main store menu |
!inventory / !inv |
Open your inventory |
!gift <player> <amount> [currency] |
Gift currency to another player |
!rich |
View the top-10 wealthiest players leaderboard |
!<currency> |
Check your balance for that currency (one command per configured currency) |
Admin Commands
| Command | Permission | Description |
|---|---|---|
givecurrency <player> <amount> <currency> |
betterstore.currency |
Give currency to a player |
removecurrency <player> <amount> <currency> |
betterstore.currency |
Remove currency from a player |
resetplayer <player> |
betterstore.reset |
Wipe all store data and currency for a player |
resetdatabase |
betterstore.reset |
Wipe the entire store database |
model0 |
betterstore.admin |
Force all players back to their default model |
model1 |
betterstore.admin |
Reapply all player custom models |
More Details
- Read more in the github repository here:
Releases · btnrv/BetterStore · GitHub
