FiveM bike bugs: green tyres, black gauges and more
Green tyres, black gauges, smoke from one pipe, blinding headlights or pink tail lamps on FiveM bikes: what causes each and how we fixed it.
The bike loads and drives fine, but the tyres look green in daylight, the gauges are black circles, only one pipe smokes, the headlight blinds everyone or the tail lamps glow pink at night. Each of these comes from one small mistake in a texture, a meta file or a bone. We hit all of them building our own bikes.
Bike not spawning, missing textures or crashing is a different problem; start with troubleshooting for that.
Green tyres
The tyre texture looked neutral grey in the source file and had a green tint in game, mostly in daylight. Two separate causes.
Compressed dark textures
DXT1 / DXT5 (BC1 / BC3) store colour as 5-6-5 bits. Green gets the extra bit, so near-black greys decode slightly green. A tyre is almost all near-black, so the whole tread picks it up.
- Save tyre diffuse textures, and other mostly black ones like rubber and dark trim, uncompressed as A8R8G8B8. 512 px is enough for a tyre.
- Don't convert them back to DXT later to save space. The size difference is small, the colour shift isn't.
- To confirm: decode the final DDS and sample a few pixels. G higher than R and B on a grey means compression.
Tyre vertex colours
The vehicle_tire shader reads vertex colours. Painting them pure white can shift the tyre green as well. Copy the values from a vanilla tyre. And keep vehicle_tire on the wheel only; on brake drums or fork parts it renders oddly.
Black gauges
Working dials need all three of these:
<dashboardType>invehicles.meta, e.g.VDT_ZTYPE,VDT_RACEorVDT_BANSHEE.- A
dialsbone with the dial overlay geometry bound to it. - The overlay material using the matching render target,
script_rt_dials_<type>.
If the dial faces themselves are black, check the texture format first. texconv writes _SRGB formats with a DX10 header, and some .ytd tools don't understand those DXGI formats and store an invalid format instead. In game that's just black. The same thing once killed our tail lamps.
Smoke from one pipe
Smoke spawns at bones named exhaust, exhaust_2 and so on. On a twin-pipe bike that smokes on one side:
- Only one bone. Add
exhaust_2at the second tip, pointing out of the pipe. - A tuning part hides it. An exhaust mod that lists the exhaust bones in
<turnOffBones>stops smoke there, because hidden bones emit nothing. Put the stock pipes on their ownmisc_*bones, hide those instead, and give each exhaust mod its own exhaust bones. - Double exhaust flag.
strModelFlagsinhandling.metahas a double exhaust flag (0x2000) that mirrors smoke to the other side. Useful for symmetric pipes, usually unnecessary with real bones on both tips.
Headlight glare
Fine in the garage, a huge white flare on the road: usually the light settings the bike inherits, not the model. The default set has a big headlight corona.
- Add your own
<Lights>entry incarcols.meta, copied from a vanilla set, with smallerheadLightCoronasize and intensity. - Use an id nothing else on the server uses. It's stored as an 8-bit value, so pick one above the vanilla range and keep a list.
- Point the bike at it with
<lightSettings value="..."/>incarvariations.meta.
Also check the emissive headlight faces are on headlight_l / headlight_r with the right light id in the vertex colour alpha, otherwise the lamp is always on or never on.
Pink tail lamps
Too much emission for the colour. Bright red texture, tinted material and a high emissive multiplier: red clips, the other channels follow, and it reads pink or orange.
- Keep the lens material colour white and put the red in the texture.
- Keep the emissive multiplier moderate. Vanilla lamps sit around 3 to 3.5; we use about 2 on large lenses or ones close to the camera.
- Check at night. Daylight hides it.
Parts vanishing at distance
A fairing, mirror or light that pops out as you ride away means the LODs don't match. The high and very high meshes in .yft and _hi.yft need the same parts and materials. Add a part to one only and it disappears on the LOD switch; a material mismatch between them can crash the client. When editing in Blender, copy the very high mesh into the high slot before export.
We check all of this before a bike like the Western Gladius goes out. If one of our bikes shows any of it, the FAQ has how to reach us.