Skip to content

🚀 Installation & Database Setup ​

Setting up DynaDev Crafting System takes less than 3 minutes thanks to automated database migrations.


📁 1. Resource Placement ​

Extract the resource archive into your server's resources/ folder. Ensure the folder is named:

DynaDev_crafting_system

Folder Architecture: ​

text
server/
  └── resources/
        └── [community]/
              └── DynaDev_crafting_system/
                    ├── client/
                    ├── server/
                    ├── shared/
                    ├── config/
                    │     ├── config.lua
                    │     └── recipes.lua
                    ├── locales/
                    │     ├── en.json
                    │     └── el.json
                    ├── database/
                    │     └── schema.sql
                    └── ui/

đŸ—„ī¸ 2. Database Schema Initialization ​

The resource features an automated database schema installer. Upon the very first boot, it will automatically create all required tables.

If you prefer manual execution via HeidiSQL or phpMyAdmin, run the SQL queries below:

1. dynadev_crafting_xp ​

Stores persistent character trade progression and artisan levels.

sql
CREATE TABLE IF NOT EXISTS `dynadev_crafting_xp` (
    `id`             INT(11)      NOT NULL AUTO_INCREMENT,
    `charidentifier` VARCHAR(64)  NOT NULL,
    `category`       VARCHAR(50)  NOT NULL,
    `xp`             INT(11)      NOT NULL DEFAULT 0,
    `level`          INT(11)      NOT NULL DEFAULT 1,
    `updated_at`     TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    UNIQUE KEY `idx_char_cat` (`charidentifier`, `category`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

2. dynadev_station_orders ​

Stores active asynchronous batches (brewing, stews, forgings) currently in progress at workbenches and campfires. Persists across server restarts!

sql
CREATE TABLE IF NOT EXISTS `dynadev_station_orders` (
    `id`                      INT(11)      NOT NULL AUTO_INCREMENT,
    `station_id`              VARCHAR(100) NOT NULL DEFAULT '',
    `crafter_cid`             VARCHAR(64)  NOT NULL DEFAULT '',
    `crafter_name`            VARCHAR(100) NOT NULL DEFAULT 'Frontier Artisan',
    `recipe_name`             VARCHAR(100) NOT NULL DEFAULT '',
    `recipe_label`            VARCHAR(255) NOT NULL DEFAULT '',
    `reward_item`             VARCHAR(100) NOT NULL DEFAULT '',
    `reward_count`            INT(11)      NOT NULL DEFAULT 1,
    `total_qty`               INT(11)      NOT NULL DEFAULT 1,
    `completed_qty`           INT(11)      NOT NULL DEFAULT 0,
    `claimed_qty`             INT(11)      NOT NULL DEFAULT 0,
    `time_per_item`           INT(11)      NOT NULL DEFAULT 60,
    `current_item_started_at` INT(11)      NOT NULL DEFAULT 0,
    `status`                  VARCHAR(32)  NOT NULL DEFAULT 'brewing',
    `refund_data`             LONGTEXT     DEFAULT NULL,
    `created_at`              TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    INDEX `idx_station_orders_status` (`station_id`, `status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

3. dynadev_crafting_list ​

Stores character shopping lists and tracked recipe materials pinned to the Gathering Tracker HUD.


âš™ī¸ 3. Server Startup (server.cfg) ​

Add the resource into your server.cfg file after oxmysql and your framework core:

cfg
# Database & Core Framework
ensure oxmysql
ensure rsg-core          # or vorp_core / tpz-core

# Inventory
ensure rsg-inventory     # or vorp_inventory / ox_inventory

# DynaDev Crafting System
ensure DynaDev_crafting_system

🔄 4. Server Restart ​

Restart your server or reload the resource via your server console:

shell
refresh
ensure DynaDev_crafting_system

Developed with passion by Dynamic Development.