TC ScriptDocumentation

Database

The full tc-divisions SQL: 9 tc_div_* tables.

#Installation

Import the file once into the database used by oxmysql (MariaDB / MySQL, utf8mb4). It is idempotent. Tables are also created automatically when the resource starts.

Download install.sql

#Tables

TableContent
tc_div_divisionsDivisions (per job): label, colour, order
tc_div_membersCharacters' membership of divisions
tc_div_jobsPer-job settings: management grade, boss chest limits
tc_div_chestsChests: position, capacity, prop, access, code, managing company
tc_div_shopsShops: position, ped / prop, access, code, payment
tc_div_shop_entriesItems and outfits of each shop
tc_div_garagesGarages: spawn spots, storage, plate prefix, access
tc_div_garage_vehiclesService vehicles per garage: divisions, access, grades, roof number
tc_div_logsAction journal

#Full SQL

Show install.sql (157 lines)
install.sqlDownload
-- tc-divisions : installation (idempotent, MariaDB / MySQL, utf8mb4).
-- Les tables sont aussi créées automatiquement au démarrage de la ressource (même contenu).
-- Installation manuelle : importer ce fichier une fois dans la base utilisée par oxmysql.
-- Anciennes bases (ressource d'origine) : utiliser le fichier de migration fourni à part, AVANT le premier démarrage.

CREATE TABLE IF NOT EXISTS `tc_div_divisions` (
    `id`          INT          NOT NULL AUTO_INCREMENT,
    `job`         VARCHAR(50)  NOT NULL,
    `label`       VARCHAR(48)  NOT NULL,
    `color`       VARCHAR(9)   NOT NULL DEFAULT '#5566c1',
    `sort`        INT          NOT NULL DEFAULT 0,
    `created_by`  VARCHAR(96)  DEFAULT NULL,
    `created_at`  INT          NOT NULL DEFAULT 0,
    PRIMARY KEY (`id`),
    KEY `idx_job` (`job`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS `tc_div_members` (
    `identifier`  VARCHAR(96)  NOT NULL,
    `job`         VARCHAR(50)  NOT NULL,
    `division_id` INT          NOT NULL,
    `name`        VARCHAR(96)  DEFAULT NULL,
    `assigned_by` VARCHAR(96)  DEFAULT NULL,
    `assigned_at` INT          NOT NULL DEFAULT 0,
    PRIMARY KEY (`identifier`, `job`, `division_id`),
    KEY `idx_division` (`division_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS `tc_div_jobs` (
    `job`          VARCHAR(50) NOT NULL,
    `manage_grade` INT         DEFAULT NULL,
    `chest_max`    INT         DEFAULT NULL,
    `chest_slots`  INT         DEFAULT NULL,
    `chest_weight` INT         DEFAULT NULL,
    PRIMARY KEY (`job`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS `tc_div_chests` (
    `id`          INT          NOT NULL AUTO_INCREMENT,
    `label`       VARCHAR(64)  NOT NULL,
    `chest_key`   VARCHAR(32)  NOT NULL,
    `x`           DOUBLE       NOT NULL,
    `y`           DOUBLE       NOT NULL,
    `z`           DOUBLE       NOT NULL,
    `h`           DOUBLE       NOT NULL DEFAULT 0,
    `radius`      FLOAT        NOT NULL DEFAULT 1.5,
    `slots`       INT          NOT NULL DEFAULT 50,
    `weight`      INT          NOT NULL DEFAULT 200,
    `prop`        VARCHAR(64)  DEFAULT NULL,
    `blip`        TINYINT      NOT NULL DEFAULT 0,
    `access`      LONGTEXT     DEFAULT NULL,
    `code`        VARCHAR(16)  DEFAULT NULL,
    `code_mode`   VARCHAR(8)   NOT NULL DEFAULT 'none',
    `enabled`     TINYINT      NOT NULL DEFAULT 1,
    `owner_job`   VARCHAR(50)  DEFAULT NULL, -- entreprise dont le patron gère le coffre
    `created_by`  VARCHAR(96)  DEFAULT NULL,
    `created_at`  INT          NOT NULL DEFAULT 0,
    `updated_at`  INT          NOT NULL DEFAULT 0,
    PRIMARY KEY (`id`),
    UNIQUE KEY `uniq_chest` (`chest_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS `tc_div_shops` (
    `id`          INT          NOT NULL AUTO_INCREMENT,
    `label`       VARCHAR(64)  NOT NULL,
    `x`           DOUBLE       NOT NULL,
    `y`           DOUBLE       NOT NULL,
    `z`           DOUBLE       NOT NULL,
    `h`           DOUBLE       NOT NULL DEFAULT 0,
    `radius`      FLOAT        NOT NULL DEFAULT 1.5,
    `prop`        VARCHAR(64)  DEFAULT NULL,
    `ped`         VARCHAR(64)  DEFAULT NULL,
    `blip`        TINYINT      NOT NULL DEFAULT 0,
    `access`      LONGTEXT     DEFAULT NULL,
    `code`        VARCHAR(16)  DEFAULT NULL,
    `code_mode`   VARCHAR(8)   NOT NULL DEFAULT 'none',
    `payment`     VARCHAR(8)   NOT NULL DEFAULT 'free',
    `enabled`     TINYINT      NOT NULL DEFAULT 1,
    `created_by`  VARCHAR(96)  DEFAULT NULL,
    `created_at`  INT          NOT NULL DEFAULT 0,
    `updated_at`  INT          NOT NULL DEFAULT 0,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS `tc_div_shop_entries` (
    `id`          INT          NOT NULL AUTO_INCREMENT,
    `shop_id`     INT          NOT NULL,
    `kind`        VARCHAR(8)   NOT NULL DEFAULT 'item',
    `item`        VARCHAR(64)  DEFAULT NULL,
    `label`       VARCHAR(64)  NOT NULL,
    `price`       INT          NOT NULL DEFAULT 0,
    `quantity`    INT          NOT NULL DEFAULT 1,
    `sex`         VARCHAR(1)   DEFAULT NULL,
    `skin`        LONGTEXT     DEFAULT NULL,
    `access`      LONGTEXT     DEFAULT NULL,
    `sort`        INT          NOT NULL DEFAULT 0,
    `enabled`     TINYINT      NOT NULL DEFAULT 1,
    PRIMARY KEY (`id`),
    KEY `idx_shop` (`shop_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS `tc_div_garages` (
    `id`           INT          NOT NULL AUTO_INCREMENT,
    `label`        VARCHAR(64)  NOT NULL,
    `x`            DOUBLE       NOT NULL,
    `y`            DOUBLE       NOT NULL,
    `z`            DOUBLE       NOT NULL,
    `h`            DOUBLE       NOT NULL DEFAULT 0,
    `radius`       FLOAT        NOT NULL DEFAULT 1.5,
    `prop`         VARCHAR(64)  DEFAULT NULL,
    `ped`          VARCHAR(64)  DEFAULT NULL,
    `blip`         TINYINT      NOT NULL DEFAULT 0,
    `access`       LONGTEXT     DEFAULT NULL,
    `code`         VARCHAR(16)  DEFAULT NULL,
    `code_mode`    VARCHAR(8)   NOT NULL DEFAULT 'none',
    `spawns`       LONGTEXT     DEFAULT NULL,
    `store`        LONGTEXT     DEFAULT NULL,
    `plate_prefix` VARCHAR(4)   DEFAULT NULL,
    `enabled`      TINYINT      NOT NULL DEFAULT 1,
    `created_by`   VARCHAR(96)  DEFAULT NULL,
    `created_at`   INT          NOT NULL DEFAULT 0,
    `updated_at`   INT          NOT NULL DEFAULT 0,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS `tc_div_garage_vehicles` (
    `id`          INT          NOT NULL AUTO_INCREMENT,
    `garage_id`   INT          NOT NULL,
    `model`       VARCHAR(64)  NOT NULL,
    `label`       VARCHAR(64)  NOT NULL,
    `props`       LONGTEXT     DEFAULT NULL,
    `divisions`   LONGTEXT     DEFAULT NULL,
    `shared`      TINYINT      NOT NULL DEFAULT 0, -- commun en plus de ses divisions
    `callsign`    TINYINT      NOT NULL DEFAULT 0, -- chiffres du numéro de toit (0 = aucun)
    `access`      LONGTEXT     DEFAULT NULL,
    `grades`      LONGTEXT     DEFAULT NULL, -- { [job] = { min = grade pour le voir, all = grade qui le voit sans division } }
    `sort`        INT          NOT NULL DEFAULT 0,
    `enabled`     TINYINT      NOT NULL DEFAULT 1,
    PRIMARY KEY (`id`),
    KEY `idx_garage` (`garage_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS `tc_div_logs` (
    `id`          INT          NOT NULL AUTO_INCREMENT,
    `kind`        VARCHAR(12)  NOT NULL,
    `ref_id`      INT          DEFAULT NULL,
    `ref_label`   VARCHAR(64)  DEFAULT NULL,
    `ident`       VARCHAR(96)  DEFAULT NULL,
    `name`        VARCHAR(96)  DEFAULT NULL,
    `action`      VARCHAR(32)  NOT NULL,
    `detail`      VARCHAR(255) DEFAULT NULL,
    `created_at`  INT          NOT NULL DEFAULT 0,
    PRIMARY KEY (`id`),
    KEY `idx_kind` (`kind`, `ref_id`),
    KEY `idx_created` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Identifiers

The identifier columns hold the character identifier according to your framework: Vision / ESX identifier, citizenid on QBCore / Qbox, Rockstar license in standalone.

Last updated : 7 November 2026© 2026 TC Script