Installation

Quasar Daily Rewards is a fully creator-driven advent calendar. Create custom days, assign items, money, or vehicles, and let players enjoy an immersive cinematic while opening gifts inside Santa Claus’s house. A unique Christmas system to personalize your FiveM server.


Download Script

To download the assets needed for this script, you must access the official Cfx.re portal, where all assets purchased through Tebex are managed.

  1. Go to the following link: 🔗 https://portal.cfx.re/assets/granted-assets

  2. Log in with the same Cfx.re account you used to make the purchase.

  3. In the list of granted assets, find and download the following:

  • Daily Rewards [Christmas Event]


Download Dependencies

This script requires some mandatory dependencies to function correctly. Make sure to download and extract them inside your server’s main directory, keeping their original folder structure intact.


Server.cfg Placement

This script must always start after es_extended or qb-core, never before. We recommend placing it below in your server.cfg, ensuring that all its dependencies are started first to prevent errors or unexpected behavior.


Database Setup

This script includes an essential database required for its operation. You must import it before starting your server, preferably using HeidiSQL or any other manager compatible with MariaDB/MySQL.

DATABASE ESX/QBCORE
CREATE TABLE IF NOT EXISTS `qs_dailyrewards_track` (
    `id` INT NOT NULL PRIMARY KEY,
    `day` INT NOT NULL UNIQUE,
    `title` VARCHAR(255) NOT NULL,
    `description` TEXT,
    `rewards` JSON NOT NULL,
    `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX `idx_day` (`day`),
    CHECK (`day` >= 1 AND `day` <= 30),
    CHECK (`id` = `day`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `qs_dailyrewards_progress` (
    `identifier` VARCHAR(50) NOT NULL PRIMARY KEY,
    `claimed_days` INT NOT NULL DEFAULT 0,
    `streak` INT NOT NULL DEFAULT 0,
    `longest_streak` INT NOT NULL DEFAULT 0,
    `last_claim_date` DATE,
    `next_refresh` DATETIME,
    `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX `idx_identifier` (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `qs_dailyrewards_claimed` (
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `identifier` VARCHAR(50) NOT NULL,
    `reward_id` INT NOT NULL,
    `day` INT NOT NULL,
    `claimed_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (`reward_id`) REFERENCES `qs_dailyrewards_track`(`id`) ON DELETE CASCADE,
    INDEX `idx_identifier` (`identifier`),
    INDEX `idx_reward_id` (`reward_id`),
    INDEX `idx_day` (`day`),
    UNIQUE KEY `unique_claim` (`identifier`, `reward_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT IGNORE INTO `qs_dailyrewards_track` (`id`, `day`, `title`, `description`, `rewards`) VALUES
(1, 1, 'Day 1', 'Welcome to your daily rewards journey!', '[{"type":"money","moneyType":"money","amount":100}]'),
(2, 2, 'Day 2', 'Keep up the streak!', '[{"type":"money","moneyType":"money","amount":200}]'),
(3, 3, 'Day 3', 'You\'re doing great!', '[{"type":"money","moneyType":"money","amount":300}]'),
(4, 4, 'Day 4', 'Consistency is key!', '[{"type":"money","moneyType":"money","amount":400}]'),
(5, 5, 'Day 5', 'Halfway through the first week!', '[{"type":"money","moneyType":"money","amount":500}]'),
(6, 6, 'Day 6', 'Almost a full week!', '[{"type":"money","moneyType":"money","amount":600}]'),
(7, 7, 'Day 7', 'First week complete!', '[{"type":"money","moneyType":"money","amount":700}]'),
(8, 8, 'Day 8', 'Starting week two!', '[{"type":"money","moneyType":"money","amount":800}]'),
(9, 9, 'Day 9', 'Keep it going!', '[{"type":"money","moneyType":"money","amount":900}]'),
(10, 10, 'Day 10', 'Double digits!', '[{"type":"money","moneyType":"money","amount":1000}]'),
(11, 11, 'Day 11', 'You\'re on a roll!', '[{"type":"money","moneyType":"money","amount":1100}]'),
(12, 12, 'Day 12', 'Great progress!', '[{"type":"money","moneyType":"money","amount":1200}]'),
(13, 13, 'Day 13', 'Lucky number!', '[{"type":"money","moneyType":"money","amount":1300}]'),
(14, 14, 'Day 14', 'Two weeks strong!', '[{"type":"money","moneyType":"money","amount":1400}]'),
(15, 15, 'Day 15', 'Halfway point!', '[{"type":"money","moneyType":"money","amount":1500}]'),
(16, 16, 'Day 16', 'Past the halfway mark!', '[{"type":"money","moneyType":"money","amount":1600}]'),
(17, 17, 'Day 17', 'Keep pushing forward!', '[{"type":"money","moneyType":"money","amount":1700}]'),
(18, 18, 'Day 18', 'You\'re unstoppable!', '[{"type":"money","moneyType":"money","amount":1800}]'),
(19, 19, 'Day 19', 'Almost three weeks!', '[{"type":"money","moneyType":"money","amount":1900}]'),
(20, 20, 'Day 20', 'Two-thirds complete!', '[{"type":"money","moneyType":"money","amount":2000}]'),
(21, 21, 'Day 21', 'Three weeks milestone!', '[{"type":"money","moneyType":"money","amount":2100}]'),
(22, 22, 'Day 22', 'Final stretch begins!', '[{"type":"money","moneyType":"money","amount":2200}]'),
(23, 23, 'Day 23', 'So close to the end!', '[{"type":"money","moneyType":"money","amount":2300}]'),
(24, 24, 'Day 24', 'Almost there!', '[{"type":"money","moneyType":"money","amount":2400}]'),
(25, 25, 'Day 25', 'Final week!', '[{"type":"money","moneyType":"money","amount":2500}]'),
(26, 26, 'Day 26', 'Keep going!', '[{"type":"money","moneyType":"money","amount":2600}]'),
(27, 27, 'Day 27', 'Just a few more days!', '[{"type":"money","moneyType":"money","amount":2700}]'),
(28, 28, 'Day 28', 'Almost at the finish line!', '[{"type":"money","moneyType":"money","amount":2800}]'),
(29, 29, 'Day 29', 'One more day!', '[{"type":"money","moneyType":"money","amount":2900}]'),
(30, 30, 'Day 30', 'Congratulations! You completed the full month!', '[{"type":"money","moneyType":"money","amount":3000}]');

Opening the Daily Rewards Menu

The Daily Rewards interface can be accessed at any time during the event. Once inside the server, players can open the advent calendar menu and claim their daily gift directly through the built-in command.

/dailyrewards

Use this command in the chat to instantly open the Daily Rewards menu and access the current day’s reward.


Editing Rewards and Days

Server staff can modify the advent calendar, add new days, or change the daily gifts through the built-in creator tool.

/rewardcreator

This command opens the Reward Creator panel, allowing you to edit days, configure items, money, vehicles, and fully customize the daily rewards.