FLX Mods Plugin
FLX Truck Smoke Plugin
Dynamic diesel exhaust smoke for compatible American Truck Simulator trucks, controlled by engine load and fully adjustable through a simple configuration file.
01 Overview
FLX Truck Smoke adds controllable diesel exhaust smoke to trucks prepared for the plugin. Instead of enabling smoke from pedal position alone, the controller estimates engine demand from the simulation's fuel rate and RPM values.
The plugin controls when smoke is emitted, but it does not add exhaust locators, particle models, or textures to a truck by itself. The selected truck must include a compatible smoke hookup and exhaust Model Locator.
This separation allows the plugin to control realistic emission timing while each truck mod retains its own exhaust position and visual particle design.
02 Features
Engine-load-based smoke
Emission responds to approximate engine load instead of being tied directly to pedal position.
RPM-controlled emission
Smoke starts inside a defined RPM range and stops at the configured upper RPM limit.
The plugin is optional
The truck mod remains fully usable without the plugin. Only the FLX load-based smoke control will be unavailable.
Simple INI configuration
Load, fuel-rate safeguards, and RPM thresholds can be changed without recompiling the plugin.
Cruise-control compatible
Because pedal input is not mandatory, engine load can trigger smoke while cruise control is active.
Custom particle designs
Compatible mods can provide different PMDs, looks, colors, generator counts, and exhaust layouts.
03 Requirements
- American Truck Simulator for Windows x64.
- A supported game build. Version 1.1 has been validated on ATS 1.60 and 1.61.
- A compatible truck or smoke mod containing the required particle hookup, model assets, and exhaust locator.
- Permission for the game to load third-party Telemetry SDK plugins.
04 Download and installation
Close American Truck Simulator before installing or replacing the plugin.
Download FLX Truck Smoke Plugin
- Download the plugin ZIP file.
- In Steam, open Library → American Truck Simulator → Manage → Browse local files.
- Open
bin/win_x64/plugins. Create thepluginsfolder if it does not exist. - Extract
flx_truck_smoke.dllandflx_truck_smoke.inidirectly into that folder. - Start the game and accept the Telemetry SDK warning if it appears.
The final paths should be:
gameroot/bin/win_x64/plugins/flx_truck_smoke.dll
gameroot/bin/win_x64/plugins/flx_truck_smoke.ini
Example Steam installation:
C:\Program Files (x86)\Steam\steamapps\common\American Truck Simulator\bin\win_x64\plugins\flx_truck_smoke.dll
C:\Program Files (x86)\Steam\steamapps\common\American Truck Simulator\bin\win_x64\plugins\flx_truck_smoke.ini
The files should be directly inside plugins, not inside plugins/flx_truck_smoke_plugin/.
05 Verify the installation
After the game reaches the main menu, open:
Documents\American Truck Simulator\game.log.txt
Search for:
[flx_truck_smoke] Smoke plugin by FLX Mods loaded successfully!
If this message is present and no plugin error follows it, the DLL loaded correctly. Next, select a compatible truck, apply load while driving below the upper activation RPM, and inspect the exhaust outlets.
06 How smoke behavior works
The plugin calculates an approximate load value from the engine's internal fuel rate and RPM. With the default settings:
- Smoke can start when approximate load reaches
6.50. - It remains active until load falls to
5.50. - A new emission can start from
700through1849 RPM. - Once active, emission can continue through the RPM hysteresis band.
- Emission is forced off at
1900 RPM. - Throttle position is not required to remain above a fixed percentage.
The difference between the start and stop values prevents the effect from repeatedly switching on and off when engine load fluctuates close to one threshold.
Pressing the accelerator while parked or in neutral does not always create enough engine load. Test while driving in gear, preferably under acceleration or while pulling weight.
07 Configure smoke activation
Edit flx_truck_smoke.ini with Notepad or another plain-text editor. The file must remain beside the DLL.
[smoke]
truck_load_on=6.50
truck_load_off=5.50
combustion_floor_on=0.00200
combustion_floor_off=0.00150
rpm_min=700.0
rpm_enable_max=1850.0
rpm_max=1900.0
| Setting | Default | Purpose |
|---|---|---|
truck_load_on | 6.50 | Approximate engine-load threshold required to start emission. |
truck_load_off | 5.50 | Load threshold that stops an active emission. Keep it below or equal to the start value. |
combustion_floor_on | 0.00200 | Minimum raw fuel-rate safeguard required when smoke starts. |
combustion_floor_off | 0.00150 | Raw fuel-rate safeguard that can stop an active emission. |
rpm_min | 700.0 | Minimum RPM at which a new emission can begin. |
rpm_enable_max | 1850.0 | Maximum RPM below which a new emission can begin. |
rpm_max | 1900.0 | Upper cutoff that forces an active emission to stop. |
- Use a period as the decimal separator:
6.50, not6,50. - Restart the game after editing the INI.
- Back up your working INI before experimenting.
- These load values are plugin units, not percentages from 0 to 100.
Invalid or inverted setting groups are restored to safe defaults, and the plugin records a warning in game.log.txt.
08 Particle customization
The INI controls when smoke is active. The truck mod's particle hookup controls how the smoke looks, including color, density, size, motion, lifetime, and texture.
In FLX-compatible packages, the hookup is normally located at:
/unit/hookup/truck_smoke_flx.sii
The exact filename may vary between truck mods. Inside a packed mod it may be found in a file such as Peterbilt-359-DEF.scs. Make a backup before editing because a mod update can overwrite your changes.
particles_max_countcontrols density.particle_sizeandscale_acccontrol size and growth.time_to_livecontrols particle lifetime.flow_speedandflow_speed_acccontrol motion.key_colorandbase_alphacontrol color and opacity.
Truck authors who need to add the hookup, particle assets, or exhaust locator should follow the FLX Truck Smoke Mod Integration Tutorial.
09 Compatibility
| Plugin version | 1.1 |
|---|---|
| Validated ATS versions | 1.60 and 1.61 |
| Platform | Windows x64 |
Confirmed compatible truck mods
- Peterbilt 359 — FLX Mods
- Peterbilt 367 — LMS Mods
- Jon Ruda truck mods
- Peterbilt 389 — Pinga Mods
Other trucks can work when their mod includes a compatible truck.smoke.* particle hookup, the required particle assets, and a Model Locator at the exhaust outlet. Installing the plugin alone does not add these model components to an unprepared truck.
10 Update or uninstall
Updating
- Close American Truck Simulator.
- Back up your customized
flx_truck_smoke.ini. - Replace the old DLL with the new release.
- Review the new INI for added settings before restoring custom values.
- Start the game and verify the plugin load message.
Uninstalling
Close the game and delete:
bin/win_x64/plugins/flx_truck_smoke.dll
bin/win_x64/plugins/flx_truck_smoke.ini
11 Troubleshooting
The plugin load message is missing
- Confirm both files are directly inside
bin/win_x64/plugins. - Check that the ZIP did not create an extra nested folder.
- Confirm that Windows did not block the downloaded DLL.
- Review
game.log.txtfor Telemetry SDK or plugin loading errors.
The plugin loads, but there is no smoke
- Use a truck mod listed as compatible or prepared for the plugin.
- Test while driving in gear under engine load.
- Keep RPM below
1850when starting a new emission. - Check the truck mod for missing particle PMD, PMG, materials, TOBJ, or DDS files.
- Check
game.log.txtfor hookup or model errors.
Smoke works on one truck but not another
The second truck likely does not contain the required hookup, particle assets, or exhaust Model Locator. Compatibility must be included by the truck or smoke mod.
Smoke stops near 1900 RPM
This is the default intended behavior. Increase rpm_enable_max and rpm_max carefully if a higher cutoff is desired. Keep rpm_enable_max less than or equal to rpm_max.
Changes to the INI are ignored
- Confirm the filename is exactly
flx_truck_smoke.ini. - Keep it in the same directory as the DLL.
- Use periods as decimal separators.
- Restart the game after saving changes.
- Review
game.log.txtfor an invalid-value warning.
The plugin stopped working after a game update
A game update may have changed one of the simulation routines located by the plugin. Check game.log.txt for signature or hook errors and install a newer plugin release when available.
FLX Mods Documentation
Adding FLX Truck Smoke to an ATS Mod
A complete integration guide covering plugin installation, particle assets, the vehicle_particle hookup, exhaust Model Locators, configuration, testing, and troubleshooting.
The plugin recognizes smoke particle units whose names begin with truck.smoke.. The suffix is selected by the mod author, for example truck.smoke.flx, truck.smoke.ksw, or truck.smoke.mytruck.
- InstallPlace the DLL and INI in the game plugin directory.
- DefineAdd a vehicle-particle hookup and all required assets to the mod.
- ConnectAssign the exact hookup name to each exhaust Model Locator.
01 Install the plugin
Copy the following files to the game plugin directory:
American Truck Simulator/bin/win_x64/plugins/
flx_truck_smoke.dll
flx_truck_smoke.ini
Do not place these files inside the truck mod or an .scs archive. The DLL is loaded by the Telemetry SDK directly from the plugins directory.
After starting the game, look for this message in game.log.txt:
[flx_truck_smoke] Smoke plugin by FLX Mods loaded successfully!
02 Prepare the mod structure
Use this directory structure inside the root of your mod:
My Truck Mod/
├── manifest.sii
├── unit/
│ └── hookup/
│ └── truck_smoke_mytruck.sii
├── model/
│ └── particle/
│ └── flx/
│ ├── smoke.pmd
│ ├── smoke.pmg
│ ├── smoke1.dds
│ ├── smoke1.tobj
│ └── remaining textures and TOBJ files
└── automat/
└── ... materials used by the PMD ...
When using the supplied FLX assets, copy the entire model/particle/flx and automat directories. The PMG, materials, TOBJ files, and textures are required alongside the PMD.
Place the SII file in /unit/hookup/, not /def/unit/hookup/. It does not need to be added to addon_hookup_storage.
03 Create or copy the hookup
You can copy the supplied truck_smoke_flx.sii and change the suffix of its main unit name.
Download the sample mod
Use this ready-made package as a starting point for adding the hookup and particle structure to your own truck mod.
This single-generator example shows the required structure:
SiiNunit
{
vehicle_particle : truck.smoke.mytruck {
gen_array: 1
gen_array[0]: _nameless.mysmoke.trail1
}
particle_gen : _nameless.mysmoke.trail1 {
list_order_up: false
blend_alpha: true
gen_pos: (0, 0, 0)
scale_acc: 0.025
rotation_speed: 60
alpha_blend_coef: 0.30
base_alpha: 0.30
alpha_attack_time: 0.05
flow_speed: (0, 1.08, 0)
flow_speed_acc: (0.03, 0.02, 0.20)
particle_size: (0.045, 0.045)
particle_size_var: (0.95, 0.30)
particle_displacement: (0.05, 0.05, 0.05)
color_multiplier: nil
key_pos: 5
key_pos[0]: 0
key_pos[1]: 45
key_pos[2]: 115
key_pos[3]: 195
key_pos[4]: 255
key_color: 5
key_color[0]: 4278190080
key_color[1]: 4278255873
key_color[2]: 4278255873
key_color[3]: 4278321666
key_color[4]: 4278321666
time_to_live: 0.5
time_to_live_rand: 0.20
particles_max_count: 30
model_path: "/model/particle/flx/smoke.pmd"
model_look: pipe1
relative_space: false
use_sprites: true
}
}
This example contains one generator. To reproduce the complete FLX effect, use the supplied hookup with all seven generators.
Hookup naming rules
- The
vehicle_particlename must begin exactly withtruck.smoke.. truck.smoke.mytruckis valid;mytruck.truck.smokeis not.- The full unit name must match the Hookup field of the Model Locator.
- Choose a unique suffix to prevent conflicts with other mods.
- Generator
_namelessidentifiers should also be unique across the active mod set.
truck.smoke.flx
truck.smoke.ksw
truck.smoke.lms
truck.smoke.modauthor
The suffix does not need to be registered in the DLL.
04 Check the particle model and looks
Each particle_gen block contains a model path and a model look:
model_path: "/model/particle/flx/smoke.pmd"
model_look: pipe1
model_path must point to the PMD location inside the mod. Another directory can be used, but every generator must be updated when the PMD is moved.
model_look must exist in the PMD. The current FLX hookup uses:
pipe1
pipe2
pipe3
pipe4
pipe5
A missing look, PMG, material, TOBJ, or DDS can make the particle invisible even when the plugin and hookup are working correctly.
05 Add the exhaust locator
Using SCS Blender Tools, open the model containing the exhaust pipe used in the game. The locator can be stored in the main truck model or in an exhaust accessory, provided that the corresponding PMD is instantiated by the vehicle.
- Create a Model Locator.
- Place its origin at the exhaust outlet.
- Enter the exact SII unit name in the Hookup field.
- Orient the locator toward the intended smoke direction.
- Export the truck model or accessory again.
Hookup: truck.smoke.mytruck
For dual exhausts, create one locator for each outlet. Both can use the same hookup. This creates one complete effect instance per exhaust and increases the total particle count.
If smoke is offset or moves in the wrong direction, first check the locator position and rotation. Then refine gen_pos, flow_speed, and particle_displacement.
06 Package and activate the mod
- Keep
unit,model, andautomatat the package root. - Package the contents as
.zipor.scswithout adding an extra parent directory. - Place the package in
Documents/American Truck Simulator/mod. - Enable it in Mod Manager.
- Make sure a higher-priority mod does not replace the truck PMD, hookup, or particle assets.
/unit/hookup/truck_smoke_mytruck.sii
/model/particle/flx/smoke.pmd
/model/particle/flx/smoke.pmg
/automat/...
If a separate base mod supplies the hookup and assets, that mod must also be active. Do not define the same truck.smoke.mytruck unit in two packages because Prism3D will report a duplicate unit.
07 Configure plugin behavior
The flx_truck_smoke.ini file beside the DLL controls when emission starts and stops:
[smoke]
truck_load_on=6.50
truck_load_off=5.50
combustion_floor_on=0.00200
combustion_floor_off=0.00150
rpm_min=700.0
rpm_enable_max=1850.0
rpm_max=1900.0
- Engine load must reach
6.50to start smoke. - Emission remains active until load falls to
5.50. - A new emission can start between
700and1849 RPM. - Once active, it can remain active until
1900 RPM. - Between
1850and1899 RPM, a new emission cannot start. - Throttle position is not a required condition.
- Cruise control does not prevent emission.
INI changes are loaded when the game starts. Restart ATS after changing these values.
08 Test in the game
- Confirm the DLL load message in
game.log.txt. - Confirm that the mod and truck loaded without unit errors.
- Keep the engine between approximately
700and1850 RPM. - Apply engine load, preferably by accelerating while in gear.
- Inspect every exhaust outlet.
- Exceed
1900 RPMand confirm that emission stops.
A stationary, unloaded throttle test might not trigger the effect because the controller uses approximate engine load rather than pedal position alone.
09 Troubleshooting
The plugin load message is missing
- Check that the DLL is in
bin/win_x64/plugins. - Confirm that the Windows x64 version of the game is running.
- Check whether Windows blocked the downloaded DLL.
- Look for Telemetry SDK warnings or errors in
game.log.txt.
The plugin loads, but there is no smoke
- Confirm that the hookup begins with
truck.smoke.. - Confirm that the locator name exactly matches the
vehicle_particlename. - Verify that the locator belongs to the PMD actually used by the truck.
- Check
model_pathin every generator. - Confirm that the PMD, PMG, materials, TOBJ files, and DDS files are present.
- Confirm that every
model_lookexists in the PMD. - Test under engine load and below
1850 RPM.
Smoke appears at the wrong position or moves in the wrong direction
- Reposition and rotate the Model Locator.
- Review
gen_pos. - Review the axes used by
flow_speedandflow_speed_acc. - Temporarily reduce the hookup to one generator for easier visual debugging.
Dust or rain is activated with the smoke
The plugin controls only vehicle_particle units whose names begin with truck.smoke.. Do not use this prefix for dust, water, rain, or other effects.
Prism3D reports a duplicate unit
Select a different hookup suffix and unique _nameless identifiers. Then update the locator Hookup field to use the new name.
10 Quick visual adjustments
- More density: increase
particles_max_count. - Larger initial particles: increase
particle_size. - More growth over time: increase
scale_acc. - Longer particle life: increase
time_to_liveand adjustparticles_max_countproportionally. - More spread: increase
particle_displacement. - Faster initial movement: increase
flow_speed. - Acceleration or falling motion: adjust
flow_speed_acc. - More opacity: carefully increase
base_alpha. - Remove a layer: remove its
gen_arrayentry and correspondingparticle_genblock.
Keep relative_space: false so emitted smoke remains in world space instead of staying attached to the moving truck.
