Configuration
Customize your server branding, products, discounts, feature toggles, and more.
Configuration
AuroraMC is designed to be configured through a few centralized files. You can customize everything from your server name and branding to products, discount codes, and which widgets appear on the storefront — without touching component logic.
Site Config
Edit config/site.config.ts to set your server details, branding, feature toggles, currency, and SEO metadata.
Server Info & Branding
export const siteConfig = {
serverName: 'YourServer',
serverIp: 'play.yourserver.net',
websiteUrl: 'https://yourserver.com',
discordUrl: 'https://discord.gg/your-invite-code',
supportEmail: 'support@yourserver.com',
mainLogo: '/server-logo.png',
smallLogo: '/server-icon.png',
favicon: '/server-icon.png',
heroBackground: '/server-background.png',
// ...
};All image paths reference files inside the public/ directory. Drop your images there with matching filenames.
[!TIP] Recommended image dimensions:
server-logo.png— 800×300px, transparent PNGserver-background.png— 1920×1080px, hero bannerserver-icon.png— 512×512px, used as favicon- Product images — 400×400px
Feature Toggles
Control which widgets and features appear on the store:
features: {
showDiscordWidget: true,
showServerStatus: true,
showRecentPurchases: true,
showMonthlyGoal: true,
enableCoupons: true,
},Set any of these to false to hide that section from the storefront.
Currency
Configure the currency symbol and display format:
currency: {
symbol: '$',
code: 'USD',
position: 'before', // 'before' = $10.00, 'after' = 10.00$
},SEO
Set the page title, description, and keywords for search engines:
seo: {
title: 'YourServer Store - Minecraft Packages',
description: 'Purchase ranks, items, and exclusive packages. Secure checkout powered by Tebex.',
keywords: 'minecraft, server, store, ranks, tebex',
},Theme
Configure the color scheme:
theme: {
primaryColor: 'purple',
accentColor: 'pink',
darkMode: true,
},For deeper color customization, see the Customization Guide.
Products
Products are defined in src/lib/store-data.ts. Each product has an ID, name, price, image, category, and optional properties:
export const products: Product[] = [
{
id: 'gold-1000',
name: '1000 Gold',
price: 10.00,
image: '/gold-500.png',
category: 'gold',
description: 'Get 1000 gold coins for your server adventures.',
features: [
'1000 Gold Coins',
'Instant Delivery',
'Never Expires',
'Secure Transaction'
],
color: 'from-yellow-500 to-amber-500',
isPopular: true
},
];Product Fields
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique identifier, also used for Tebex mapping |
name | string | Yes | Display name shown on the store |
price | number | Yes | Price in your configured currency |
originalPrice | number | No | Strikethrough price for showing discounts |
image | string | Yes | Path to product image in public/ |
category | string | Yes | One of: 'gold', 'xolar', 'nova' |
subcategory | string | No | One of: 'ranks', 'gkits', 'hypeboxes', 'crate-keys', 'lootboxes' |
description | string | Yes | Short product description |
features | string[] | Yes | Bullet-point list of included features |
color | string | No | Tailwind gradient classes for the product card |
isPopular | boolean | No | Highlights the product with a "Popular" badge |
Categories
Categories are also defined in src/lib/store-data.ts. Each category has an ID, display name, description, and gradient colors:
export const categories: Category[] = [
{
id: 'gold',
name: 'Gold Packages',
description: 'Purchase gold coins for in-game currency',
color: 'from-yellow-500 to-amber-600',
gradient: 'from-yellow-500 to-amber-500',
icon: '',
count: 1
},
];Update the count field to reflect the number of products in each category.
Tebex Product Mapping
To connect your local products to Tebex for checkout, map each product ID to its Tebex Package ID in config/products.config.ts:
export const productMapping: Record<string, number> = {
'gold-1000': 1234567,
'example-rank': 7654321,
};Finding Your Tebex Package ID
- Open your Tebex Dashboard
- Go to Packages and click on a package
- The Package ID is in the browser URL — for example,
https://creator.tebex.io/packages/1234567→ the ID is1234567
[!IMPORTANT] Products with a mapping value of
0or missing from the mapping will not redirect to Tebex checkout. Make sure every product you want to sell has a valid Package ID.
Discount Codes
Discount codes are managed in src/lib/discount-codes.ts:
export const discountCodes: DiscountCode[] = [
{
code: 'STORE10',
discountPercent: 10,
maxUses: 100,
currentUses: 0,
description: '10% off for new players'
},
{
code: 'WELCOME20',
discountPercent: 20,
maxUses: 50,
currentUses: 0,
description: '20% welcome discount for first-time buyers'
},
];Discount Code Fields
| Field | Type | Description |
|---|---|---|
code | string | The code customers enter (case-insensitive) |
discountPercent | number | Percentage discount (e.g., 10 = 10% off) |
maxUses | number | Maximum number of times this code can be used |
currentUses | number | Set to 0 for new codes |
description | string | Internal description for your reference |
expiryDate | Date | Optional — code expires after this date |
Usage counts are tracked in the browser's localStorage, so they persist per-device but reset across different browsers.
[!TIP] If you prefer to manage discounts entirely through Tebex, set
enableCoupons: falsein the feature toggles and use Tebex's built-in coupon system instead.
Social Proof Data
Recent Purchases
Edit the recentPurchases array in src/lib/store-data.ts to show recent activity:
export const recentPurchases: RecentPurchase[] = [
{ username: 'Player1', product: 'VIP Rank', time: '2m ago' },
{ username: 'Player2', product: '1000 Gold', time: '5m ago' },
];Top Donators
Edit the topDonators array with your community's top supporters:
export const topDonators = [
{ rank: 1, username: 'Player1', amount: 500, avatar: '👑', badge: '🏆' },
{ rank: 2, username: 'Player2', amount: 350, avatar: '⭐' },
];Monthly Goal
Set your monthly donation target:
export const monthlyGoalData: MonthlyGoal = {
current: 150,
target: 500,
month: 'This Month'
};