Hello RedM Community,
Introducing Cactus Shop a complete point store, loot case system & reward economy built from scratch for RedM roleplay servers.
This is not a standard in-game shop. Cactus Shop is your server’s full monetization platform: players purchase point packs from your Tebex store, points are automatically credited in-game, and they spend them on items, weapons, VIP perks and CS:GO-style loot cases all from one beautiful western-themed NUI.
The entire loop is covered: Tebex purchase → in-game points → player spends in the shop → server owner tracks everything. Set your categories, connect your Tebex store, design your cases, and your monetization is live in minutes. RSG-Core and VORP Core are auto-detected — one resource, both frameworks.
Preview video: Watch on YouTube ![]()
Discord: Join for support
Screenshots
Store front categories, item cards and live point balance
Case opening animated CS:GO-style roulette
Player profile balance, unique ID and Discord avatar
Transaction history with categories and timestamps
Daily bonus & promo code redemption
What’s Included
Points Store
- Fully customizable categories (VIP, items, weapons, consumables… add as many as you want)
- Buy items, weapons, money or trigger custom actions (VIP roles, services, anything)
- Selectable quantity per item (1–99) with live total
- Flash sales — set a discounted price with an expiration date, original price shown crossed out
- Custom currency label and icon (gold, points, your own image)
- Server-side validation on every purchase no client trust
- Home banner with news / announcements feed
Case Opening (Loot Boxes) — CS:GO Style
- Animated roulette case openings with smooth deceleration
- 5 rarity tiers: common · uncommon · rare · epic · legendary
- Rewards can be items, weapons, money or points directly
- Per-reward drop chances (validated to sum to exactly 100%)
- Sell back any reward you don’t want for points, by rarity
- Event / featured cases that only appear for a limited time (date start → date end)
- Optional cooldown between two openings
- Legendary drop broadcasts announce rare pulls server-wide (name can be hidden)
Economy & Rewards
- Daily bonus claim points every X hours via command or profile button
- Promo codes create codes worth points, with optional max-use limits & expiration
- Point transfers between players
- Complete transaction history with source categories (admin / purchase / case / transfer / daily / code) and timestamps
- Permanent unique player ID usable even while the player is offline
Tebex Integration — The Point Pack Loop
- Players buy point packs from your Tebex store (you set the packages and prices)
- Tebex executes
cshop_addpointsvia a server command delivery — points are credited instantly, even if the player is offline (unique player ID) - Works with any Tebex package type — one-time purchases, bundles, seasonal packs
- Full transaction history records every Tebex delivery with source
admincategory - Server exports let you trigger deliveries from any resource, making it easy to chain Tebex rewards with other scripts
- No third-party middleware needed — a standard Tebex command delivery is all it takes
How it works in practice: You create a Tebex package → set the delivery command to
cshop_addpoints {steam} 500→ player buys it → points land in their wallet, logged and auditable.
Discord Integration
- Auto-fetch player avatars from Discord (bot token)
- Webhook logging for purchases, legendary drops, daily claims and transfers
- Username & profile picture displayed in the player profile
Performance
| Idle | 0.00ms |
| Menu open | 0.01ms |
- Pure NUI front-end nothing runs when the shop is closed
- Optimized SQL queries, database tables auto-created on first start
- Efficient point & history caching
- Server-side validation and anti-exploit checks on every action
Framework Compatibility
| Framework | Status |
|---|---|
| RSG-Core | |
| VORP Core |
Auto-detected at startup no manual configuration needed. One resource, both frameworks.
Security
- Server-side validation on every purchase, case opening and transfer
- Item/case IDs verified server-side prices can’t be tampered with
- Cooldowns and use-limits on sensitive operations (daily, codes, cases)
- Anti double-usage tracking for promo codes
- Discord webhook logging for admin oversight
- Ace-based access control for admin commands
Dependencies
| Resource | Required? | Why |
|---|---|---|
| oxmysql | Yes | Database the script won’t work without it |
| RSG-Core / VORP Core | Yes | One of the two frameworks (auto-detected) |
| Tebex store | Yes (core use-case) | Sell point packs to your community delivery via server command |
| Discord Bot Token | Optional | Only needed to display player Discord avatars |
Configuration
Everything is editable (config files excluded from escrow):
| File | What it controls |
|---|---|
config.lua |
General settings framework, language, currency, daily bonus, cooldowns, Discord, logo |
shared/config_categories.lua |
Store categories & items (price, quantity, discounts, custom actions) |
shared/config_cases.lua |
Cases, rewards, drop chances, rarities & sell-back values |
shared/config_news.lua |
Home banner news / announcements |
shared/config_notifications.lua |
Notification system add your own resource easily |
shared/config_trad.lua |
All translatable strings (FR / EN / ES / DE / PT included) |
Admin Commands
Console-only by default; can be granted in-game via the cactus_shop.admin ace.
| Command | Description |
|---|---|
cshop_addpoints <id|unique_id> <amount> |
Add points to a player (online or offline) |
cshop_setpoints <id|unique_id> <amount> |
Set a player’s points to an exact value |
cshop_checkpoints <id|unique_id> |
Show a player’s balance and identifier |
cshop_history <id|unique_id> |
Show a player’s last 25 transactions |
cshop_createcode <CODE> <POINTS> [MAX_USES] |
Create a promo code (0 = unlimited uses) |
cshop_testlegendary [item name] |
Test the legendary broadcast |
Exports
Full server-side API so other scripts can plug into your economy:
-- Read a balance
local pts = exports['cactus_shop']:GetPoints(identifier)
-- Reward points (logged in history)
exports['cactus_shop']:AddPoints(identifier, 200, 'Main quest reward')
-- Set an exact balance
exports['cactus_shop']:SetPoints(identifier, 1000)
-- Gate access behind a point requirement
if exports['cactus_shop']:HasPoints(identifier, 500) then
-- allow access
end
-- Add a custom history entry
exports['cactus_shop']:LogHistory(identifier, 150, 'admin', 'PvP tournament reward')
Available: GetPoints, AddPoints, SetPoints, HasPoints, LogHistory.
PRICE: FREE SCRIPT
Tebex: https://cactus-code-webstore.tebex.io/package/7531978
| Code is accessible | Config files: Yes / Core: Escrowed |
| Subscription-based | No |
| Lines (approximately) | ~7,200 |
| Requirements | oxmysql · RSG-Core or VORP Core |
| Support | Yes (Discord) |
| Language Support | FR / EN / ES / DE / PT (easy to add more) |









