🛠️ Installations

Syntax Craft — Installation Guide

Welcome to Syntax Craft, a modern, flexible crafting system for FiveM with full support for QBCore and ESX, NUI admin tools, ox_lib interactions, per-table blips, leveling, and recipe categories.

This page walks you through installation, database setup, and configuration. It is designed for GitBook and uses clean, skimmable sections.


What you get

  • Dual framework support: QBCore and ESX

  • NUI admin panel to create/edit tables and recipes

  • ox_lib interactions (zones and clean prompts)

  • Per-table blips (sprite/color/scale/display) managed from the admin UI

  • Leveling system with XP, required levels, and notifications

  • Recipe categories with icons and filters

  • Job and job-grade restrictions

  • Clean SQL schema and persistence via oxmysql/MySQL


Requirements

  • FiveM server up and running

  • One of the frameworks below:

    • QBCore: qb-core

    • ESX: es_extended

  • Database driver: oxmysql (recommended) or MySQL equivalent

  • Interactions: ox_lib (recommended)

Tip: Keep your framework and dependencies updated to the latest stable versions.


Folder and resource name

Place the resource inside your server's resources folder with the exact name:

  • Folder name: Syntax_Craft

Warning: Renaming the folder will break events and manifest references. Keep it as Syntax_Craft.


Installation steps (Quick Start)

  1. Download and place the folder in resources as Syntax_Craft.

  2. Import the SQL schema into your database:

  • File: syntax_craft_complete.sql

  • Tables created:

    • syntax_crafting_tables — crafting tables with position, prop, job restrictions, and blip fields

    • syntax_craft_profiles — player crafting XP and level

  1. Ensure the resource in your server.cfg after your framework and oxmysql/ox_lib:

  1. Start your server. Use the admin command in-game to open the panel:

  • Admin command: /craftadmin

Note: Only players in configured admin groups can access the admin panel.


Database schema

The SQL file ships with the essential schema only. If you are upgrading, back up your data and compare columns before importing.

  • syntax_crafting_tables

    • Stores: label/name, coords/heading, prop model, job/job grades, distance, and blip fields (enabled, sprite, color, scale, display)

  • syntax_craft_profiles

    • Stores: player identifier, current XP and level

Tip: If you changed table or column names previously, align your schema before running the import.


Configuration (shared/config.lua)

This file controls the script behavior. Below is a guided tour of each section.

Framework

  • Set Config.Framework to match your server

  • Enable only the section you are actually using (ESX or QBCore)

Language

  • The UI and notifications use the selected locale in Config.Locales

  • You can add your own language pack by extending Config.Locales

Categories

  • Controls the categories shown in the recipe creator and player UI

  • You can rename labels and icons without changing the IDs

Leveling system

  • Linear XP growth by default: XP required per level = BaseXP + (level-1) * StepXP

  • Toggle notifications as needed

Admin access

  • Only members of these groups can open the admin panel

  • Adjust group names to match your permission system

Crafting and distance

  • Per-table blips are managed from the admin UI; this flag controls whether blips show at all

Animation

  • Change animation dict/clip if you want different crafting behavior

Available props

  • These props appear in the admin panel when creating a crafting table

Positioning speeds

Positioning keys

Note: If you prefer Alt for lowering height, set heightDown = 19.


Admin panel (NUI)

Open the panel with /craftadmin.

  • Create Table: choose a prop, name, distance, job requirements, and blip settings

  • Edit Table: update any field, including blip sprite/color/scale/display

  • Reposition Table: move and rotate in world using configured keys

  • Add Recipe: set item ID, display name, category, ingredients, XP, level, duration, amount, price

Tip: Per-table blips are fully controlled here. There is no Config.Blip block; that logic lives in the admin UI and database.


Inventory images (qb-inventory and ox_inventory)

Syntax Craft supports both popular inventories for item images and names. Ensure your items are configured in your inventory resource. If your server uses custom item definitions, mirror the names in your recipes.

  • qb-inventory: relies on shared items from QBCore

  • ox_inventory: uses its metadata and item registry


Interactions (ox_lib)

The script uses ox_lib zones and text UI for clean prompts and better performance.

  • If ox_lib is missing, install and ensure it before this resource

  • Prompts are concise and do not include the internal table name


Blips

  • No default blips are forced

  • Each table has its own blip configuration saved in the database

  • Fields include: enabled, sprite, color, scale, display

  • You can toggle visibility globally with Config.ShowBlips


Troubleshooting

  • Categories not showing in the recipe creator:

    • Check Config.Categories is defined and IDs are strings

    • Ensure the NUI receives the config on open (resource restart after changes)

  • Blip toggle resets after restart:

    • Make sure the extended blip columns exist in syntax_crafting_tables

    • Verify values are stored as correct types (boolean/number)

  • Admin command does nothing:

    • Confirm your group is listed in Config.AdminGroups

    • Check server console for permission checks

  • Wrong framework behavior:

    • Set Config.Framework correctly and enable the matching section only


FAQ

  • Can I add new languages? Yes. Extend Config.Locales with a new key (e.g., ['de']) and translate strings. Set Config.Locale = 'de'.

  • Can I add more props? Yes. Add entries to Config.AvailableProps with label and model.

  • Can I hide all blips? Set Config.ShowBlips = false.


Support

  • Author: Syntax Store

  • Add your Discord invite link here

  • Include your documentation site or storefront link if applicable


Changelog (suggested)

Maintain a separate CHANGELOG.md or a GitBook page to track releases, migrations, and breaking changes.

Last updated