Particle Trails
Leave a trail of colourful puffs behind you as you walk. Particle Trails is a lightweight cosmetic mod that works fully standalone — pick your trail in the mod settings and go — or alongside other mods that drive it (like the Estrogen Mod, which shows a trans trail while an HRT dose boost is active).
✨ Features
- Kick up puffs while walking — the trail spawns at your feet, slightly behind you, opposite your movement direction, so it reads as dust kicked up by your boots. Just like the base game's footstep dust, particles render behind your character and other entities (above shadows), so nothing covers your view.
- 15 built-in trails:
- Flag trails
trans— pastel pink / blue / whitepride— full rainbowbi— pink / purple / blueace— gray / white / purplelesbian— orange / white / pinkpan— pink / yellow / blue
- Solid colours —
pink,blue,white,purple,yellow,orange,red,green,gray - Per-player settings — everyone picks their own trail, amount and look. Perfect for multiplayer.
- Cheap and quiet — spawns only while you are actually moving, uses the engine's optimized particles, and stays out of the way in vehicles (no puffs from the driver's seat).
🔧 Settings
| Setting | Scope | Description |
|---|---|---|
| Particle trail | Per player | Which trail to kick up: none, any flag trail, or any solid colour |
| Particle trail amount | Per player | Puffs per burst, 1 (subtle) – 4 (thick smoke) |
| Particle trail size | Startup | Puff scale, 0.5× – 2× (requires a restart) |
🧩 For mod developers
Other mods can assign trails to players or register their own via the particle-trails remote interface:
-- Show the trans trail for a player (returns true if the trail exists)
remote.call("particle-trails", "start_trail", player_index, "trans")
-- Remove the mod-assigned trail (falls back to the player's own selection)
remote.call("particle-trails", "stop_trail", player_index)
-- Which trail is currently displayed (or nil)
local trail = remote.call("particle-trails", "get_active_trail", player_index)
-- Enumerate registered trails
local names = remote.call("particle-trails", "list_trails")
-- Register a custom trail from your own particle prototypes
remote.call("particle-trails", "register_trail", "my-trail", {
particles = { "my-particle-a", "my-particle-b" },
burst = 2, -- puffs per burst (optional)
min_move = 0.02, -- movement threshold in tiles (optional)
back_offset = 0.3 -- trail distance behind the feet (optional)
})
A mod-assigned trail takes precedence over the player's own selection; when it is removed, the player's choice automatically becomes active again.
📝 Notes
- Requires Factorio 2.0+
- Purely cosmetic — no gameplay effects, no performance-heavy scripts
- License: GPL-3.0-only