OrigenNetwork
Docs

Installation · origen_clothing

1. SQL

Run origen_clothing.sql in your database. This creates all 6 tables:

sql
CREATE TABLE `origen_clothing_items` (
  `id`                 INT(11) NOT NULL AUTO_INCREMENT,
  `model`              VARCHAR(50) NOT NULL,
  `game_build`         VARCHAR(50) NOT NULL,
  `hash`               VARCHAR(50) NOT NULL,
  `category_name`      VARCHAR(50) NOT NULL,
  `collection`         VARCHAR(50) NOT NULL,
  `component_id`       INT(11) NOT NULL,
  `global_drawable_id` INT(11) NOT NULL,
  `texture_id`         INT(11) NOT NULL,
  `image_url`          VARCHAR(255) DEFAULT NULL,
  `ydd_name`           VARCHAR(255) NOT NULL,
  `ytd_name`           VARCHAR(255) NOT NULL,
  `addon`              INT(11) DEFAULT 0,
  `is_valid`           INT(11) DEFAULT 0,
  `only_stock`         INT(11) NULL DEFAULT NULL,
  `created_at`         TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `Item` (`model`, `hash`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
 
CREATE TABLE `origen_clothing_model_dict` (
  `hash`     INT(11) NOT NULL,
  `ped_name` VARCHAR(50) NOT NULL DEFAULT '',
  PRIMARY KEY (`hash`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
 
CREATE TABLE `origen_clothing_outfits` (
  `id`         INT(11) NOT NULL AUTO_INCREMENT,
  `identifier` VARCHAR(50) NOT NULL,
  `model`      VARCHAR(50) NOT NULL,
  `label`      VARCHAR(50) NOT NULL,
  `drawables`  LONGTEXT NOT NULL,
  `props`      LONGTEXT NOT NULL,
  `jobOutfit`  BIT(1) NOT NULL DEFAULT b'0',
  PRIMARY KEY (`id`) USING BTREE,
  CONSTRAINT `props` CHECK (json_valid(`props`))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
 
CREATE TABLE `origen_clothing_skins` (
  `id`        INT(11) NOT NULL AUTO_INCREMENT,
  `citizenid` VARCHAR(255) NOT NULL,
  `model`     VARCHAR(255) NOT NULL,
  `skin`      TEXT NOT NULL,
  `active`    TINYINT(2) NOT NULL DEFAULT 1,
  `jobOutfit` INT(11) DEFAULT NULL,
  `hairslots` LONGTEXT DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `citizenid_2` (`citizenid`, `model`),
  KEY `citizenid` (`citizenid`),
  KEY `active` (`active`),
  KEY `FK_JOBOUTFIT` (`jobOutfit`),
  CONSTRAINT `FK_JOBOUTFIT` FOREIGN KEY (`jobOutfit`)
    REFERENCES `origen_clothing_outfits` (`id`)
    ON DELETE SET NULL ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
 
CREATE TABLE `origen_clothing_stores` (
  `id`       INT(11) NOT NULL AUTO_INCREMENT,
  `type`     VARCHAR(50) NOT NULL DEFAULT 'clothes',
  `label`    VARCHAR(100) NOT NULL,
  `coords`   TEXT DEFAULT NULL,
  `stock`    TINYINT(1) NOT NULL DEFAULT 1,
  `polyzone` LONGTEXT DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
 
CREATE TABLE `origen_clothing_shop_items` (
  `id`       INT(11) NOT NULL AUTO_INCREMENT,
  `store_id` INT(11) NOT NULL,
  `item_id`  INT(11) NOT NULL,
  `stock`    INT(11) NOT NULL DEFAULT 0,
  `price`    INT(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  KEY `idx_store` (`store_id`),
  KEY `idx_item` (`item_id`),
  CONSTRAINT `fk_shopitems_store` FOREIGN KEY (`store_id`)
    REFERENCES `origen_clothing_stores` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `fk_shopitems_item` FOREIGN KEY (`item_id`)
    REFERENCES `origen_clothing_items` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
 
CREATE TABLE `origen_clothing_items_permissions` (
  `id`          INT(11) NOT NULL AUTO_INCREMENT,
  `item_id`     INT(11) NOT NULL,
  `identifiers` LONGTEXT DEFAULT NULL CHECK (json_valid(`identifiers`)),
  `groups`      LONGTEXT DEFAULT NULL CHECK (json_valid(`groups`)),
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_item` (`item_id`),
  CONSTRAINT `fk_permissions_item` FOREIGN KEY (`item_id`)
    REFERENCES `origen_clothing_items` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
 
CREATE TABLE `origen_clothing_owned_items` (
  `id`         INT(11) NOT NULL AUTO_INCREMENT,
  `identifier` VARCHAR(50) NOT NULL,
  `item_id`    INT(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_owned_item` (`identifier`, `item_id`),
  CONSTRAINT `fk_owned_items_item` FOREIGN KEY (`item_id`)
    REFERENCES `origen_clothing_items` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

2. server.cfg

text
ensure origen_clothing
ensure origen_clothing_screenshot

origen_clothing_screenshot must start after origen_clothing since it writes to the origen_clothing_items table.