ExhaustFx - user-grinch/ModelExtras GitHub Wiki
Available from ModelExtras v2.1+ (Overhauled in v3.0)
The ExhaustFx and Backfire features bring high-performance vehicle exhausts to life in GTA San Andreas. They support multiple customizable exhaust pipes, realistic smoke particle emission, authentic Anti-Lag System (ALS), dynamic gear-shift flames, complete Soundize API integration, and high-performance NOS nitrous effects.
Allows placing custom exhaust pipes anywhere on the vehicle (e.g. side exhausts, hood stacks, quad rear pipes) with custom smoke velocity, color, and particle size.
To define multiple exhaust points, place dummy nodes on your vehicle model named:
x_exhaust1, x_exhaust2, x_exhaust3, ...
π Path: ModelExtras/data/<FILENAME>.jsonc or modloader/AnyFolder/<FILENAME>.jsonc
Both model ID and model name are valid FILENAME (e.g. 602.jsonc or alpha.jsonc).
π‘Tip: It is recommended to use model names instead of model IDs to avoid conflicts with other mods β especially when using added vehicles.
Every JSONC configuration requires a metadata specification before any other settings. See here: METADATA
Configure smoke particle properties:
-
lifetime: Duration of the smoke particle in seconds (default:
0.4). -
speed: Velocity multiplier of the smoke emission (default:
1.0). -
size: Scale of the smoke particles (default:
1.0). -
nitro_effect: Whether nitrous oxide (NOS) flame particles emit from this specific exhaust dummy (default:
true). - color: RGBA color and opacity of the exhaust smoke (0β255).
ModelExtras v3.0 features a completely re-engineered, authentic automotive backfire system inspired by real-world Anti-Lag Systems (ALS), rally anti-lag, and high-performance tuning.
ModelExtras directly hooks into the Soundize engine (Soundize.asi / Soundize (Junior_Djjr).asi) via its public C API:
-
FMOD Engine Gear Shift Detection (
Ext_GetVehicleGear): Soundize shifts gears based on FMOD engine RPM and cuts the gas pedal. ModelExtras synchronizes precisely with these gear transitions, emitting immediate shift flame pops. -
Auto Vehicle Validation (
Ext_DoesVehicleSupportBackfire): If a Soundize vehicle soundbank explicitly defines backfire support, ModelExtras automatically enables backfire for that vehicle without requiring manual INI model ID entries. -
Smart Audio Overlap Protection: If Soundize provides its own backfire audio for a vehicle, ModelExtras automatically mutes its internal
backfire.wavto prevent duplicated audio. -
Soundize Throttle Lift ALS (
Ext_GetVehicleDoingBackfire): When Soundize triggers deceleration popping, ModelExtras spawns synchronized visual exhaust flame bursts on DFF exhaust points.
Unlike simple fixed particle spawns, ModelExtras runs independent dual low/high FX systems on each exhaust pipe:
-
Normal Shifts (75% probability): Soft crackling puffs with independent randomized sizes on each pipe (e.g. left pipe subtle
0.36, right pipe medium0.52). -
Hard Shifts (25% probability): A sudden high-intensity blast (
backfire_high, rate mult0.75 - 0.95) on one pipe while the other pipe maintains subtle crackle. -
Custom Orientation: Flames accurately respect the 3D pointing matrix of each
x_exhaustdummy.
-
Full Throttle Lift-Off: Decelerating after driving at high throttle (
throttle >= 0.99for> 0.39funder Nitrous Oxide) triggers multi-fire popping bursts (BackFireMulti) with authentic timing intervals. -
Speed & Idle Gating: Strictly requires active driving speed (
speed > 3.0 km/h/5.0 km/h) to prevent unrealistic popping while idling, revving in neutral, or holding handbrakes.
- When activating Nitrous Oxide (NOS), dynamic blue point lights illuminate the road right below each active exhaust pipe tip.
- Nitro FX and pointlights only trigger while actively holding the NOS boost button.
-
Directional Smoke & Flame: Rotate your
x_exhaustdummy in 3ds Max/ZModeler so that its Up vector points backward (or in the direction you want the smoke and flame to exit). -
VehFuncs Extra Compatibility: Exhaust dummies placed inside VehFuncs extra nodes (
f_extra_xx) dynamically emit smoke and flames only when that specific extra part is spawned on the vehicle!
You can toggle the backfire feature and configure which vehicle models receive backfire effects:
[FEATURES]
; Master switch for backfire flames and pop audio
BackfireEffect = 1
; Enable backfire only on specific vehicle models listed below (1) or all sports cars (0)
BackfireEffect_OnlySelectedModels = 1
[TABLE]
; List of model IDs that feature backfire effects (sports cars, tuners, and high-performance motorbikes)
BackFireEffect_VehicleModels = 402, 411, 415, 424, 429, 434, 439, 451, 461, 468, 475, 477, 480, 494, 496, 502, 503, 504, 506, 521, 522, 535, 541, 558, 559, 560, 561, 562, 565, 581, 587, 589, 603, 604| Model ID | Vehicle Name | Type |
|---|---|---|
| 402 | Buffalo | Sports Car |
| 411 | Infernus | Supercar |
| 415 | Cheetah | Supercar |
| 424 | BF Injection | Off-Road / Buggy |
| 429 | Banshee | Sports Car |
| 434 | Hotknife | Hotrod |
| 439 | Stallion | Muscle Car |
| 451 | Turismo | Supercar |
| 461 | PCJ-600 | Sports Bike |
| 468 | Sanchez | Dirt Bike |
| 475 | Sabre | Muscle Car |
| 477 | ZR-350 | Tuner / Sports Car |
| 480 | Comet | Sports Car |
| 494 | Hotring Racer | Race Car |
| 496 | Blista Compact | Compact / Tuner |
| 502 | Hotring Racer A | Race Car |
| 503 | Hotring Racer B | Race Car |
| 504 | Bloodring Banger | Demolition Derby |
| 506 | Super GT | Supercar |
| 521 | FCR-900 | Sports Bike |
| 522 | NRG-500 | Superbike |
| 535 | Slamvan | Custom Truck |
| 541 | Bullet | Supercar |
| 558 | Uranus | Tuner |
| 559 | Jester | Tuner |
| 560 | Sultan | 4-Door Tuner |
| 561 | Stratum | Tuner Station Wagon |
| 562 | Elegy | Drift / Tuner |
| 565 | Flash | Compact Tuner |
| 581 | BF-400 | Sports Bike |
| 587 | Euros | Sports Car |
| 589 | Club | Hot Hatch |
| 603 | Phoenix | Muscle Car |
| 604 | Glendale (Damaged) | Beater |
{ "exhausts": { "x_exhaust1": { "lifetime": 0.4, "speed": 1.0, "size": 1.0, "nitro_effect": true, "color": { "red": 0, "green": 0, "blue": 0, "alpha": 64 } } } }