Installation
Five minutes. There is no database to prepare: everything this resource remembers lives in two JSON files inside its own folder.
Before you start
Section titled “Before you start”| You need | Why |
|---|---|
| ESX, QBCore or QBox | Admin checks, jobs, notifications and usable items come from the framework |
| A recent game build | The chameleon paints belong to the newer vehicle colour set |
| An inventory that honours framework usable items | Only if you want the paint items |
1. Put the folder in place
Section titled “1. Put the folder in place”Download mic_chameleon from your Cfx.re granted assets and drop the folder into your resources, for example resources/[mic]/mic_chameleon.
Keep the data/ and stream/ folders where they are. data/ holds the colour definitions (carcols_gen9.meta, carmodcols_gen9.meta, carmodcols.ymt) and stream/ holds vehicle_paint_ramps.ytd, the textures that make paints 223 to 242 shift colour.
2. Start it after your framework
Section titled “2. Start it after your framework”In server.cfg, add ensure mic_chameleon on a line below es_extended, qb-core or qbx_core (and below your inventory, if you use the items).
It worked when the console prints three [Camaleon] lines: the framework it found (ESX or QBCore — QBox shows as QBCore), that permissions were loaded, and Registered 82 chameleon paint items + reset item. The first two are in the language of Config.Locale, which ships as Spanish — ESX Framework detectado automáticamente. is the same good news.
If the first line says no compatible framework was detected, the resource started before your framework. Move the line down.
3. The database — nothing to do
Section titled “3. The database — nothing to do”The resource creates permissions.json and vehicle_original_colors.json itself if they are missing. The only SQL file in the folder is for ESX item definitions, below, and you only need it on ESX without ox_inventory.
4. The items (optional)
Section titled “4. The items (optional)”Skip this step if you only want the menu, or set Config.UseItems = false.
| Item | What it does |
|---|---|
chameleon_paint_161 … chameleon_paint_242 | One per colour, 82 in total. Used while sitting in a car, it is consumed and paints the car that colour |
chameleon_reset | Consumed, and puts the car back to the colour it had before it was first painted |
The definitions are ready in the items/ folder. Copy the one that matches your setup:
| Your inventory | File | Where it goes |
|---|---|---|
| ox_inventory | items/ox.lua | Into ox_inventory/data/items.lua |
| qb-inventory (QBCore) | items/qb.lua | Into qb-core/shared/items.lua |
| ESX default inventory | items/sql.sql | Import it once into your database; it adds the items to the items table |
Each file is commented out as a whole so it can sit in the resource harmlessly — copy the entries, not the comment markers.
It worked when you give yourself chameleon_paint_200, sit in a car, use it, and the car changes colour while the item disappears.
5. Framework and bridge
Section titled “5. Framework and bridge”Nothing to set. Config.Framework = "auto" finds es_extended or qb-core. QBox is found the same way, through its QBCore compatibility — qbx_core provides qb-core. If you want to pin it, set it to "esx" or "qbcore" ("qbcore" on QBox); the resource then refuses to guess and tells you in the console when that framework is not running.
6. First test
Section titled “6. First test”- Sit in any car.
- Type
/chameleon. - With the shipped config, the menu only opens for someone on the permission list or with the
mechanicorpolicejob. As an admin, type/chameleongivefollowed by your own server ID first.
It worked when a grid of swatches appears, clicking one paints the car, and Reset puts the original colour back. Esc or the X closes the menu.
Before you open your city
Section titled “Before you open your city”- Empty the permission list.
permissions.jsonships with example Steam IDs. Delete the file; the resource creates a fresh, empty one on its next start. - Clear the colour memory.
vehicle_original_colors.jsonalso ships with example entries. Delete it the same way. - Pick the language. The shipped config has
Config.Locale = "es". Set"en"or the one you want. - Move or remove the two paint-shop markers in
Config.Locations— they sit at example coordinates. - Decide who paints. Read the permission table in Customization.