Installation
Script Download
Before starting, you must log in to the CFX portal to download the asset. You will be able to download it as many times as you want on the official CFX page. Just as you download it the first time, you will also download it multiple times in the future to get updates.
Logging in to the CFX Portal
First, log in to the official CFX portal by clicking here.
Remember, if you encounter any issues or errors when starting the asset, you can check here to see if the problem is related.
Understanding CFX Auth
Downloading Dependencies
The dependencies for this asset are mandatory, so please follow the dependency guide completely and use all required files.
When downloading a dependency, ensure the file is properly unzipped and does not include "-main" at the end of its name. If it does, please remove it.

Remove Old clothing resources
Compatibility With esx_skin and skinchanger
This step is only for esx, if you use qb-core you don't need this, you can skip it, in case of esx it is necessary.
To avoid conflicts with older appearance systems like esx_skin
or skinchanger
, you need to make sure these are either removed or properly redirected to work with qs-appearance
.
To ensure smooth operation, do one of the following:
Declare Provided Services
Open the file qs-appearance/fxmanifest.lua
and add the following line at the end:
provides { "esx_skin", "skinchanger" }
This tells the server that qs-appearance
will act as a replacement for those older systems, resolving dependency issues without having to modify every resource manually.
Update artifacts and gamebuild
Updating to the latest artifacts and gamebuild is essential to avoid common server issues. Here's how to do it properly:
Update Artifacts
Completely replace your current artifacts with the latest version. Download the appropriate artifacts for your operating system from the official links:
Windows: Windows Artifacts.
Linux: Linux Artifacts.
You can see the complete guide to update your server here:
How to update my server
Server.cfg Positioning
To ensure everything works correctly, the script must be started right after your framework (e.g., ensure [appearance]
), and screenshot-basic
must be started before both. If you see error spam in the console, it's likely due to a faulty installation of screenshot-basic
—simply delete the cache
folder and restart the server to fix it. Below is an example of the correct order in server.cfg
.
Here we attach a small example of how the start order should look:
ensure es_extended
ensure ox_lib
ensure screenshot-basic
ensure [appearance]
stop greenscreen-map # IMPORTANT, READ THE NEXT STEP

Greenscreen Map Activation (greenscreen-map)
IMPORTANT
Do not keep greenscreen-map
running if you're not using it for screenshots. It may consume unnecessary resources and serves no purpose outside of the /save-images
process. It should only be active during the image capturing process.
The **greenscreen-map**
resource is intended exclusively for use when capturing images of new clothing sets using the /save-images
command. If you have already made all the images and are not going to use the command anymore, stop it, otherwise there will be visual problems in the peds.
How to use it?
You must manually start the resource before using the /save-images command, with:
start greenscreen-map
Once you’re done capturing the images, you must manually stop or remove the resource with:
stop greenscreen-map
Database Installation
For this step, we highly recommend using HeidiSQL to avoid issues, as it provides an updated version of MariaDB. We have a guide that explains step-by-step how to use HeidiSQL. If you choose to use phpMyAdmin, we will not be responsible for any errors that may occur in your database.
How to install HeidiSQLSelect the framework you are using and then execute the SQL in your HeidiSQL. If you encounter errors, ensure you are using the most current version of MariaDB. You can refer to our guide above or search online.

Support With Other Multichar Systems
This script fully overrides and handles all core events from illenium-appearance
, making it automatically compatible with any multicharacter system that uses illenium-appearance
as its configuration—such as qs-multicharacter
, qb-multicharacter
, or similar—without requiring manual integration. It detects and adapts seamlessly to these systems out of the box.
Additionally, you can easily retrieve a player’s appearance using a simple function like this:
function Appearance:GetAppearanceFromPed(ped)
if not DoesEntityExist(ped) then
Error('Ped does not exist', ped)
return nil
end
local appearance = exports['qs-appearance']:getPedAppearance(ped)
if not appearance then
Error('Failed to get appearance from ped', ped)
return nil
end
Debug('Got appearance from ped', appearance)
return appearance
end
This makes it straightforward to extract and reuse a ped’s appearance in any part of your system.
Skin Migration Support
If you're using a script with FiveM escrow encryption, you’ll need to contact its original developer to assist with the migration process, as we cannot access or interpret protected formats.
If your server uses illenium-appearance
, no migration is needed — qs-appearance
is fully compatible and will take over automatically.
We understand that many servers previously used other clothing systems, so we’ve built official migration support for all open-code scripts where formats can be analyzed and converted reliably.
If you're using qb-clothing
, esx_skin
, or fivem-appearance
, you can migrate all existing player skins using the guide below:
Last updated