Quasar Store Logo

Installation

Installation guide — please follow each step carefully and exactly as described to ensure the script works correctly on your server. Skipping or modifying steps may cause the system to not function properly, so follow it step by step.

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

Access the Granted Assets Page

Open the Cfx.re granted assets page: https://portal.cfx.re/assets/granted-assets.

This page contains all assets linked to your Cfx.re purchases.

2

Log In with Your Cfx.re Account

Sign in using the same Cfx.re account you used when purchasing the asset.

If you use a different account, the assets will not appear.

3

Download the Housing Assets

In the granted assets list, locate and download:

Restaurant Creator

These two packages are required to install the full housing system.

These files include the models, materials, and visual resources required for the proper operation of the housing system.





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.





Example Maps (Optional)

Below you’ll find the SQL to load two pre-made restaurant examples. You can also access the download links and credits for their creators if you want to test them, a burger restaurant and a pizzeria.





Database Setup

Avoid using tools like XAMPP or other non-optimized local servers, as they may cause connection errors.

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.

ESX/QB

CREATE TABLE IF NOT EXISTS `qs_restaurants` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `label` VARCHAR(255) NOT NULL, `owner_identifier` VARCHAR(50) DEFAULT NULL, `owner_name` VARCHAR(255) DEFAULT NULL, `color` VARCHAR(7) DEFAULT '#3B82F6', `zone_points` LONGTEXT DEFAULT NULL, `fridges` LONGTEXT DEFAULT NULL, `kiosks` LONGTEXT DEFAULT '[]', `displays` LONGTEXT DEFAULT '[]', `pos_terminals` LONGTEXT DEFAULT '[]', `blip_data` LONGTEXT DEFAULT NULL, `cooking_systems` LONGTEXT DEFAULT NULL, `bossmenu_location` LONGTEXT DEFAULT NULL, `delivery_location` LONGTEXT DEFAULT NULL, `is_open` TINYINT(1) DEFAULT 1, `image` VARCHAR(255) DEFAULT NULL, `creator` VARCHAR(50) DEFAULT NULL, `fries_price` INT(11) DEFAULT 0, `fries_category_id` INT(11) DEFAULT NULL, `beverage_settings` LONGTEXT DEFAULT NULL, `addon_beverages` LONGTEXT DEFAULT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), INDEX `owner_identifier` (`owner_identifier`), INDEX `creator` (`creator`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ALTER TABLE `qs_restaurants` ADD COLUMN IF NOT EXISTS `addon_beverages` LONGTEXT DEFAULT NULL AFTER `beverage_settings`; CREATE TABLE IF NOT EXISTS `qs_restaurant_finance` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `restaurant_id` INT(11) NOT NULL, `balance` BIGINT DEFAULT 0, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `restaurant_id` (`restaurant_id`), FOREIGN KEY (`restaurant_id`) REFERENCES `qs_restaurants`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `qs_restaurant_transactions` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `restaurant_id` INT(11) NOT NULL, `type` ENUM('deposit', 'withdraw', 'sale', 'expense') NOT NULL, `amount` BIGINT NOT NULL, `description` VARCHAR(255) DEFAULT NULL, `identifier` VARCHAR(50) DEFAULT NULL, `name` VARCHAR(255) DEFAULT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), INDEX `restaurant_id` (`restaurant_id`), INDEX `type` (`type`), FOREIGN KEY (`restaurant_id`) REFERENCES `qs_restaurants`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `qs_restaurant_workers` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `restaurant_id` INT(11) NOT NULL, `identifier` VARCHAR(50) NOT NULL, `name` VARCHAR(255) NOT NULL, `rank_id` INT(11) DEFAULT NULL, `is_owner` TINYINT(1) DEFAULT 0, `joined_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `restaurant_worker` (`restaurant_id`, `identifier`), INDEX `restaurant_id` (`restaurant_id`), FOREIGN KEY (`restaurant_id`) REFERENCES `qs_restaurants`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `qs_restaurant_ranks` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `restaurant_id` INT(11) NOT NULL, `label` VARCHAR(100) NOT NULL, `grade` INT(11) DEFAULT 0, `permissions` LONGTEXT DEFAULT NULL, PRIMARY KEY (`id`), INDEX `restaurant_id` (`restaurant_id`), FOREIGN KEY (`restaurant_id`) REFERENCES `qs_restaurants`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `qs_restaurant_recipes` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `restaurant_id` INT(11) NOT NULL, `name` VARCHAR(100) NOT NULL, `label` VARCHAR(255) NOT NULL, `ingredients` LONGTEXT DEFAULT NULL, `result_item` VARCHAR(100) DEFAULT NULL, `result_count` INT(11) DEFAULT 1, `prep_time` INT(11) DEFAULT 5000, `cook_time` INT(11) DEFAULT 5000, `pack_time` INT(11) DEFAULT 3000, `price` INT(11) DEFAULT 0, `category_id` INT(11) DEFAULT NULL, `created_by` VARCHAR(50) DEFAULT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), INDEX `restaurant_id` (`restaurant_id`), INDEX `category_id` (`category_id`), FOREIGN KEY (`restaurant_id`) REFERENCES `qs_restaurants`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `qs_restaurant_recipe_steps` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `recipe_id` INT(11) NOT NULL, `step_order` INT(11) NOT NULL DEFAULT 1, `step_type` ENUM('prep', 'chop', 'marinate', 'cook', 'beverage', 'pack') NOT NULL, `step_label` VARCHAR(100) DEFAULT NULL, `input_item` VARCHAR(100) DEFAULT NULL, `input_count` INT(11) DEFAULT 1, `output_item` VARCHAR(100) NOT NULL, `output_count` INT(11) DEFAULT 1, `duration` INT(11) DEFAULT 5000, `ingredients` LONGTEXT DEFAULT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), INDEX `recipe_id` (`recipe_id`), INDEX `step_order` (`step_order`), FOREIGN KEY (`recipe_id`) REFERENCES `qs_restaurant_recipes`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `qs_restaurant_kiosk_categories` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `restaurant_id` INT(11) NOT NULL, `name` VARCHAR(50) NOT NULL, `description` VARCHAR(255) DEFAULT NULL, `icon` VARCHAR(50) DEFAULT NULL, `image` VARCHAR(255) DEFAULT NULL, `color` VARCHAR(50) DEFAULT 'gray', `sort_order` INT(11) DEFAULT 0, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), INDEX `restaurant_id` (`restaurant_id`), INDEX `sort_order` (`sort_order`), FOREIGN KEY (`restaurant_id`) REFERENCES `qs_restaurants`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `qs_restaurant_orders` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `restaurant_id` INT(11) NOT NULL, `order_number` INT(11) NOT NULL, `customer_identifier` VARCHAR(100) NOT NULL, `customer_name` VARCHAR(100) DEFAULT NULL, `kiosk_index` INT(11) NOT NULL, `items` LONGTEXT NOT NULL, `total_price` INT(11) NOT NULL, `payment_method` ENUM('cash', 'bank') DEFAULT 'cash', `status` ENUM('pending', 'preparing', 'ready', 'completed', 'cancelled') DEFAULT 'pending', `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `completed_at` TIMESTAMP NULL DEFAULT NULL, PRIMARY KEY (`id`), INDEX `restaurant_id` (`restaurant_id`), INDEX `status` (`status`), INDEX `order_number` (`order_number`), INDEX `customer_identifier` (`customer_identifier`), FOREIGN KEY (`restaurant_id`) REFERENCES `qs_restaurants`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `qs_restaurant_burger_recipes` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `restaurant_id` INT(11) NOT NULL, `name` VARCHAR(100) NOT NULL, `label` VARCHAR(255) NOT NULL, `ingredients` LONGTEXT NOT NULL, `price` INT(11) DEFAULT 0, `image` VARCHAR(500) DEFAULT NULL, `category_id` INT(11) DEFAULT NULL, `created_by` VARCHAR(50) DEFAULT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), INDEX `restaurant_id` (`restaurant_id`), INDEX `category_id` (`category_id`), FOREIGN KEY (`restaurant_id`) REFERENCES `qs_restaurants`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `qs_restaurant_pizza_recipes` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `restaurant_id` INT(11) NOT NULL, `name` VARCHAR(100) NOT NULL, `label` VARCHAR(255) NOT NULL, `toppings` LONGTEXT NOT NULL, `price` INT(11) DEFAULT 0, `image` VARCHAR(500) DEFAULT NULL, `category_id` INT(11) DEFAULT NULL, `created_by` VARCHAR(50) DEFAULT NULL, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), INDEX `restaurant_id` (`restaurant_id`), INDEX `category_id` (`category_id`), FOREIGN KEY (`restaurant_id`) REFERENCES `qs_restaurants`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `qs_restaurant_allowed_items` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `item_name` VARCHAR(100) NOT NULL, `item_label` VARCHAR(255) NOT NULL, `shop_purchasable` TINYINT(1) DEFAULT 0, `shop_price` INT(11) DEFAULT 0, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `item_name` (`item_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; INSERT IGNORE INTO `qs_restaurant_allowed_items` (`id`, `item_name`, `item_label`, `shop_purchasable`, `shop_price`, `created_at`) VALUES (1, 'cooked_pizza', 'Cooked Pizza', 0, 0, '2026-02-14 05:59:13'), (2, 'cola_drink', 'Cola', 0, 0, '2026-02-14 05:59:13'), (3, 'raw_pizza_dough', 'Raw Pizza Dough', 1, 20, '2026-02-14 05:59:13'), (4, 'pizza_green_pepper', 'Green Pepper', 1, 20, '2026-02-14 05:59:13'), (5, 'pizza_mushroom', 'Mushroom', 1, 20, '2026-02-14 05:59:13'), (6, 'burger', 'Burger', 0, 0, '2026-02-14 05:59:13'), (7, 'burger_cheese', 'Cheese Slice', 0, 0, '2026-02-14 05:59:13'), (8, 'pizza_green_olive', 'Green Olive', 1, 20, '2026-02-14 05:59:13'), (9, 'tomato_slice', 'Tomato Slice', 1, 5, '2026-02-14 05:59:13'), (10, 'burger_bun_bottom', 'Hamburger Bun (Bottom)', 1, 20, '2026-02-14 05:59:13'), (11, 'burger_bun_top', 'Hamburger Bun (Top)', 1, 20, '2026-02-14 05:59:13'), (12, 'pizza_pastrami', 'Pastrami', 1, 40, '2026-02-14 05:59:13'), (13, 'burger_raw_patty', 'Raw Patty', 1, 45, '2026-02-14 05:59:13'), (14, 'pizza_olive', 'Olive', 1, 5, '2026-02-14 05:59:13'), (15, 'sprunk_drink', 'Sprunk', 0, 0, '2026-02-14 05:59:13'), (16, 'onion_slice', 'Onion Ring', 1, 5, '2026-02-14 05:59:13'), (17, 'cooked_fries', 'Cooked Fries', 0, 0, '2026-02-14 05:59:13'), (18, 'lettuce', 'Lettuce', 1, 20, '2026-02-14 05:59:13'), (19, 'raw_fries', 'Raw Fries', 1, 5, '2026-02-14 05:59:13'), (20, 'orange_drink', 'Orange Juice', 0, 0, '2026-02-14 05:59:13'), (21, 'pizza_sauce', 'Pizza Sauce', 1, 20, '2026-02-14 05:59:13'), (22, 'pizza_pepperoni', 'Pepperoni', 1, 20, '2026-02-14 05:59:13'), (23, 'mozzarella_cheese', 'Mozzarella Cheese', 1, 20, '2026-02-14 05:59:13'); CREATE TABLE IF NOT EXISTS `qs_restaurant_shop_orders` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `restaurant_id` INT(11) NOT NULL, `order_number` INT(11) NOT NULL, `player_identifier` VARCHAR(100) NOT NULL, `player_name` VARCHAR(255) DEFAULT NULL, `items` LONGTEXT NOT NULL, `total_price` INT(11) NOT NULL, `payment_method` ENUM('cash', 'bank') DEFAULT 'cash', `status` ENUM('pending', 'delivering', 'delivered', 'claimed') DEFAULT 'pending', `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, `delivered_at` TIMESTAMP NULL DEFAULT NULL, `claimed_at` TIMESTAMP NULL DEFAULT NULL, `claimed_by` VARCHAR(100) DEFAULT NULL, PRIMARY KEY (`id`), INDEX `restaurant_id` (`restaurant_id`), INDEX `status` (`status`), FOREIGN KEY (`restaurant_id`) REFERENCES `qs_restaurants`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Optional example restaurants included. Maps must be downloaded separately.

EXAMPLE RESTAURANTS