Page cover

Installation

Before you start, make sure you're logged into the CFX portal. This ensures you can download the asset and receive future updates.

Downloading Dependencies


Server cfg

# iZaap Studios - Garages
ensure oxmysql
ensure izaap_garage

SQL

Import the included SQL file into your database:

  • Creates: izaap_garages, izaap_jobvehicles, izaap_impounds

  • Adds optional columns to: player_vehicles (QB) / owned_vehicles (ESX)

  • Safe to re-run (won’t crash if columns already exist)

chevron-right.SQLhashtag

/* iZaap Garage — FULL SQL (ESX + QB + QBOX) | ALL-IN-ONE | SAFE RE-RUN */

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

DROP PROCEDURE IF EXISTS `izaap_add_column_if_missing`;
DELIMITER $$
CREATE PROCEDURE `izaap_add_column_if_missing`(
  IN p_table VARCHAR(64),
  IN p_column VARCHAR(64),
  IN p_definition TEXT
)
BEGIN
  IF EXISTS (
    SELECT 1
    FROM information_schema.TABLES
    WHERE TABLE_SCHEMA = DATABASE()
      AND TABLE_NAME = p_table
  ) THEN
    IF NOT EXISTS (
      SELECT 1
      FROM information_schema.COLUMNS
      WHERE TABLE_SCHEMA = DATABASE()
        AND TABLE_NAME = p_table
        AND COLUMN_NAME = p_column
    ) THEN
      SET @q = CONCAT('ALTER TABLE `', p_table, '` ADD COLUMN `', p_column, '` ', p_definition);
      PREPARE stmt FROM @q;
      EXECUTE stmt;
      DEALLOCATE PREPARE stmt;
    END IF;
  END IF;
END$$
DELIMITER ;

CREATE TABLE IF NOT EXISTS `izaap_garages` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `label` VARCHAR(64) NOT NULL,
  `type` VARCHAR(16) NOT NULL DEFAULT 'car',
  `radius` DOUBLE NOT NULL DEFAULT 5,
  `coords` LONGTEXT NULL,
  `ped_coords` LONGTEXT NULL,
  `min_z` DOUBLE NOT NULL DEFAULT 0,
  `max_z` DOUBLE NOT NULL DEFAULT 0,
  `blip` TINYINT(1) NOT NULL DEFAULT 0,
  `blip_sprite` INT(11) NOT NULL DEFAULT 0,
  `blip_color` INT(11) NOT NULL DEFAULT 0,
  `access_type` VARCHAR(16) NOT NULL DEFAULT 'public',
  `access_job` VARCHAR(50) NULL DEFAULT NULL,
  `access_job_grade` INT(11) NOT NULL DEFAULT 0,
  `access_private` LONGTEXT NULL,
  `garage_mode` VARCHAR(16) NOT NULL DEFAULT 'owned',
  PRIMARY KEY (`id`),
  KEY `idx_label` (`label`),
  KEY `idx_access_type` (`access_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CALL izaap_add_column_if_missing('izaap_garages','ped_model',    'VARCHAR(64) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('izaap_garages','ped_scenario', 'VARCHAR(64) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('izaap_garages','ped_x',        'DOUBLE NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('izaap_garages','ped_y',        'DOUBLE NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('izaap_garages','ped_z',        'DOUBLE NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('izaap_garages','ped_w',        'DOUBLE NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('izaap_garages','ped_heading',  'DOUBLE NULL DEFAULT NULL');

CREATE TABLE IF NOT EXISTS `izaap_jobvehicles` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `model` VARCHAR(64) NOT NULL,
  `job` VARCHAR(50) NOT NULL,
  `allowed_grades` LONGTEXT NULL,
  `vehicle_props` LONGTEXT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_job` (`job`),
  KEY `idx_model` (`model`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `izaap_impounds` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `label` VARCHAR(64) NOT NULL,
  `type` VARCHAR(16) NOT NULL DEFAULT 'car',
  `coords` LONGTEXT NULL,
  `spawn_coords` LONGTEXT NULL,
  `blip` TINYINT(1) NOT NULL DEFAULT 0,
  `blip_sprite` INT(11) NOT NULL DEFAULT 0,
  `blip_color` INT(11) NOT NULL DEFAULT 0,
  `allowed_jobs` LONGTEXT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_label` (`label`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CALL izaap_add_column_if_missing('player_vehicles','recover_due', 'TINYINT(1) NOT NULL DEFAULT 0');
CALL izaap_add_column_if_missing('player_vehicles','favorite',   'TINYINT(1) NOT NULL DEFAULT 0');
CALL izaap_add_column_if_missing('player_vehicles','custom_name','VARCHAR(32) NULL DEFAULT NULL');

CALL izaap_add_column_if_missing('owned_vehicles','recover_due', 'TINYINT(1) NOT NULL DEFAULT 0');
CALL izaap_add_column_if_missing('owned_vehicles','favorite',   'TINYINT(1) NOT NULL DEFAULT 0');
CALL izaap_add_column_if_missing('owned_vehicles','custom_name','VARCHAR(32) NULL DEFAULT NULL');

CALL izaap_add_column_if_missing('player_vehicles','impounded',           'TINYINT(1) NOT NULL DEFAULT 0');
CALL izaap_add_column_if_missing('player_vehicles','impound_id',          'INT(11) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('player_vehicles','impound_label',       'VARCHAR(64) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('player_vehicles','impound_reason',      'VARCHAR(255) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('player_vehicles','impounded_by',        'VARCHAR(64) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('player_vehicles','impounded_by_name',   'VARCHAR(64) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('player_vehicles','impounded_at',        'INT(11) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('player_vehicles','impound_fee',         'INT(11) NOT NULL DEFAULT 0');
CALL izaap_add_column_if_missing('player_vehicles','impound_fee_before',  'INT(11) NOT NULL DEFAULT 0');
CALL izaap_add_column_if_missing('player_vehicles','impound_fee_after',   'INT(11) NOT NULL DEFAULT 0');
CALL izaap_add_column_if_missing('player_vehicles','impound_release_at',  'INT(11) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('player_vehicles','impound_prev_garage', 'VARCHAR(64) NULL DEFAULT NULL');

CALL izaap_add_column_if_missing('owned_vehicles','impounded',           'TINYINT(1) NOT NULL DEFAULT 0');
CALL izaap_add_column_if_missing('owned_vehicles','impound_id',          'INT(11) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('owned_vehicles','impound_label',       'VARCHAR(64) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('owned_vehicles','impound_reason',      'VARCHAR(255) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('owned_vehicles','impounded_by',        'VARCHAR(64) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('owned_vehicles','impounded_by_name',   'VARCHAR(64) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('owned_vehicles','impounded_at',        'INT(11) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('owned_vehicles','impound_fee',         'INT(11) NOT NULL DEFAULT 0');
CALL izaap_add_column_if_missing('owned_vehicles','impound_fee_before',  'INT(11) NOT NULL DEFAULT 0');
CALL izaap_add_column_if_missing('owned_vehicles','impound_fee_after',   'INT(11) NOT NULL DEFAULT 0');
CALL izaap_add_column_if_missing('owned_vehicles','impound_release_at',  'INT(11) NULL DEFAULT NULL');
CALL izaap_add_column_if_missing('owned_vehicles','impound_prev_garage', 'VARCHAR(64) NULL DEFAULT NULL');

-- DROP PROCEDURE IF EXISTS `izaap_add_column_if_missing`;

SET FOREIGN_KEY_CHECKS = 1;

Permissions

Example: Grant permission to an admin group

Example: Grant permission to a specific license


Last updated