Skip to content

Installation

Five minutes. There is no database to prepare: everything this resource remembers lives in two JSON files inside its own folder.


You needWhy
ESX, QBCore or QBoxAdmin checks, jobs, notifications and usable items come from the framework
A recent game buildThe chameleon paints belong to the newer vehicle colour set
An inventory that honours framework usable itemsOnly if you want the paint items

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.


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.


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.


Skip this step if you only want the menu, or set Config.UseItems = false.

ItemWhat it does
chameleon_paint_161 … chameleon_paint_242One per colour, 82 in total. Used while sitting in a car, it is consumed and paints the car that colour
chameleon_resetConsumed, 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 inventoryFileWhere it goes
ox_inventoryitems/ox.luaInto ox_inventory/data/items.lua
qb-inventory (QBCore)items/qb.luaInto qb-core/shared/items.lua
ESX default inventoryitems/sql.sqlImport 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.


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.


  1. Sit in any car.
  2. Type /chameleon.
  3. With the shipped config, the menu only opens for someone on the permission list or with the mechanic or police job. As an admin, type /chameleongive followed 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.


  • Empty the permission list. permissions.json ships 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.json also 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.