QBCore Install
Step 1. Remove Old Clothing Resources
Delete qb-clothing
or illenium-appearance
from your resources folder
Delete any tattoo shop resources e.g. qb-tattooshop
from your resources folder
If you are migrating from illenium-appearance, you can skip these steps and jump to the migration section
Step 2. Install dependencies
Install the dependencies if they are not installed.
Step 3. Download lvs_clothing
Drag And Drop, put lvs_clothing
in resources
folder
Step 4. SQL
If you want to migrate skins don't delete the playerskins
table from your database.
How to migrate here.
Delete the playerskins
table from your database
Delete the player_outfits
table from your database
Run the database.sql file located in the resource folder in your database! Or execute the SQL:
CREATE TABLE IF NOT EXISTS `playerskins` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`citizenid` varchar(255) NOT NULL,
`model` varchar(255) NOT NULL,
`skin` text NOT NULL,
`active` tinyint(4) NOT NULL DEFAULT 1,
PRIMARY KEY (`id`),
KEY `citizenid` (`citizenid`),
KEY `active` (`active`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `player_outfits` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`citizenid` varchar(50) DEFAULT NULL,
`outfitname` varchar(50) NOT NULL DEFAULT '0',
`tags` varchar(50) DEFAULT NULL DEFAULT 'No Tags',
`model` varchar(50) DEFAULT NULL,
`props` varchar(1000) DEFAULT NULL,
`components` varchar(1500) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `citizenid_outfitname_model` (`citizenid`,`outfitname`,`model`),
KEY `citizenid` (`citizenid`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
Step 5. Config
Now configure and translate your resource.
Step 6. Script initiate
Start the script in server.cfg , ensure lvs_clothing.
Step 7. qb-multicharacter
Open qb-multicharacter/server/main.lua
find the callback qb-multicharacter:server:getSkin
(line 198) and replace with:
QBCore.Functions.CreateCallback("qb-multicharacter:server:getSkin", function(_, cb, cid)
local result = MySQL.query.await('SELECT * FROM playerskins WHERE citizenid = ? AND active = ?', {cid, 1})
if result[1] ~= nil then
cb(json.decode(result[1].skin))
else
cb(nil)
end
end)
Open qb-multicharacter/client/main.lua
find the nuicallback RegisterNUICallback('cDataPed', function(nData, cb)
(line 206) and replace with:
RegisterNUICallback('cDataPed', function(nData, cb)
local cData = nData.cData
SetEntityAsMissionEntity(charPed, true, true)
DeleteEntity(charPed)
if cData ~= nil then
if not cached_player_skins[cData.citizenid] then
local temp_model = promise.new()
local temp_data = promise.new()
QBCore.Functions.TriggerCallback('qb-multicharacter:server:getSkin', function(data)
local model = data.model or "mp_m_freemode_01"
temp_model:resolve(model)
temp_data:resolve(data)
end, cData.citizenid)
local resolved_model = Citizen.Await(temp_model)
local resolved_data = Citizen.Await(temp_data)
cached_player_skins[cData.citizenid] = {model = resolved_model, data = resolved_data}
end
local model = cached_player_skins[cData.citizenid].model
local data = cached_player_skins[cData.citizenid].data
if model ~= nil then
initializePedModel(model, data)
else
initializePedModel()
end
cb("ok")
else
initializePedModel()
cb("ok")
end
end)
Last updated