Vehicle tool (badges off and on, mods, police lights, window tint)
Updated Oct 15, 2026 Open the tool
The Vehicle tool at /app/vehicle takes a FiveM or GTA V vehicle model (a .yft) and does four jobs to it, any of them, in any order: it finds the badges and emblems on the body and writes the vehicle back without them (or with a car maker's own badge in their place), it bolts parts from the game's own mod kits onto it (spoilers, bumpers, hoods, skirts, exhausts, roofs, cages), it puts police lights on it (a roof lightbar, a rear window light, a visor light, grille lights, a push bar, side lights, cut from real police cars) with the meta files that make them flash, and lets the person pick how they flash (pattern, speed, brightness, the head and tail lights, steps by hand) while they flash on the car, and it tints the glass (window film, smoked head and tail lights). It is in beta (marked next to the tool's name), free on every plan, and lives behind the Tools item on the left rail under Design. Nothing is spent: no credits, no daily limit.
It is not an editor. Each job is a tab with its one button: Badges, Mods, Lights, Tint under the file card (since 2026-10-13, the owner's ask: before, a dropped vehicle asked which jobs and the panel walked through them as steps, Change reopening the question). Switch tabs freely; a write stays on its tab, and a tab whose changes were written carries a dot. Download under any tab's button (once something is written) is the way out.
Under Tools at the foot of the rail (it opens when the pointer rests on it, or on a click) the tool is listed as Vehicle (Badges off, mods and lightbar on) with its jobs under it: Remove badges, Add mods, Add lights (called Add lightbar before 2026-09-29) and Tint windows (since 2026-10-13). Picking a job opens the tool on that tab for the next vehicle dropped; picking Vehicle itself opens it on the tab the last vehicle was left on (kept on this device). The rail card and the Tools menu's side column say what the tool does: badges or any part off, parts from the game placed with handles, police lights with their meta files, then the livery in the UV map tool.
How it works
- Drop a vehicle YFT on the stage, or choose it with the button. The left column has the same way in before a vehicle is open (a dashed box where the file will sit) and, under it, What to do with the three jobs: picking one first opens the vehicle straight on that job, as picking it under Tools does (since 2026-09-28). Only a binary
.yftopens here; a CodeWalker.yft.xmldoes not. The file is read on the server (signing in is required), so the card showsReading the file,Uploading,Finding parts,Downloading,Opening the modelwith a clock, and Cancel. A vehicle read once is kept on this device and opens again without the wait (Ready · from this device). - The tabs, and the car's YTD. The tab row (
Badges,Mods,Lights,Tint) sits under the file card from the start. A tab the vehicle rules out is greyed and says why on hover: Lights on a vehicle that has siren lights of its own readsLights already on this vehicle(a press does nothing; a way to remove or replace a car's own lights is not built yet), orNot for this vehiclewhen the lights catalogue could not be fetched; Mods readsNot available right nowwhen the catalogue cannot be fetched, orNeeds the updated conversion serverwhen the scan came from a winapi older than the tool. Once the car is read, Textures for sultan asks for its YTDs (since 2026-10-13):sultan.ytdand, optionally,sultan+hi.ytd(the sharper copy), each a square to press or drop on, a folder filling both by name; Use reads them. Closing it skips;+ Add sultan.ytdunder the file card asks again, and YTDs dropped with the YFT, or onto an open vehicle, are taken without asking. With them the car shows in its own textures (see The car's own textures), and the Tint tab can smoke its lights. - Badges. The car appears in 3D (drag to orbit, scroll to zoom). The panel lists the Badges the tool found, each ticked, named by where it sits (
Front badge,Rear badge,Side badge · left,Body badge · right,Roof badge) with the texture it reads, its size in centimetres, how many pieces it is made of when it is lettering, and its triangle count. Ticked parts glow in the brand colour on the car. Untick anything that should stay; All / None at the top of the list tick or untick every badge at once. The crosshair on a row flies the camera to that part. Parts the tool did not call a badge are under More parts (small outside pieces such as trims, vents, sensors, rivets), unticked. Any other part of the body can be clicked straight on the car: it is added to the list under Picked on the car, and a second click takes it off again. Clicking a part that has a mirrored twin on the other side ticks both. Glass, lights, tyres, plates, the dashboard and the interior cannot be removed; a click on them saysGlass, lights, tyres and plates stay. The button readsRemove 6 parts, with the parts and triangles under it. The server writes the vehicle without those parts, in every LOD (the badge does not come back at a distance), and the written vehicle takes the stage with anEditedtag, so what is shown is what is downloaded. A banner saysRemoved · 6 parts · 60 triangles, and the tab stays (since 2026-10-13; before, the panel moved on to the next step, so a maker's badge could not then be put where one came off). Download under the button goes to the way out. Replace (since 2026-10-13, the owner's ask): each badge row has a swap button beside its crosshair (Replace with a badge). It opens Replace Rear badge · left, the makers' logos with a search; a press on one ticks that row for removal and puts the logo where the badge is, sized and facing like it, the camera flying to it, and closes. The row's button then shows the logo (Becomes Karinon hover); a second pick swaps it. One press ofRemove 9 parts · add 1 badgedoes both. Brand badges (since 2026-10-13), under the lists: the makers' own emblems from the game (46 makes, from Albany to Zirconium, each the logo a car of that make wears), as a grid of their logos with a Search makes box over it (No make matcheswhen nothing does). A press on a logo puts that badge on the car: in place of the first badge ticked for removal that no new badge has taken yet (front ones first, the camera flying to it), sized and facing like it; on lettering (a model name across the boot) it keeps its own size, centred there. A badge already taken off this vehicle by an earlier press keeps its spot: a logo pressed after the removal lands where that badge was (In place of Rear badge · right), front ones first. With no spot free it lands at the front middle. It shows on the car in its own colours, with the handles on it (Move, Turn, Size, as for mods); its row (Karin,In place of Rear badge · rightorFront middle) shows where it is when picked, and pressing the row again puts the handles away so a click on the car picks parts again. The × takes it off. The button then does both jobs in one press:Remove 9 parts · add 1 badge(Add 1 badgewith nothing ticked), the parts come off first, then the badges go on (written like a baked mod, on the chassis, in every detail level and the_hi, the logo's texture inside the YFT), and the download step says1 badge added. The badges come from the game files on our side (winapiscripts/vehicle_badges_build.py); a make whose cars have no clean emblem at the front or back (Gallivanter, Brute, HVY, MTL, JoBuilt and the boat, plane and bike makers) is not offered. - Mods. See Adding mods below.
- Lights. See Adding lights below.
- Tint. See Tint: window film and smoked lights below.
- Download. The way out, from Download under any tab's button: it lists what will be written:
dominator.yftwith what it now carries (Removed · 6 parts · 60 triangles,2 mods added · 4,624 triangles,Lights added · 12 siren bones,Tint written) and, with lights, the meta files. Download saves the YFT under the same name as the original. With lights or a mod kit the button is Download resource (since 2026-10-02): one zip,<name>.zip, holding a ready FiveM resource folder:stream/with the vehicle and its_hi,data/<name>_carcols.metaanddata/<name>_carvariations.meta(anddata/<name>_vehicles.metawhen one was given),fxmanifest.lualoading them as data files, and aREADME.txtsaying where it goes (with the vehicles.meta line to paste when no vehicles.meta was given). Drop the folder into the server'sresourcesandensure <name>. A kept mod kit is folded in: its parts go into the samestream/, its carcols and carvariations become the resource's, and itsclient/labels.luais loaded too. The arrow beside the button (Download as) still has every file on its own: Separate files saves them one after another as before (see below), and each file has its own row. Without lights or a kit the button stays Download (the YFT) and its menu offers the FiveM resource too. Every download also keeps the vehicle in your library (since 2026-10-02): the car is one project, and each download, Download resource or Make x_hi.yft adds the vehicle as it now is (with its_hi) as the next version, with what you changed since the last one (9 badges removed,Roof lightbar added,Close-up file made). The cloud button beside the download does the same without downloading. The file you opened is never written over: it stays in the project as its source. Downloading the same vehicle twice adds nothing. Once kept, the top bar sayssultan · v1 in libraryand the cloud button opens the project, where every version can be looked at, downloaded or opened in the Vehicle tool again. Add livery sends the vehicle on to the UV map tool; Start over goes back to the vehicle as it was dropped (its YTDs stay). No tab is selected at the download; clicking a tab, or a part on the car (which comes back ticked), goes back to the work.
The written file is a normal vehicle YFT: put it in the resource in place of the original. After a removal or added parts nothing else in the resource changes (textures, meta files, the collision are untouched), so the vehicle's own .ytd and its vehicles.meta / carvariations.meta stay as they are. A mod kit is the other way round: the vehicle is not touched and the kit's zip carries the new files (see Adding mods).
Placing things: the handles
The mods and the lights are placed the same way, with the handles the Weapons and Props tools use. The thing to add is on the car as a ghost of its real mesh, and the toolbar at the top of the stage offers Move (G), Turn (R) and Size (S); Escape puts the handles away. Move is three arrows along the car's own axes (across, forward, up), drag one to slide it; Turn is three rings, drag one to turn it in place (since 2026-10-13 both follow the pointer at any zoom and angle: the arrow stays under the pointer, a ring turns the way the pointer goes round it, and a ring seen edge on turns as its near side is pulled along it; before, the owner found a drag slipping and a turn going the opposite way, see Handles on the stage in the workspace doc); Size is a box drawn in the thing's own frame (a turned part gets a turned box) with a cube on each corner and a ball in the middle of each face: drag a corner to grow it evenly, drag a face out to stretch it along that one axis only; the handle stays under the pointer and the opposite corner or face holds still (since 2026-09-29; the part's anchor moves to keep it there), and the readout says how big it is (the longest side for a corner, that side for a face). A face seen end-on has no ball until the view turns. Under the picked row the panel says where it is, in one line of facts (Forward 120 cm · Height 131 cm · Side 0 cm · Turn 0° · Size 100%); it has no buttons that move it (since 2026-09-29: the handles place things, the panel only reads them out). A Stretch line appears once a face was pulled (Stretch 130% · 100% · 100%) with a button that evens it out again; Reset puts it all back where it started. What is written takes the stretch too: the server sizes the part per axis, so a spoiler pulled 30 % wider is 30 % wider in the file. What is shown is exactly what gets written: same mesh, same place, same turn, same size. With several parts on the car, click a part's row to put the handles on it, or click the part itself on the stage.
The car's own textures (since 2026-10-13)
With the car's YTDs given (the question on open, + Add sultan.ytd under the file card, or dropped), the server reads the textures the car's shaders name out of them (and out of the YFT itself first, as the game does), and the stage dresses each part in its own: the badges, the lights, the interior, the dials. The line under the file card names the files and how many textures came back (sultan+hi.ytd · sultan.ytd · 3 textures); its × lets them go. The paint keeps the body's grey (its colour is the game's, chosen in game), and the game's shared sheets (vehicle_generic_*, in vehshare) are never in a car's YTD, so parts that read only those stay grey too. A vanilla car's own YTD is small (the Sultan's names its lights, badges and seats); an add-on car usually carries far more. Nothing is written and nothing is charged. A pick or a hover still lights a part in the brand colour over its texture.
Tint: window film and smoked lights (since 2026-10-13)
The Tint tab writes window film and smoked lights into the vehicle, as a tint shop would; the car on the stage shows them as they are set, before anything is written.
- Window film: six shades as the game names its own, each a pane over a bright street showing how much it takes out: None, Light smoke, Dark smoke, Limo, Pure black, Green. The film goes on every window, the windscreen too (
Every window · the windscreen too): a vehicle's windows share one glass shader and one piece of geometry, so one window alone would mean cutting it out of the body (not built). Headlight covers are glass too but belong to the lights, and the inner glass seen from inside the car is left clear. - Smoked lights: Head lights and Tail lights, a slider each from 0 to 90 %. The smoke darkens the lights' own texture where each light maps onto it (the front half of the lit parts for the head lights, the back half for the tail lights), so a smoked light still lights, dimmer, as on a real car. That texture is in the car's YTD: without it the tab says
Smoke is cut from the lights' texture in sultan.ytdwith a YTD button, and the caption under the button readsNeeds sultan.ytd.
Apply tint writes what changed since the last write (the caption says what is set: Dark smoke · Tail lights 50%, or No changes); Reset goes back to what the car carries. The written car carries the film as a small texture of its own (zoov_tint_glass) and the smoked lights as a darker copy of their texture (<name>_zsmoke), both inside the YFT, so nothing else in the resource changes and the YTD stays as it is. Applying again starts from the YTD's texture, never from the smoked copy; None and both sliders at 0 take them out again. The _hi gets the same. Writing the tint counts as editing the vehicle (one vehicle a day on Free, the same car again free). Not yet checked in game by the owner.
Adding mods
The second job, for a body kit without opening a modelling tool. The parts are the game's own: every kit a vehicle can get at Los Santos Customs is a set of extra meshes shipped with the game, and the tool keeps a catalogue of the exterior ones. The catalogue holds the Karin Sultan (14 parts) and the Karin Sultan Classic (78, every option) and, since 2026-09-28, up to three options per slot from the Sultan RS Classic, Futo GTX, ZR350, Calico GTF, Squaddie, Yosemite Rancher, Patriot Mil-Spec and Gauntlet Interceptor: spoilers and wings, front and rear bumpers, hoods, skirts, exhausts, roofs and roof accessories, headlight housings, roll cages and frames, grilles, trunks, window spoilers. The step groups them twice (since 2026-09-28: 390 parts were too many for one list). Seven families open one at a time, each with its count: Aero (spoilers, wings, skirts, window spoilers), Lights (headlight housings, fog lights, pods), Exhaust & engine, Bumpers & grilles (bull bars too), Hoods, roofs & trunks (scoops, racks, tailgates, truck beds), Cages, bars & steps, Body & trim (fenders, doors, mirrors, plate holders). Inside a family the parts sit under the slot as the game's own mod shop names it (Spoilers 31, Window Spoilers 13, Roof Accessories 12, ...) as a grid of pictures (each drawn from the side of the car it sits on) with the part's shop name (GT Wing, Carbon Hood, Custom Splitter & Intercooler) and its vehicle under it; the full facts (slot, make, triangles) are the tile's tooltip. A Search parts box narrows every family to the parts whose name, vehicle, make or slot has the words and opens the families it leaves something in (12 of 31 on the row); the All vehicles list narrows to one vehicle's kit. A press on a tile puts the part on the car, on the bone of the same name when this vehicle has it (a spoiler on boot, a hood on bonnet, a bumper on bumper_f), and the handles on it. A part the game shows with another comes along: the Sultan's splitter brings its intercooler. The line under the placed part says where it is; several parts can be placed before writing; the × on a row takes a part off again.
A switch at the top of the step says how the parts go on: On the body or As a kit.
- On the body (the default) bakes them in. The button reads Add 2 mods with the parts and triangles under it. The server writes the parts into the vehicle model, bound to those bones in every detail level, with the textures they need carried inside the YFT, and the written vehicle takes the stage;
2 mods addedin the banner, and the download step counts them. Baked parts are always on the car. - As a kit makes them options at the mod shop instead: each placed part becomes a choice in its slot (two spoilers placed are options 1 and 2 of the spoiler slot; the rows say
Spoilers · option 2), and the game hides the stock bumper or hood while a replacement is on, as it does for its own mods. The Kit id field under the switch is the kit's number incarcols.meta(1 to 65535, one table for every vehicle on a server, so two kits with one number clash; the default is drawn from the model name and stays the same for the same vehicle). Nothing is written at this step: the button Keep 2 parts as a kit marks the tab done (its dot), and the placements stay live (a part can still be moved or removed). The download lists<model>_modkit.zipand Download everything has the server write it: a FiveM resource folder with one.yftper part understream/,data/carcols.metaholding the kit (the parts, plus the default engine, brakes, gearbox, armour, suspension and horn options so nothing is lost),data/carvariations.metapointing the vehicle at it,client/labels.luawith the parts' names for the mod shop,fxmanifest.luaand aREADME.txtthat says where each file goes. When the meta files dialog was given the vehicle's owncarcols.metaandcarvariations.meta, the kit goes into them (the parts are added to the kit the file already has for this model, or a kit is added;carvariations.metais pointed at it), and the zip's copies replace the resource's. With a lightbar as well, the onecarcols.metain the zip carries both the siren setting and the kit.
Things to know:
- A part fits its own vehicle. On another car it lands on the right bone but may sit wrong by a few centimetres, or be the wrong width; that is what the handles are for. A hood from another car will not match the opening; spoilers, bumper lips, roof scoops, cages and exhaust tips travel best.
- A part bound to a bone that can break off (a bumper) falls off with that bumper in game; a part on the chassis stays.
- The part keeps the game's shaders: a painted part takes the car's colour in game, carbon stays carbon.
- On the body, the original bumper, hood or spoiler is not removed for you (the game hides the stock part when its mod is on; a baked mod is a permanent addition). Remove badges is the step for taking a stock part off: click it on the car. As a kit, the game does the hiding: a replacement front bumper turns the stock
bumper_foff while it is fitted, as its own kits do, for the standard panels (bumpers, hood, trunk lid, fenders, exhaust, doors) this vehicle has. - Parts from the game carry no collision (each of the catalogue's fragments was checked: the game gives its mods none), so a bolted-on spoiler rides the body's collision in both ways of adding it.
- If the mods step says the conversion server is behind this tool, the server has not been updated to the version the parts need: nothing can be added until it is.
What counts as a badge
The tool does not know brands; it reads the model. Every connected piece of the body (an "island") is measured and scored: the shader it uses (vehicle_badges and vehicle_decal are made for badges and decals), the name of its texture (badge, logo, emblem, letter, decal), its size (a badge is 2 to 45 cm across and thin), whether it sits on the outside of the painted body and faces outward, and where it is (roof and underside pieces are rarely badges). Pieces that sit together, such as the letters of a model name, become one row. The result is a good default on the vehicles tried (a converted M8, an R* Dominator, a Scout, a police Charger), never a promise: always look at what is ticked before removing.
Things that are on purpose:
- Interior logos (steering wheel, dashboard) are found but never ticked by default, and sit under More parts or need a click.
- Brake caliper logos are treated as badges: they are logos on the outside of the body.
- Light lettering and trim pieces score lower than badges; they are under More parts.
- A part made of the paint surface itself (a badge modelled as a bump in the body, not a separate piece) cannot be selected: it is part of the panel, not an island. Those need a modelling tool.
Limits
- One vehicle a day on Free, Lite, boosters and referrers (2026-09-27,
DAY_LIMITS.vehicle). Badges, mods and a lightbar on the same car are one vehicle: the count is keyed by the hash of the file the car was opened as, and the written car, opened again for the next step, is still that car. A second car that day makes the footer's button "Unlimited on any plan" (the plans, Standard picked out) over "1 vehicle a day on Free · back at 02:00" (midnight UTC in the person's own time); since 2026-10-06 that line adds "used 4 of the last 30 days" from the second day in the last 30 the person has written a vehicle (allowance.daysNote('vehicle'), fromGET /api/v2/allowance'sdays). Standard and up have no limit. The count is the workspace's allowance ledger (ws_allowance_uses, kindvehicle), taken by the page before it calls the box and by the box again (day_key,api/core/daykeys.py) so a call that skipped the page is counted too; a write the box could not finish gives the use back. - One vehicle at a time; YFT only; 100 MB at most. A vehicle the server cannot read (a malformed geometry, a protected file) says so on the stage with Retry and Choose another.
- Parts are removed from the visual model only. Collision and the vehicle's physics are untouched, which is right for badges; the tool is not a way to remove doors or bumpers. Added parts have no collision of their own either, as the game's own mod parts have none.
- The wheel is shown at all four corners for the picture but cannot be edited.
- The
_hi.yfttwin of a vehicle (the high-detail file some vehicles ship with) is a separate file: open and edit it too when the resource has one. - The parts catalogue is ten vehicles (two of them with every option, the rest three per slot); more come one vehicle at a time from the game's files.
Common questions
I only want lights. Why are badges mentioned?
Open it from Add lights under Tools: the vehicle opens on the Lights tab. A vehicle with siren lights of its own opens on Badges with Lights greyed (Lights already on this vehicle).
The badge is not in the list. Click it on the car. Anything on the body can be picked that way; the list only shows what the tool was confident about. If a click selects a much bigger piece than the badge, the badge is part of the body panel's mesh rather than its own piece, and the tool cannot cut it out.
The whole model name went at once.
Letters that sit together are one row (Rear badge · 11 pieces). Untick the row to keep the whole word; single letters cannot be kept apart.
It removed something on the other side too. Clicking a part on the car ticks its mirrored twin as well, since badges come in pairs. Untick the twin in the list if only one side should go.
Does it change my textures or meta files?
A removal or an added part changes only the model. The livery, the .ytd, vehicles.meta and carvariations.meta stay as they were. Lights write meta files too (see Adding lights).
Will the badge show again from far away? No. The same parts are removed from the lower detail levels of the model. Added parts are put in every detail level too.
Can the parts be options at the mod shop instead of always on?
Yes: switch the mods step to As a kit. Each placed part becomes an option in its slot, the download writes a <model>_modkit.zip resource (the parts as their own files, a carcols.meta kit naming them, carvariations.meta pointing at it, the labels, a manifest and a README), and the vehicle file itself is left alone. The kit id must be unique on the server; the field under the switch sets it.
The kit shows nothing at the mod shop, or another car's options changed.
Two kits with the same id on one server break each other: change the kit id (in the tool, or kitName and id together in carcols.meta and the name in carvariations.meta). A vehicle resource that already ships a carvariations.meta for the model needs the zip's copy in its place (or its <kits> pointed at the new kit): the game reads one block per vehicle.
Can I add a part from my own car, or from a different game vehicle? Not yet. The catalogue is built from the game's files on our side; ask for a vehicle and it can be added.
The coronas and lights flash in game but the lenses on the lightbar never light up.
Fixed on 2026-09-30. A siren lens lights up because the game scales its siren bone (the siren setting's scale); the texture never changes, and nothing needs adding to the vehicle's .ytd (the lens texture sheriff_lights is embedded in the YFT). The game's own lenses are skinned to their bones and the shader reads that scale through the skinning; the tool wrote each lens as a separate model placed relative to its bone, which the game drew at the car's centre instead: a light flashing red and blue inside the cabin, near the seats. The lights are now written as the game's are. Add them again from the original vehicle (a vehicle that already has siren bones is refused): Start over, then the Lights step.
The lenses flash, but just behind the lightbar's glass: the red and blue only shows where it pokes through. Fixed on 2026-09-30, for every light (roof bar, push bar, rear, visor, grille, brought ones). The lenses sit inside their clear covers or behind the car's own glass (a visor light behind the windscreen), and the game draws lenses and glass in the order the model lists them. The tool listed the glass first, so it hid the lit lenses behind it and only their edges showed as they grew with the flash. The lenses now come before every glass, the car's windscreen included, as on the car the lights were cut from (the NK Scout, and the NK Buffalo, which carries the same lights). Each lens also keeps its siren bone a few millimetres off it, as the maker set it, so the flash moves the lens out in front of its housing; the bone moves, turns and scales with the light wherever it is placed. Add the lights again from the original vehicle: Start over, then the Lights step.
Do the lights have collision? Can they be switched off in game?
Yes to both, since 2026-09-30. Each light goes on an extra of its own (the next one the car does not use: extra_1, extra_2...), as real police cars carry their lightbars, with a collision shape: the one the car it was cut from gave it, or one wrapped around the light when that car had none. Bullets, props and the ground hit the bar and the push bar, and a script or menu can switch a light off and on as an extra (SetVehicleExtra), lenses included. The download step's vehicles.meta line (or the edited vehicles.meta) now carries <requiredExtras>EXTRA_1 EXTRA_2...</requiredExtras>: without it the game spawns the car with those extras on or off at random, so a light can be missing. Since 2026-10-01 it also carries the flags FLAG_EXTRAS_STRONG (without it the extras break off in a crash like any loose part, and the lights go with them) and FLAG_HAS_INTERIOR_EXTRAS (the visor and rear window lights are inside the car), and each glass cover of a lightbar breaks on its own when shot, as on a real police car, instead of taking the whole bar with it. Lights written on 2026-09-30 fell off in the first test in game (covers that broke took the bar, no strong extras) and their lenses and siren lights went with them; add them again from the original vehicle and use the new vehicles.meta line. Lights written before 2026-09-30 have no extras at all; add them again too.
The lights do not flash in game, though the siren sounds on E.
Most often the car's other file. A car ships as two files with one skeleton: x.yft, which the game builds the car from and where it looks up the siren bones, and x_hi.yft, drawn only up close. Lights written into x_hi.yft alone leave x.yft without siren bones, so the siren sounds (that needs only the siren setting id and the audio hash) and nothing flashes. Checked on 2026-09-30 against the game's own police, sheriff, ambulance, fire truck and 14 more, and the NK Scout: every one has the same bones in both files, siren bones included. Write the lights into both files: drop both on the tool, or Make x_hi.yft on the download step. Never put one written file under both names (see the next answer).
Up close the car flickers, or a low-detail body with no lights stands beside the player.
The _hi in the resource is a plain copy of x.yft (what the tool's Write copy did until 2026-10-01, and what many packs do). The game's own pairs (sultan2, police, police5, polgauntlet, polbuffalo6, polimpaler5, checked 2026-10-01) are different files: x.yft carries four detail levels (HIGH, MED, LOW, VLOW) and the breakable windows; x_hi.yft carries HIGH only (three to four times the triangles) and no windows. A copy puts the lower levels into the close-up file, where the game never expects them, and the car then drops to its VLOW a few metres from the camera and flickers between levels from the driver's seat. Make the _hi with Make x_hi.yft (the written car's HIGH level alone, shaped as the game ships one) or drop the real _hi beside the car so the tool writes both. The same vehicle written before 2026-10-01 also had its lights in HIGH alone, so a lower level showed none; lights now go into every level, as the game's police cars carry theirs.
Two more differences from the game's own files were found on a sultan2 written on 2026-10-01 and fixed the same day (winapi api/core/rage_shape.py, run on every file the server writes):
- The skeleton's signature. The game's
x.yftandx_hi.yftcarry the same skeleton signature, the one their bones give. A light's newextra_N(with its sirens under it) leftx.yftcarrying a stale signature and its_hianother one, so the pair no longer matched. Both files now carry the same, correct one, and the_hi's fragment is named after its file (pack:/sultan2_hi), as the game names its own. - The order of shader settings. Every shader in the game's files lists its settings in one order. Lights cut from cars made with other tools (the Ford Explorer's bar, a brought komodo's visor bar) had theirs in another order, and in game those lights flickered between textures and lit wrong while the NK Scout's (in order) did not. Every shader the game knows is now written in its order.
A car written before these fixes keeps the old files: add the lights again from the original vehicle and use Make x_hi.yft again (or drop the real _hi beside the car).
Then the meta files. The lights' lenses are driven by the vehicle's siren setting, which lives in the resource's meta files, not in the model. Use Download resource (it lays them out for you), or Separate files and put <name>_carcols.meta and <name>_carvariations.meta in the resource's data folder, never in stream (FiveM skips a meta file in stream with can't register ... no streaming module in its log, and the car keeps whatever siren setting another file gave it), and add the lines the download step shows under the vehicles.meta line (since 2026-10-01, a copy box with files { 'data/*.meta' }, data_file 'CARCOLS_FILE' 'data/<name>_carcols.meta' and data_file 'VEHICLE_VARIATION_FILE' 'data/<name>_carvariations.meta', plus VEHICLE_METADATA_FILE when a vehicles.meta was given; hint carcols and carvariations are data files · never in stream) to fxmanifest.lua. When the server already loads a carcols.meta or carvariations.meta for the same model from another folder, replace that file's entry for the model with the new one (or remove it), or the old siren setting stays. Also replace the ones the tool edited, and make sure vehicles.meta has the emergency line (the tool edits the file when given one; otherwise copy the line it shows at the download step). The siren setting id in both files must match and be unique on the server; the id shown under carcols.meta is the one written. A different pattern can be made in the Sirens tool at /app/siren from the generated carcols.meta.
In game the car's paint keeps switching to other textures.
Most often the paint's livery slot names a texture nobody ships. The UV map tool (and Add livery here, which opens it) points the body paint at a livery texture named <model>_sign_1 and expects that texture in the vehicle's .ytd. A car written that way and shipped without it has a paint that reads a texture that does not exist, and the game then draws whatever texture it had loaded last, so the paint flickers through other textures (like a livery that is not a power of two). Since 2026-10-01 the tool shows Paint reads sultan2_sign_1 · add it to sultan2.ytd or the paint flickers under the vehicle's name when the file it was given does this. Either put the livery (named exactly that) in the .ytd, or, for a car that should carry no livery, start again from the .yft from before the UV map tool. Found on a sultan2 on 2026-10-01: its paint read sultan2_sign_1 and no .ytd carried it; set back to blank (what the game's own sultan2 reads) it stopped.
The same day a second difference was fixed in every file the server writes: the textures a car carries inside its .yft (a brought lightbar's, the catalogue's Ford Explorer's) now end their small sizes at 4 pixels and name their use (diffuse, normal, specular), as the game's own textures do. Before, a car written twice (an edit after the lights, or Make x_hi.yft) came out with those lights' smallest sizes blank, which showed as wrong colours on the lights from far away.
The lights shine the wrong way: a lens glows from the side or from behind instead of the front.
A lens's glow in game follows the way its siren entry says the light points (the flashiness delta in carcols.meta: 0 forward, pi back). First check that the server loads the carcols.meta the tool wrote (see above: in data, declared in fxmanifest.lua, not shadowed by an older file for the same model). For a brought light without its own carcols.meta, the tool makes up each lens's entry from the lens itself. Since 2026-10-01 (second fix that day): on a roof bar with lenses on both sides of its middle, each lens points away from the middle (front row forward, rear row back); on a part that faces one way (a visor bar, grille lights, a rear window light) every lens points the way the part sat on its car, forward from the front half and back from the rear half; the end modules of a bar point out to their sides. Until then a visor bar whose lights sit at the back of their box (a komodo's) shone backwards. Brought sets are aimed again by the new rule when the server starts; write the lights again to get the new entries. A carcols.meta brought with the vehicle always wins over made-up entries.
Can I change how the lights flash, or make them faster?
Yes: the Flash section under the lights in the Lights tab. Pick a pattern (Alternate, Double, Triple, Burst, Steady, or each light as it came), the speed in bpm, the brightness, whether the head and tail lights flash, or click the 32 steps per light by hand; From carcols.meta takes another car's pattern. It plays on the car as you change it (Flash and Night over the stage) and goes into the carcols.meta the download writes, also after the lights are written. A car that came with its own sirens is not edited here: its carcols.meta can be changed in the Sirens tool at /app/siren.
Can I use my own lightbar model?
Yes, on Standard and up, from one of your own police vehicles (since 2026-09-30; Free has the catalogue's lights): in the Lights step, press Bring a vehicle (the dashed box above the list of lights, .yft · .ytd · carcols.meta under it; the files can also be dropped on it) and choose the vehicle's .yft together with its .ytd (and its carcols.meta if you want its own flash patterns). The server takes out every extra (extra_1, extra_2...) and every other part that holds sirens, with its lenses and glass, and they join the list of lights with your vehicle's name under each, ready to place on the car you have open like any other light. They stay in your list for next time; the vehicle's row under the box (its name, how many parts) has the X that takes it off. A lightbar modelled on its own (not part of a vehicle) cannot be brought yet.
My brought parts look white or grey.
The vehicle was brought without its .ytd, so the parts' own textures stayed behind. The vehicle's name in the list then has an Add .ytd button: press it and choose the .ytd (a carcols.meta can go in the same dialog). The parts take their textures without the vehicle being sent again, and their lens colours are read again from them.
Which parts come out of a vehicle I bring?
Every extra_N the model has (a lightbar, a push bar, a cage, a spotlight, a laptop mount...), and any other part with siren lenses under it (a push bar's lights, grille lights). Sirens modelled straight onto the body (as the game's own police cars have their grille and rear lights) cannot be told apart from the body and stay behind. A part carrying decals (logos, lettering) says Has decals in its tooltip.
"Could not add the lights · Connection failed · check your network", though the internet works. The server did the work; the finished file was cut off on its way to the browser. About 3% of large answers from the conversion server are cut like this, for some people nearly every time (their network, a VPN, or security software that scans downloads). Since 2026-09-30 the tool fetches the finished file again from the server when that happens and carries on, resuming from where it stopped; the same goes for opening a vehicle and for removing badges, adding mods and writing a kit. If the message still shows, the connection failed before the request reached the server: try again, or from another network.
The lightbar's glass does not show in CodeWalker.
Fixed on 2026-09-29. Before that the bar's lens texture (sheriff_lights, embedded in the YFT) was a plain stand-in whose glass strip was nearly white and three-quarters see-through, so the covers were in the file but vanished in CodeWalker and in game. The lights now carry the source car's own texture: tinted red, white and blue glass. Add the lights again to a vehicle written before that date (Start over, then the Lights step).
Why does a light say No room?
A siren setting drives twenty sirens (siren1 to siren20), one per lens. The chip over the list counts them (14 of 20 sirens); a light whose lenses would pass twenty is greyed.
Adding lights
The third job, for turning a plain car into a police vehicle. Since 2026-09-29 the lights are a catalogue cut out of a real police car, the NK Scout 2020 (a FiveM resource: its lightbar, lenses and glass as the car ships them, with its own lens texture): Roof lightbar (6 lenses, 3 glass covers), Rear window light (4 lenses), Visor light (2), Grille lights (2), Push bar (with its 2 grille lights; the maker's logo decal is left out). The source's misc_y/misc_z parts looked like spotlights but are its rear-view mirrors; they were in the catalogue for an evening and were taken out on 2026-09-29 (owner). Each is a tile with a picture drawn with its lenses lit, under From the NK Scout 2020; the tooltip says its lenses and triangles.
When the Lights step comes up the first time, the roof lightbar is already on the roof of the car at its default place (the middle of the roof, read off the painted body), with the handles on it (see Placing things). Under the lights on the car, the Bring a vehicle box, then the lights to add as one list (since 2026-10-01; before, picture tiles under a heading per car): each a card with its picture, its name, the vehicle it came from under the name (Roof lightbar / NK Scout 2020, Roof lightbar / Ford Explorer) and its lenses on the right (6 lenses, No sirens). Over the list, Search lights and a filter button whose menu filters by Kind (Roof, Rear window, Visor, Grille, Push bar, Side, Interior, Spotlight, Extra, each with its count) and by Vehicle; each filter on shows as a chip with an X, Clear takes them all off, and No lights match says when nothing is left. The catalogue: the NK Scout 2020's roof lightbar, rear window light, visor light, grille lights and push bar, the Ford Explorer's roof lightbar, since 2026-10-01 the komodai's front and rear interior lights (light fittings under the headliner without lenses, their glass breakable on its own), and since 2026-10-13 the komodai's Side lights, Slim roof lightbar and Visor LEDs, and 27 lights from 12 of the game's own police cars (see The game's own police lights below). A press on a card puts another light on the car, where it sat on the source car carried into this car's size (a rear window light at the back of the roof line, a push bar at the front), with the handles on it; several can be placed, even the same one twice. The lights on the car are rows (Roof lightbar, Sirens 1 to 6 · 1,292 triangles); click a row or the light itself on the stage to put the handles on it, the × takes it off. The sirens are numbered in the order the lights were placed: the first light's lenses are siren1 on, the next light's follow (Rear window light, Sirens 7 to 10); a light without lenses would say No sirens. The chip over the rows counts them (12 of 20 sirens); a light that would pass twenty, or the car's bones, is dimmed and reads No room, and a press on it says which (No room · 20 sirens at most, No room · 3 bones left on this car).
When the step comes up the first time, a dialog asks for the files for the lights: carcols.meta, carvariations.meta and vehicles.meta, all optional, a resource folder can be dropped on it, and a Siren setting id (a number the tool picks from the model name, between 100 and 250; ids above 255 need the SirenSetting Limit Adjuster on the server), with Patterns from the NK Scout 2020 · 220 bpm under it. The Meta files button under the list opens it again, and the step lists the three files and where each comes from: yours when given, new when the tool writes it from nothing, line to paste for vehicles.meta without a file.
The button reads Add 4 lights with 4 lights · 12 siren bones under it. The server grafts every light onto the model in one write (each housing and its glass covers, each lens on its own sirenN bone, the lens texture inside the YFT, turned and sized as placed), the written vehicle takes the stage with the lights on it, and the tab stays, listing the meta files; Download under it goes to the way out, where the button is Download resource (one zip laid out as a FiveM resource, see the Download step); Separate files in its menu saves the same files one by one: the YFT, then <name>_carcols.meta (the siren setting, appended to the given file or a new file: each lens keeps the flash pattern, colour and corona it had on the source car, renumbered to its siren, at the source's 220 bpm, and the entries past the last lens stay dark; since 2026-10-01 a turned light faces the way it was turned, by any of the three rings (a rear window light put on the front faces forward, not back, whether it was spun round or flipped over), and its corona grows or shrinks with the light's size), <name>_carvariations.meta (the vehicle's block pointing at that id, its lights on, added when the file did not name it) and, when a vehicles.meta was given, <name>_vehicles.meta (class VC_EMERGENCY, audio POLICE, the flags FLAG_LAW_ENFORCEMENT and FLAG_EMERGENCY_SERVICE added, and for lights on extras FLAG_EXTRAS_STRONG, FLAG_HAS_INTERIOR_EXTRAS and the extras in <requiredExtras>, everything else kept). The arrow beside the button downloads any one of them alone. Without a vehicles.meta the line to paste sits under the file list with a copy button. Add livery under the footer sends the written vehicle to the UV map tool, which opens it with a note (since 2026-09-30 notes and results such as Removing badges from dominator.yft · 6 parts · 60 triangles show for a few seconds in the activity pill at the top of the screen, with its action, instead of a card across the top of the 3D view; the pill's list keeps them) and lets the person pick the panels a livery should cover. Jobs done one after another stack: each write goes onto the vehicle the last one wrote, in whatever order the tabs were used.
What it does not do: it cannot write a vehicles.meta block from nothing (there is far too much in one), it does not add lights to a vehicle that already has sirens, it does not take a vehicle past 127 bones (each light takes its extra, one bone per lens and one for its glass covers: a roof bar 8, a rear window light 5, a visor, grille or push bar 3, the Ford Explorer's bar 12; the chip beside the sirens reads 8 of 18 bones and a light that would not fit is greyed No room, with the toast No room · 18 bones left on this car), and it writes the lights into every detail level the vehicle has (HIGH, MED, LOW, VLOW), as the game's own police cars carry their lightbars down to VLOW (before 2026-10-01 HIGH alone, so a lower level showed none). How the lights flash is the Flash section's (below); the Sirens tool at /app/siren can still edit the generated carcols.meta afterwards.
Flash: pattern, speed, brightness (since 2026-10-13)
Owners asked for the animated lights other editors have. In the Lights tab the placed lights flash on the car as they will in game: each lens burns and wears a glow when its beat is lit and goes dark between, at the setting's tempo. Two switches sit over the stage beside the handles: Flash (play or stop it; it starts stopped for a person whose system asks for less motion) and Night (the stage goes dark so the flash reads as light; the Lights tab only). Once the lights are written they are part of the car, so the flash shows as glows at the car's sirenN bones.
Under the placed lights a Flash section opens (closed it reads As made · 220 bpm):
- Pattern tiles, each drawing eight beats of its two sides in the lights' own colours: As made (each lens keeps the pattern it had on the car it came from; the default), Alternate (the two sides take turns, one flash a beat), Double and Triple (two or three quick flashes a beat), Burst (four beats one side, four the other), Steady (all on). The sides are the colours (red against blue; a third colour flashes with the first); on a one-colour light (the ambulance's red bars) they are its two halves.
- Speed: 60 to 1,000 bpm in tens; starts at the source's tempo (220 for the catalogue's lights).
- Brightness: Normal, Strong (×1.6), Very strong (×2.4), on every lens's corona and light intensity.
- Head and tail lights flash: the police car wig-wag in the setting's header (left head and right tail together, then the others); off writes zeros. Starts as the source has it (on for the game's police cars).
- Steps: a row per lens in siren order (its number and colour), 32 beats a loop; a click switches a beat, the beat the stage is on is outlined, the arrow keys walk the grid. Drawing makes the pattern Custom (a seventh tile); picking another tile keeps the drawing, so Custom takes it back.
- From carcols.meta: another car's pattern; lens N takes siren N's beats and flashes of the file's first siren setting, and its tempo comes along. Lenses past the file's sirens keep theirs.
No siren setting in <file>when it has none. - Reset goes back to as made.
Written into carcols.meta at the downloadunder it.
Nothing here is written into the car: it is the carcols.meta the download writes (flashedSetting in meta.ts: the pattern's sequencer and multiples with syncToBpm on, the intensities scaled, sequencerBpm and the head and tail sequencers in the header), so it changes after the lights are written too, with no new write; a kit made before is made again and a download already saved is no longer counted as saved. The game reads a sequencer from its top bit, beat 1 first, as the Sirens tool's columns do. Before 2026-10-13 the setting written after the lights were on used the catalogue's header rather than the first light's car's; it now keeps the header the lights were written with. Not yet checked in game by the owner.
Side lights (along the sills)
Since 2026-10-13. Owners asked for the lights that run along the bottom of a police car's sides, under the doors, and flash out sideways. The komodai (a car built with this tool from a brought set) had them on its extra_1 and the catalogue had only taken its interior lights; its sill rails are now the catalogue's Side lights (kind Side): two thin rails under the sills, four lenses (front and rear of each door), 5 bones. The game's own police cars have none (checked on all 117 game vehicles with siren bones: police3's and sheriff2's are on the front doors, the ambulance's on its sides high up).
- A side light shines out to its side: the left rail's lenses face left (flashiness
deltapi/2), the right rail's right (-pi/2), whatever way the lens strips face in the model (the komodai's face along the car). - Put on a car, the unit is stretched to that car's width and length (the stretch line reads it, e.g.
Stretch 104% · 112% · 100%) and sits at the bottom of the car, so the rails land under the doors; the handles move and size it from there. - A brought vehicle's part low on the car out to its sides is read as Side lights too, and its made-up entries shine sideways.
The game's own police lights
Since 2026-10-13 the catalogue carries units from GTA V itself, each under its car's name: Police Cruiser (Stanier) (two dual roof lightbars), Police Cruiser (Buffalo), Police Cruiser (Interceptor), Stanier LE Cruiser (four slim roof lightbars, the same bars as the polbuffalo6, polgauntlet, polcaracara and polterminus), Sheriff SUV, Police Transporter (van bar), Ambulance (front and rear lights), Police Rancher and Police Roadcruiser (classic bars), Dominator FX Interceptor (twin pod bar, two bars, roof light pods), Impaler SZ Cruiser (roof beacon, short and long bars) and Greenwood Cruiser (dash beacon, roof beacon, corner lights, rotator pair, rotator lightbar, roof bar). Each lens keeps the game's own siren entry for it (colour, pattern, the way it faces, the rotators' spin) from the carcols file the car's carvariations names, and the setting's header (tempo, head and tail light patterns) comes with the first light placed. Lights the game hangs straight on the body (police4, the FBI cars, the fire truck) or spread over the whole car on one bone (the newer cruisers' visor, grille and rear lights) cannot be cut apart and are not offered.
What an emergency vehicle needs (the meta files)
Researched 2026-09-27 from the game's own files, Sollumz and the FiveM references; this is what the tool writes and why.
- carcols.meta holds the siren setting: one
<Sirens><Item>with an<id>, the corona and light parameters,<sequencerBpm>, and twenty<sirens>entries, entry N driving bonesirenN. Each entry's<scale value="true"/>is what makes a lens flash (the game scales the bone byscaleFactor), its<sequencer>is the 32-step on/off pattern,<color>the light's colour. Ids must be unique across every carcols.meta the server loads; 0, 255 and 65535 are reserved and ids above 255 need the SirenSetting Limit Adjuster. - carvariations.meta points the model at the setting:
<sirenSettings value="id"/>in the vehicle's block, next to<lightSettings>and the liveries list. Its root is<CVehicleModelInfoVariation>(<CVehicleModelInfoVarGlobal>is carcols.meta's). Until 2026-09-30 this tool and the UV map tool wrote a new carvariations.meta under carcols' root; a file given that way is now moved under its own (variationRootinuv/meta.ts). - The model: siren bones
siren1tosiren20with the game's tags (an ELF hash of the name:siren1= 24999,siren10= 5714,siren20= 5698), in bothx.yftandx_hi.yft, the same skeleton in both. The game finds them by tag in the skeleton ofx.yft; each is where its corona, light and rotation start, and the lens on it flashes as the game scales the bone.siren_glassNbones are optional (breakable glass: a broken one stops siren N). The game's own siren setting ids run 0 to 20, so the tool's 100 to 250 do not clash with them. Verified 2026-09-30 on 18 of the game's emergency vehicles and the NK Scout (CodeWalker.Coreagainst the Epic install). - vehicles.meta makes the car an emergency vehicle:
<vehicleClass>VC_EMERGENCY</vehicleClass>,<audioNameHash>POLICE</audioNameHash>for the siren sound, and the flagsFLAG_LAW_ENFORCEMENT(police behaviour, the wanted system) andFLAG_EMERGENCY_SERVICE. Lights on extras addFLAG_EXTRAS_STRONG(extras that do not break off: on police, sheriff, police5, polgauntlet and crusader, the NK Scout and the NK Buffalo; checked 2026-10-01 over the game's 87 vehicles.meta) andFLAG_HAS_INTERIOR_EXTRAS(the NK Buffalo's, the FBI cars'), and<requiredExtras>.FLAG_HAS_LIVERYcomes from the UV map tool when a livery is added. - Not needed for the lights: handling.meta, vehiclelayouts.meta, dlctext. The lights' own lens texture is embedded in the YFT, so the vehicle's YTD is untouched.
- How a real police car carries its lights (the NK Scout 2020, 2026-09-29): one skinned model, the lightbar's housing on
extra_1(an extra, so it can be switched off), each lens on itssirenNbone with thevehicle_lightsemissiveshader, each glass cover on asiren_glassNbone withvehicle_vehglassandvehicle_vehglass_inner, the other units' housings onextra_2(push bar),extra_3(visor),extra_4(rear window) andmisc_h1/misc_j1(grille lights);misc_y/misc_zare its rear-view mirrors. The lenses sit in reflector cups whose faces point inward: the game draws only faces wound clockwise towards the camera, so from outside the cup is not drawn and the lens shows.
How the game's mod kits work
Researched 2026-09-27 from GTA V (legacy) with CodeWalker.Core, the Sultan and Sultan Classic as the examples; the full contract is section 7 of docs/vehicle-parts.md in the winapi repo.
- A vehicle's mods are a kit in
carcols.meta(<Kits>):kitName(402_sultan2_modkit),id(the number in the name; the game uses 0 to 999, FiveM allows up to 65535, and every kit on a server needs its own, since two kits with one id break each other),visibleMods(the parts),linkMods(parts shown with another part: an intercooler behind a bumper),statMods(engine, brakes, gearbox, suspension, armour, turbo, horn: numbers, no meshes),slotNames(a kit renaming a slot: the Sultan Classic's chassis slot is "Roof Accessories", its grille slot "Headlights").carvariations.metapoints the model at its kit in<kits>. 688 of the game's 934 vehicles have a kit. - A visible mod names the part's mesh file, its shop label (a text key:
MNU_WING3is "Low Level Spoiler"), its slot (VMT_SPOILER,VMT_BUMPER_F,VMT_BONNET,VMT_SKIRT,VMT_EXHAUST,VMT_ROOF,VMT_GRILL,VMT_CHASSISand forty more; the items of one slot are its options, in order, which is whatSetVehicleModcounts), the vehicle bone it hangs off (spoilers onboot, hoods onbonnet, bumpers onbumper_fandbumper_r, skirts and roofs onchassis, exhausts onchassisorengineblock), the collision bone, the stock bones hidden while it is on (turnOffBones: the stock bumper, the stock bonnet), and a weight and audio effect. - The meshes are fragments (
.yft, one per part) inlevels/gta5/vehiclemods/<vehicle>_mods.rpf: 879 archives, 52,596 fragments, 11.7 GB across the game. A part is one drawable with three detail levels, its own one-bone skeleton, no collision (every fragment in the catalogue has one physics child with an empty bound;collisionBoneis named all the same), and its vertices in the frame of the bone it hangs off (a front splitter's mesh sits around thebumper_fbone's origin, not the car's). It reads the shared vehicle textures (vehshare), the vehicle's own texture dictionary, or a dictionary of its own. - The tool's catalogue is built from that with
scripts/vehicle_mods_build.pyin the winapi repo (dev machine, the legacy game and CodeWalker.Core): each exterior part as the game ships it, the textures it needs, a preview mesh for the stage, and one row of facts;POST /convert/yft-vehicle-modswrites a part into a vehicle by binding its meshes to the bone of the same name (the chassis when missing) with the placement applied. - What the tool writes for a kit (since 2026-09-28,
As a kit): each part as its own fragment named after the vehicle (mycar_zm_spoiler1.yft, a linked modelmycar_zm_bumper_f1_l1.yft) with its vertices moved into the target bone's frame with the placement and its bone, tune name and physics group renamed; acarcols.metakit (<id>_<model>_modkit, the same number asid,visibleModswithmodelName,type,bone,collisionBone, amodShopLabeltext key,turnOffBonesfor the standard panels the vehicle has,linkedModels;linkMods; the defaultstatMods),carvariations.meta<kits>naming it,client/labels.luawithAddTextEntryper part, and the fragments understream/of the resource. Variations are several items of one slot: the second spoiler placed is option 2.
Bring your own lights and extras
Since 2026-09-30 the Lights step takes a person's own police vehicle and offers its parts beside the catalogue, so a department's lightbars and extras can go onto its other vehicles in the same theme. It is a plan's: Standard, Pro, Max (and referrers); Free has the catalogue's lights (the NK Scout's and the Ford Explorer's roof bar). On Free the button reads Bring a vehicle with a Standard badge (tooltip Your own vehicles' lights need Standard · the catalogue is free) and opens the plans with Standard picked out; no sets are listed. The box refuses a Free call on its own too (429 allowance_exhausted, the message Your own vehicles' lights need Standard and the plans).
- Bring a vehicle (since 2026-10-01 a dashed box above the list of lights with a car glyph and
.yft · .ytd · carcols.metaunder the name, taking a press or the files dropped on it; tooltipIts .yft, with its .ytd and carcols.meta) opens a file chooser; pick the.yft(the_hior the plain one) and, together with it, its.ytdand optionally itscarcols.meta. The top bar showsTaking parts from fordexplorer_hi.yft, then7 parts. When the.ytdis not among the files chosen, a dialog asks for it first (Bring fordexplorer_hi.yft: slots .yftThe vehicle, .ytdThe parts' textures, carcols.metaOptional · flash patterns, a resource folder can be dropped on it); its button reads Bring without textures until the.ytdis in, then Bring. - Each brought vehicle is a row under the box: its name,
7 parts, and the X that takes it off the list. A set brought without its.ytdhas an Add .ytd button on that row (tooltipIts .ytd, for the parts' textures): the dialogFiles for fordexplorertakes the.ytdand thecarcols.meta, and Add sends only those (POST /convert/vehicle-extras/{set}/files); the parts' tiles take the new lens colours, placed ones keep their place. - The parts join the list of lights, first, with the vehicle's name under each (the filter's Vehicle picks one car's), each with a picture drawn in the browser: a roof bar reads Roof lightbar, one off the back Rear lights, one off the front low Push bar lights, one off the front high Front lights, one inside Interior lights, one low along the sills Side lights (since 2026-10-13, shining sideways); a part without lenses is Extra 4 (its bone) and reads
No sirens. A press puts it on the car like a catalogue light: where it sat on its own car, carried into this car's size (a roof bar on the roof), with the handles on it; its lenses count against the twenty sirens. - A lens flashes by growing about its siren bone. On the older lens shader (
vehicle_lightsemissive, every one of the game's police cars before 2023) the game's bones sit within 12 mm of their lens, a few mm in front of or behind it; a brought vehicle whose bones sat 4 cm along the lens strip (a komodai, 2026-10-01: lenses that "scaled wrong" while the rest flashed right) has those bones brought onto the lens when it is put on a car, keeping the part in front of or behind it. Lenses on the newervehicle_lightsemissive_sirenshader keep theirs: Rockstar's own (polbuffalo6, polgauntlet) sit 5 to 7 cm along the strip. - Vehicle glass inside a part's housing (the komodai's interior lights carry theirs on the extra) goes on a glass bone of its own like a lightbar's covers, so broken glass never takes the part off the car.
- Each lens keeps the flash pattern from the vehicle's
carcols.metawhen it came along; without one, its colour is read off its own texture (red, blue, amber, white) and it gets the NK Scout's pattern for that colour (red and blue alternating). - The same vehicle brought again is the same set; with a
.ytdorcarcols.metathe first time lacked, its parts are taken out again. The set stays on the server under the person's account and comes back in the list on any device; the X beside its name takes it off the list (the server keeps the files, which is how the tool's own catalogue grows). 422 ZVE-4640"This vehicle has no extras and no lights on parts of their own to take." when there is nothing to take; a brought part of someone else's set is refused with404 ZVE-4641.
The catalogue itself gained the Ford Explorer's roof lightbar the same day (10 lenses: red, blue, amber; its textures at most 256 px and the GO RHINO logo sheet it read one dark patch from flattened to that one colour, 399 KB in all), under its own heading From the Ford Explorer.
The car's _hi file (x_hi.yft)
A GTA V car is two files: sultan.yft and sultan_hi.yft. The _hi is the close-up model the game draws when the car is near the camera (your own car, cars right beside you); it has about four times the detail and the same skeleton. An edit written into sultan.yft alone shows only at a distance: up close the old _hi is drawn, so badges come back and added lights or mods disappear.
- Drop both files together (or a folder with both).
sultan.yftopens andsultan_hi.yftis named under it in the left column withEvery edit; every removal, mod and light written on the car is written into the_hitoo, with nothing to place twice. A_hidropped on its own onto an open vehicle is added to it; Add sultan_hi.yft under the file does the same. Added after edits, it is caught up with them first (aCatching up sultan_hi.yfttask). - Download then saves both files, and Download everything includes the
_hi. Put both in the resource'sstreamfolder in place of the originals. - No
_hi? The download step saysNo sultan_hi.yft · the game draws its own up closewith Add sultan_hi.yft and Make sultan_hi.yft (the export menu'ssultan_hi.yftrow,Close-up file made from this model · as the game ships one, does the same). Make asks the server for the close-up file of the written vehicle (aMaking sultan_hi.yfttask): its HIGH level, skeleton and physics as they are, the lower levels and the breakable windows dropped, which is what the game's own_hifiles are. It downloads at once, joins the download list assultan_hi.yft · Close-up file · made from this model, and Download and Download everything carry it; another edit on the car lets it go, so make it last. Up close the car then shows with the normal model's detail rather than the close-up detail. Until 2026-10-01 this button wrote a plain copy ofsultan.yft, which carries the lower levels into the close-up file and made the car drop to its lowest level beside the player and flicker from the driver's seat. - A
_hiopened as the car. A file dropped under the plain name that is shaped like a close-up file (HIGH only, no windows) showsClose-up file only · the game needs its sultan.yft toounder its name: a car made from it alone has no lower levels and vanishes at a distance. Open the car'ssultan.yftand add this file as its_hi. - If the
_hicannot take an edit,sultan.yftkeeps it, the_hiline turns red withNot updated, and the toastsultan_hi.yft not updated · <reason>says why; from then on the_hiis left as it was. The usual reason isThis _hi.yft is not the high detail of this vehicle(errorZVE-4630): the two files have different skeletons, so they are not the same car. - Only the
.yfthas a_hi. The+hi.ytdtexture dictionary beside some cars holds close-up textures (seats, glass) and needs nothing from this tool.